diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 2d470c8f2f0..0031eb15e8d 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -24816,6 +24816,189 @@ components: type: $ref: "#/components/schemas/CSMAgentsType" type: object + CsmAgentlessHostAttributes: + description: Attributes of an agentless host. + properties: + account_id: + description: The ID of the cloud account that the host belongs to. + example: "123456789012" + type: string + cloud_provider: + $ref: "#/components/schemas/CsmCloudProvider" + has_posture_management: + description: Whether CSM Misconfigurations is enabled for this host. `true` if enabled; `false` if disabled. + example: true + type: boolean + has_vulnerability_scanning: + description: Whether CSM Vulnerabilities is enabled for this host. `true` if enabled; `false` if disabled. + example: true + type: boolean + resource_type: + $ref: "#/components/schemas/CsmAgentlessHostResourceType" + required: + - account_id + - cloud_provider + - resource_type + - has_posture_management + - has_vulnerability_scanning + type: object + CsmAgentlessHostData: + description: A single agentless host resource. + properties: + attributes: + $ref: "#/components/schemas/CsmAgentlessHostAttributes" + id: + description: The resource identifier of the agentless host. + example: i-0123456789abcdef0 + type: string + type: + $ref: "#/components/schemas/CsmAgentlessHostType" + required: + - id + - type + - attributes + type: object + CsmAgentlessHostFacetAttributes: + description: Attributes of an agentless host facet. + properties: + bounded: + description: Whether the facet has a bounded set of allowed values. `true` indicates a fixed value set and `false` indicates free-form values. + example: true + type: boolean + bundled: + description: Whether the facet is bundled as part of the default facet set. `true` indicates bundled and `false` indicates custom. + example: true + type: boolean + bundledAndUsed: + description: Whether the facet is both bundled and actively used. `true` indicates in use; `false` indicates unused. + example: true + type: boolean + defaultValues: + $ref: "#/components/schemas/CsmHostFacetDefaultValues" + description: + description: A human-readable description of what the facet represents. + example: The cloud provider of the resource + type: string + editable: + description: Whether the facet can be edited by users. `true` indicates editable; `false` indicates read-only. + example: false + type: boolean + facetType: + description: The UI display type for the facet, such as `list`. + example: list + type: string + groups: + $ref: "#/components/schemas/CsmHostFacetGroups" + name: + description: The display name of the facet. + example: Cloud Provider + type: string + path: + description: The field path used when filtering by this facet. + example: cloud_provider + type: string + source: + description: The data source that provides the facet values. + example: core + type: string + type: + description: The data type of the facet values. + example: string + type: string + values: + $ref: "#/components/schemas/CsmHostFacetValues" + required: + - name + - path + - description + - groups + - bounded + - bundled + - bundledAndUsed + - defaultValues + - editable + - facetType + - source + - type + - values + type: object + CsmAgentlessHostFacetData: + description: A single agentless host facet resource. + properties: + attributes: + $ref: "#/components/schemas/CsmAgentlessHostFacetAttributes" + id: + description: The identifier of the facet, corresponding to the field path. + example: cloud_provider + type: string + type: + $ref: "#/components/schemas/CsmAgentlessHostFacetType" + required: + - id + - type + - attributes + type: object + CsmAgentlessHostFacetItems: + description: The list of available facets for agentless hosts. + items: + $ref: "#/components/schemas/CsmAgentlessHostFacetData" + type: array + CsmAgentlessHostFacetType: + default: agentless_host_facet + description: The JSON:API type for agentless host facet resources. The value should always be `agentless_host_facet`. + enum: + - agentless_host_facet + example: agentless_host_facet + type: string + x-enum-varnames: + - AGENTLESS_HOST_FACET + CsmAgentlessHostFacetsResponse: + description: The response returned when listing facets for agentless hosts. + properties: + data: + $ref: "#/components/schemas/CsmAgentlessHostFacetItems" + required: + - data + type: object + CsmAgentlessHostItems: + description: The list of agentless hosts for the current page. + items: + $ref: "#/components/schemas/CsmAgentlessHostData" + type: array + CsmAgentlessHostResourceType: + description: The type of cloud resource for an agentless host. + enum: + - aws_ec2_instance + - azure_virtual_machine_instance + - gcp_compute_instance + - oci_instance + example: aws_ec2_instance + type: string + x-enum-varnames: + - AWS_EC2_INSTANCE + - AZURE_VIRTUAL_MACHINE_INSTANCE + - GCP_COMPUTE_INSTANCE + - OCI_INSTANCE + CsmAgentlessHostType: + default: agentless_host + description: The JSON:API type for agentless host resources. The value should always be `agentless_host`. + enum: + - agentless_host + example: agentless_host + type: string + x-enum-varnames: + - AGENTLESS_HOST + CsmAgentlessHostsResponse: + description: The response returned when listing agentless hosts. + properties: + data: + $ref: "#/components/schemas/CsmAgentlessHostItems" + meta: + $ref: "#/components/schemas/CsmSettingsMeta" + required: + - data + - meta + type: object CsmAgentsAttributes: description: "A CSM Agent returned by the API." properties: @@ -24934,6 +25117,20 @@ components: data: $ref: "#/components/schemas/CsmCloudAccountsCoverageAnalysisData" type: object + CsmCloudProvider: + description: The cloud provider of a host resource. + enum: + - aws + - gcp + - azure + - oci + example: aws + type: string + x-enum-varnames: + - AWS + - GCP + - AZURE + - OCI CsmCoverageAnalysis: description: CSM Coverage Analysis. properties: @@ -24958,6 +25155,103 @@ components: format: int64 type: integer type: object + CsmFacetInfoType: + default: facet_info + description: The JSON:API type for facet info resources. The value should always be `facet_info`. + enum: + - facet_info + example: facet_info + type: string + x-enum-varnames: + - FACET_INFO + CsmHostFacetDefaultValues: + description: The list of default filter values for the facet. + example: [] + items: + type: string + type: array + CsmHostFacetGroups: + description: The list of UI groups that this facet belongs to. + example: + - agentless + items: + type: string + type: array + CsmHostFacetInfoAttributes: + description: Attributes of a facet info response, containing the value distribution for the requested facet. + properties: + items: + $ref: "#/components/schemas/CsmHostFacetInfoItems" + required: + - items + type: object + CsmHostFacetInfoData: + description: The data wrapper for a facet info response. + properties: + attributes: + $ref: "#/components/schemas/CsmHostFacetInfoAttributes" + id: + description: The identifier of the facet. + example: cloud_provider + type: string + meta: + $ref: "#/components/schemas/CsmHostFacetInfoMeta" + type: + $ref: "#/components/schemas/CsmFacetInfoType" + required: + - id + - type + - attributes + - meta + type: object + CsmHostFacetInfoItem: + description: A single value and its occurrence count for a facet. + properties: + count: + description: The number of resources with this facet value. + example: 100 + format: int64 + type: integer + value: + description: The facet value. + example: aws + type: string + required: + - value + - count + type: object + CsmHostFacetInfoItems: + description: The list of facet value entries for the current page. + items: + $ref: "#/components/schemas/CsmHostFacetInfoItem" + type: array + CsmHostFacetInfoMeta: + description: Metadata for the facet info response. + properties: + total_count: + description: The total number of distinct values for this facet. + example: 4 + format: int64 + type: integer + required: + - total_count + type: object + CsmHostFacetInfoResponse: + description: The response returned when requesting value distribution for a specific facet. + properties: + data: + $ref: "#/components/schemas/CsmHostFacetInfoData" + required: + - data + type: object + CsmHostFacetValues: + description: The list of allowed filter values for bounded facets. Empty for unbounded facets. + example: + - aws + - gcp + items: + type: string + type: array CsmHostsAndContainersCoverageAnalysisAttributes: description: CSM Hosts and Containers Coverage Analysis attributes. properties: @@ -25030,6 +25324,235 @@ components: data: $ref: "#/components/schemas/CsmServerlessCoverageAnalysisData" type: object + CsmSettingsMeta: + description: Pagination metadata for a CSM settings list response. + properties: + page_index: + description: The current page index (zero-based). + example: 0 + format: int64 + type: integer + page_size: + description: The number of resources returned per page. + example: 10 + format: int64 + type: integer + total_filtered: + description: The total number of resources matching the filter criteria. + example: 100 + format: int64 + type: integer + required: + - total_filtered + - page_index + - page_size + type: object + CsmUnifiedHostAttributes: + description: Attributes of a unified host, combining data from agent and agentless sources. + properties: + account_id: + description: The ID of the cloud account that the host belongs to. Present only when the host was discovered through agentless scanning. + example: "123456789012" + nullable: true + type: string + agent_csm_vm_containers_enabled: + description: Whether CSM Vulnerabilities is enabled for containers through the Datadog Agent. `true` if enabled; `false` if disabled. + example: false + nullable: true + type: boolean + agent_csm_vm_hosts_enabled: + description: Whether CSM Vulnerabilities is enabled for hosts through the Datadog Agent. `true` if enabled; `false` if disabled. + example: true + nullable: true + type: boolean + agent_cws_enabled: + description: Whether CSM Threats is enabled for this host through the Datadog Agent. `true` if enabled; `false` if disabled. + example: false + nullable: true + type: boolean + agent_posture_management: + description: Whether CSM Misconfigurations is enabled for this host through the Datadog Agent. `true` if enabled; `false` if disabled. + example: true + nullable: true + type: boolean + agent_version: + description: The version of the Datadog Agent running on this host. + example: 7.50.0 + nullable: true + type: string + agentless_posture_management: + description: Whether CSM Misconfigurations is enabled for this host via agentless scanning. `true` if enabled; `false` if disabled. + example: false + nullable: true + type: boolean + agentless_vulnerability_scanning: + description: Whether CSM Vulnerabilities is enabled for this host via agentless scanning. `true` if enabled; `false` if disabled. + example: true + nullable: true + type: boolean + cloud_provider: + $ref: "#/components/schemas/CsmCloudProvider" + cluster_name: + description: The name of the Kubernetes cluster the host belongs to, if applicable. + example: my-cluster + nullable: true + type: string + datadog_agent_key: + description: The Datadog Agent key associated with this host. Present only for agent-sourced hosts. + example: key123 + nullable: true + type: string + env: + description: The list of environment tags associated with this host. + example: + - prod + items: + type: string + nullable: true + type: array + host_id: + description: The internal Datadog host identifier. Present only for agent-sourced hosts. + example: 12345678 + format: int64 + nullable: true + type: integer + install_method_tool: + description: The tool used to install the Datadog Agent on this host. + example: helm + nullable: true + type: string + os: + description: The operating system of the host. Present only for agent-sourced hosts. + example: linux + nullable: true + type: string + resource_type: + $ref: "#/components/schemas/CsmAgentlessHostResourceType" + source: + $ref: "#/components/schemas/CsmUnifiedHostSource" + required: + - source + type: object + CsmUnifiedHostData: + description: A single unified host resource, combining agent and agentless data. + properties: + attributes: + $ref: "#/components/schemas/CsmUnifiedHostAttributes" + id: + description: The resource identifier of the unified host. + example: i-0123456789abcdef0 + type: string + type: + $ref: "#/components/schemas/CsmUnifiedHostType" + required: + - id + - type + - attributes + type: object + CsmUnifiedHostFacetData: + description: A single unified host facet resource. + properties: + attributes: + $ref: "#/components/schemas/CsmAgentlessHostFacetAttributes" + id: + description: The identifier of the facet, corresponding to the field path. + example: cloud_provider + type: string + type: + $ref: "#/components/schemas/CsmUnifiedHostFacetType" + required: + - id + - type + - attributes + type: object + CsmUnifiedHostFacetItems: + description: The list of available facets for unified hosts. + items: + $ref: "#/components/schemas/CsmUnifiedHostFacetData" + type: array + CsmUnifiedHostFacetType: + default: unified_host_facet + description: The JSON:API type for unified host facet resources. The value should always be `unified_host_facet`. + enum: + - unified_host_facet + example: unified_host_facet + type: string + x-enum-varnames: + - UNIFIED_HOST_FACET + CsmUnifiedHostFacetsResponse: + description: The response returned when listing facets for unified hosts. + properties: + data: + $ref: "#/components/schemas/CsmUnifiedHostFacetItems" + required: + - data + type: object + CsmUnifiedHostItems: + description: The list of unified hosts for the current page. + items: + $ref: "#/components/schemas/CsmUnifiedHostData" + type: array + CsmUnifiedHostSource: + description: The source of a unified host entry, indicating whether it was discovered via agent, agentless scanning, or both. + enum: + - agent + - agentless + - both + example: agent + type: string + x-enum-varnames: + - AGENT + - AGENTLESS + - BOTH + CsmUnifiedHostType: + default: unified_host + description: The JSON:API type for unified host resources. The value should always be `unified_host`. + enum: + - unified_host + example: unified_host + type: string + x-enum-varnames: + - UNIFIED_HOST + CsmUnifiedHostsMeta: + description: Pagination metadata for a unified hosts list response. + properties: + page_index: + description: The current page index (zero-based). + example: 0 + format: int64 + type: integer + page_size: + description: The number of hosts returned per page. + example: 10 + format: int64 + type: integer + total_filtered: + description: The total number of hosts matching the filter criteria. + example: 100 + format: int64 + type: integer + total_pages: + description: The total number of pages available. + example: 10 + format: int64 + type: integer + required: + - total_filtered + - page_index + - page_size + - total_pages + type: object + CsmUnifiedHostsResponse: + description: The response returned when listing unified hosts. + properties: + data: + $ref: "#/components/schemas/CsmUnifiedHostItems" + meta: + $ref: "#/components/schemas/CsmUnifiedHostsMeta" + required: + - data + - meta + type: object CustomAttributeConfig: description: "A custom attribute configuration that defines an organization-specific metadata field on cases. Custom attributes are scoped to a case type and can hold text, URLs, numbers, or predefined select options." properties: @@ -119900,6 +120423,375 @@ paths: $ref: "#/components/responses/TooManyRequestsResponse" summary: Get all CSM Serverless Agents tags: ["CSM Agents"] + /api/v2/csm/settings/agentless_hosts: + get: + description: Get the list of agentless hosts for CSM, with optional pagination and filtering. + operationId: ListCSMAgentlessHosts + parameters: + - description: The page index for pagination (zero-based). + in: query + name: page + required: false + schema: + default: 0 + example: 0 + format: int32 + maximum: 1000000 + minimum: 0 + type: integer + - description: The number of agentless hosts to return per page. + in: query + name: size + required: false + schema: + default: 10 + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + - description: A search query string to filter agentless hosts. + in: query + name: query + required: false + schema: + example: "cloud_provider:aws" + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + account_id: "123456789012" + cloud_provider: aws + has_posture_management: true + has_vulnerability_scanning: true + resource_type: aws_ec2_instance + id: i-0123456789abcdef0 + type: agentless_host + meta: + page_index: 0 + page_size: 10 + total_filtered: 1 + schema: + $ref: "#/components/schemas/CsmAgentlessHostsResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List agentless hosts + tags: ["CSM Settings"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/settings/agentless_hosts/facet_info: + get: + description: Get the value distribution for a specific agentless host facet, with optional search and filtering. + operationId: GetCSMAgentlessHostFacetInfo + parameters: + - description: The facet identifier to retrieve value distribution for. Valid values are `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `has_vulnerability_scanning`, and `has_posture_management`. + in: query + name: facet + required: true + schema: + example: cloud_provider + type: string + - description: A search string to filter the facet values. + in: query + name: search + required: false + schema: + example: aws + type: string + - description: A filter query to scope the facet value counts. + in: query + name: query + required: false + schema: + example: "cloud_provider:aws" + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + items: + - count: 100 + value: aws + - count: 50 + value: gcp + id: cloud_provider + meta: + total_count: 2 + type: facet_info + schema: + $ref: "#/components/schemas/CsmHostFacetInfoResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get agentless host facet info + tags: ["CSM Settings"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/settings/agentless_hosts/facets: + get: + description: Get the list of available facets for filtering agentless hosts. + operationId: ListCSMAgentlessHostFacets + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + bounded: true + bundled: true + bundledAndUsed: true + defaultValues: [] + description: The cloud provider of the resource. + editable: false + facetType: list + groups: + - agentless + name: Cloud Provider + path: cloud_provider + source: core + type: string + values: + - aws + - gcp + - azure + - oci + id: cloud_provider + type: agentless_host_facet + schema: + $ref: "#/components/schemas/CsmAgentlessHostFacetsResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List agentless host facets + tags: ["CSM Settings"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/settings/hosts: + get: + description: Get the list of unified hosts for CSM, combining agent and agentless host data, with optional pagination and filtering. + operationId: ListCSMUnifiedHosts + parameters: + - description: The page index for pagination (zero-based). + in: query + name: page + required: false + schema: + default: 0 + example: 0 + format: int32 + maximum: 1000000 + minimum: 0 + type: integer + - description: The number of hosts to return per page. + in: query + name: size + required: false + schema: + default: 10 + example: 10 + format: int32 + maximum: 100 + minimum: 1 + type: integer + - description: A search query string to filter unified hosts. + in: query + name: query + required: false + schema: + example: "source:agent" + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + agent_cws_enabled: false + agent_posture_management: true + agent_version: 7.50.0 + datadog_agent_key: key123 + os: linux + source: agent + id: agent-host + type: unified_host + - attributes: + account_id: "123456789012" + agentless_posture_management: true + agentless_vulnerability_scanning: true + cloud_provider: aws + resource_type: aws_ec2_instance + source: agentless + id: i-0123456789abcdef0 + type: unified_host + meta: + page_index: 0 + page_size: 10 + total_filtered: 2 + total_pages: 1 + schema: + $ref: "#/components/schemas/CsmUnifiedHostsResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List unified hosts + tags: ["CSM Settings"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/settings/hosts/facet_info: + get: + description: Get the value distribution for a specific unified host facet, with optional search and filtering. + operationId: GetCSMUnifiedHostFacetInfo + parameters: + - description: The facet identifier to retrieve value distribution for. Valid values include `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `agentless_vulnerability_scanning`, `agentless_posture_management`, `hostname`, `agent_version`, `os`, `cluster_name`, `agent_posture_management`, `agent_cws_enabled`, `agent_csm_vm_hosts_enabled`, and `agent_csm_vm_containers_enabled`. + in: query + name: facet + required: true + schema: + example: cloud_provider + type: string + - description: A search string to filter the facet values. + in: query + name: search + required: false + schema: + example: aws + type: string + - description: A filter query to scope the facet value counts. + in: query + name: query + required: false + schema: + example: "cloud_provider:aws" + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + items: + - count: 100 + value: aws + - count: 50 + value: gcp + id: cloud_provider + meta: + total_count: 2 + type: facet_info + schema: + $ref: "#/components/schemas/CsmHostFacetInfoResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get unified host facet info + tags: ["CSM Settings"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/csm/settings/hosts/facets: + get: + description: Get the list of available facets for filtering unified hosts. + operationId: ListCSMUnifiedHostFacets + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + bounded: true + bundled: true + bundledAndUsed: true + defaultValues: [] + description: The cloud provider of the resource. + editable: false + facetType: list + groups: + - hosts + name: Cloud Provider + path: cloud_provider + source: core + type: string + values: + - aws + - gcp + - azure + - oci + id: cloud_provider + type: unified_host_facet + schema: + $ref: "#/components/schemas/CsmUnifiedHostFacetsResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List unified host facets + tags: ["CSM Settings"] + x-unstable: |- + **Note**: This endpoint is in Preview and may be subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/current_user: get: description: |- @@ -181119,6 +182011,11 @@ tags: all in a unified view for seamless collaboration and faster remediation. Go to https://docs.datadoghq.com/security/cloud_security_management to learn more. name: "CSM Coverage Analysis" + - description: |- + Datadog Cloud Security Management (CSM) Settings APIs allow you to list and filter + your cloud hosts monitored by CSM, covering both agentless and agent-based discovery. + For more information, see [Cloud Security Management](https://docs.datadoghq.com/security/cloud_security_management). + name: "CSM Settings" - description: |- Workload Protection monitors file, network, and process activity across your environment to detect real-time threats to your infrastructure. See [Workload Protection](https://docs.datadoghq.com/security/workload_protection/) for more information on setting up Workload Protection. diff --git a/examples/v2/csm-settings/GetCSMAgentlessHostFacetInfo.java b/examples/v2/csm-settings/GetCSMAgentlessHostFacetInfo.java new file mode 100644 index 00000000000..6ddf557ceed --- /dev/null +++ b/examples/v2/csm-settings/GetCSMAgentlessHostFacetInfo.java @@ -0,0 +1,25 @@ +// Get agentless host facet info returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CsmSettingsApi; +import com.datadog.api.client.v2.model.CsmHostFacetInfoResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getCSMAgentlessHostFacetInfo", true); + CsmSettingsApi apiInstance = new CsmSettingsApi(defaultClient); + + try { + CsmHostFacetInfoResponse result = apiInstance.getCSMAgentlessHostFacetInfo("cloud_provider"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CsmSettingsApi#getCSMAgentlessHostFacetInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/csm-settings/GetCSMUnifiedHostFacetInfo.java b/examples/v2/csm-settings/GetCSMUnifiedHostFacetInfo.java new file mode 100644 index 00000000000..14b60f09e1d --- /dev/null +++ b/examples/v2/csm-settings/GetCSMUnifiedHostFacetInfo.java @@ -0,0 +1,25 @@ +// Get unified host facet info returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CsmSettingsApi; +import com.datadog.api.client.v2.model.CsmHostFacetInfoResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getCSMUnifiedHostFacetInfo", true); + CsmSettingsApi apiInstance = new CsmSettingsApi(defaultClient); + + try { + CsmHostFacetInfoResponse result = apiInstance.getCSMUnifiedHostFacetInfo("cloud_provider"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CsmSettingsApi#getCSMUnifiedHostFacetInfo"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/csm-settings/ListCSMAgentlessHostFacets.java b/examples/v2/csm-settings/ListCSMAgentlessHostFacets.java new file mode 100644 index 00000000000..9891179e38c --- /dev/null +++ b/examples/v2/csm-settings/ListCSMAgentlessHostFacets.java @@ -0,0 +1,25 @@ +// List agentless host facets returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CsmSettingsApi; +import com.datadog.api.client.v2.model.CsmAgentlessHostFacetsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listCSMAgentlessHostFacets", true); + CsmSettingsApi apiInstance = new CsmSettingsApi(defaultClient); + + try { + CsmAgentlessHostFacetsResponse result = apiInstance.listCSMAgentlessHostFacets(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CsmSettingsApi#listCSMAgentlessHostFacets"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/csm-settings/ListCSMAgentlessHosts.java b/examples/v2/csm-settings/ListCSMAgentlessHosts.java new file mode 100644 index 00000000000..0cc7fcf2cba --- /dev/null +++ b/examples/v2/csm-settings/ListCSMAgentlessHosts.java @@ -0,0 +1,25 @@ +// List agentless hosts returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CsmSettingsApi; +import com.datadog.api.client.v2.model.CsmAgentlessHostsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listCSMAgentlessHosts", true); + CsmSettingsApi apiInstance = new CsmSettingsApi(defaultClient); + + try { + CsmAgentlessHostsResponse result = apiInstance.listCSMAgentlessHosts(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CsmSettingsApi#listCSMAgentlessHosts"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/csm-settings/ListCSMUnifiedHostFacets.java b/examples/v2/csm-settings/ListCSMUnifiedHostFacets.java new file mode 100644 index 00000000000..4c703838c3a --- /dev/null +++ b/examples/v2/csm-settings/ListCSMUnifiedHostFacets.java @@ -0,0 +1,25 @@ +// List unified host facets returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CsmSettingsApi; +import com.datadog.api.client.v2.model.CsmUnifiedHostFacetsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listCSMUnifiedHostFacets", true); + CsmSettingsApi apiInstance = new CsmSettingsApi(defaultClient); + + try { + CsmUnifiedHostFacetsResponse result = apiInstance.listCSMUnifiedHostFacets(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CsmSettingsApi#listCSMUnifiedHostFacets"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/csm-settings/ListCSMUnifiedHosts.java b/examples/v2/csm-settings/ListCSMUnifiedHosts.java new file mode 100644 index 00000000000..ddc574c4a86 --- /dev/null +++ b/examples/v2/csm-settings/ListCSMUnifiedHosts.java @@ -0,0 +1,25 @@ +// List unified hosts returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.CsmSettingsApi; +import com.datadog.api.client.v2.model.CsmUnifiedHostsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listCSMUnifiedHosts", true); + CsmSettingsApi apiInstance = new CsmSettingsApi(defaultClient); + + try { + CsmUnifiedHostsResponse result = apiInstance.listCSMUnifiedHosts(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling CsmSettingsApi#listCSMUnifiedHosts"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 3c2d2401c35..d60f627c77e 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -972,6 +972,12 @@ public class ApiClient { put("v2.listCostTagMetadataMonths", false); put("v2.listCostTagMetadataOrchestrators", false); put("v2.searchCostRecommendations", false); + put("v2.getCSMAgentlessHostFacetInfo", false); + put("v2.getCSMUnifiedHostFacetInfo", false); + put("v2.listCSMAgentlessHostFacets", false); + put("v2.listCSMAgentlessHosts", false); + put("v2.listCSMUnifiedHostFacets", false); + put("v2.listCSMUnifiedHosts", false); put("v2.createDashboardSecureEmbed", false); put("v2.deleteDashboardSecureEmbed", false); put("v2.getDashboardSecureEmbed", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/CsmSettingsApi.java b/src/main/java/com/datadog/api/client/v2/api/CsmSettingsApi.java new file mode 100644 index 00000000000..4f13b466728 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/api/CsmSettingsApi.java @@ -0,0 +1,1265 @@ +package com.datadog.api.client.v2.api; + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.ApiResponse; +import com.datadog.api.client.Pair; +import com.datadog.api.client.v2.model.CsmAgentlessHostFacetsResponse; +import com.datadog.api.client.v2.model.CsmAgentlessHostsResponse; +import com.datadog.api.client.v2.model.CsmHostFacetInfoResponse; +import com.datadog.api.client.v2.model.CsmUnifiedHostFacetsResponse; +import com.datadog.api.client.v2.model.CsmUnifiedHostsResponse; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmSettingsApi { + private ApiClient apiClient; + + public CsmSettingsApi() { + this(ApiClient.getDefaultApiClient()); + } + + public CsmSettingsApi(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Get the API client. + * + * @return API client + */ + public ApiClient getApiClient() { + return apiClient; + } + + /** + * Set the API client. + * + * @param apiClient an instance of API client + */ + public void setApiClient(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** Manage optional parameters to getCSMAgentlessHostFacetInfo. */ + public static class GetCSMAgentlessHostFacetInfoOptionalParameters { + private String search; + private String query; + + /** + * Set search. + * + * @param search A search string to filter the facet values. (optional) + * @return GetCSMAgentlessHostFacetInfoOptionalParameters + */ + public GetCSMAgentlessHostFacetInfoOptionalParameters search(String search) { + this.search = search; + return this; + } + + /** + * Set query. + * + * @param query A filter query to scope the facet value counts. (optional) + * @return GetCSMAgentlessHostFacetInfoOptionalParameters + */ + public GetCSMAgentlessHostFacetInfoOptionalParameters query(String query) { + this.query = query; + return this; + } + } + + /** + * Get agentless host facet info. + * + *

See {@link #getCSMAgentlessHostFacetInfoWithHttpInfo}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values are + * resource_name, account_id, resource_type, + * cloud_provider, has_vulnerability_scanning, and + * has_posture_management. (required) + * @return CsmHostFacetInfoResponse + * @throws ApiException if fails to make API call + */ + public CsmHostFacetInfoResponse getCSMAgentlessHostFacetInfo(String facet) throws ApiException { + return getCSMAgentlessHostFacetInfoWithHttpInfo( + facet, new GetCSMAgentlessHostFacetInfoOptionalParameters()) + .getData(); + } + + /** + * Get agentless host facet info. + * + *

See {@link #getCSMAgentlessHostFacetInfoWithHttpInfoAsync}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values are + * resource_name, account_id, resource_type, + * cloud_provider, has_vulnerability_scanning, and + * has_posture_management. (required) + * @return CompletableFuture<CsmHostFacetInfoResponse> + */ + public CompletableFuture getCSMAgentlessHostFacetInfoAsync( + String facet) { + return getCSMAgentlessHostFacetInfoWithHttpInfoAsync( + facet, new GetCSMAgentlessHostFacetInfoOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get agentless host facet info. + * + *

See {@link #getCSMAgentlessHostFacetInfoWithHttpInfo}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values are + * resource_name, account_id, resource_type, + * cloud_provider, has_vulnerability_scanning, and + * has_posture_management. (required) + * @param parameters Optional parameters for the request. + * @return CsmHostFacetInfoResponse + * @throws ApiException if fails to make API call + */ + public CsmHostFacetInfoResponse getCSMAgentlessHostFacetInfo( + String facet, GetCSMAgentlessHostFacetInfoOptionalParameters parameters) throws ApiException { + return getCSMAgentlessHostFacetInfoWithHttpInfo(facet, parameters).getData(); + } + + /** + * Get agentless host facet info. + * + *

See {@link #getCSMAgentlessHostFacetInfoWithHttpInfoAsync}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values are + * resource_name, account_id, resource_type, + * cloud_provider, has_vulnerability_scanning, and + * has_posture_management. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<CsmHostFacetInfoResponse> + */ + public CompletableFuture getCSMAgentlessHostFacetInfoAsync( + String facet, GetCSMAgentlessHostFacetInfoOptionalParameters parameters) { + return getCSMAgentlessHostFacetInfoWithHttpInfoAsync(facet, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the value distribution for a specific agentless host facet, with optional search and + * filtering. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values are + * resource_name, account_id, resource_type, + * cloud_provider, has_vulnerability_scanning, and + * has_posture_management. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<CsmHostFacetInfoResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse getCSMAgentlessHostFacetInfoWithHttpInfo( + String facet, GetCSMAgentlessHostFacetInfoOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getCSMAgentlessHostFacetInfo"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'facet' is set + if (facet == null) { + throw new ApiException( + 400, "Missing the required parameter 'facet' when calling getCSMAgentlessHostFacetInfo"); + } + String search = parameters.search; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/agentless_hosts/facet_info"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "facet", facet)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "search", search)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.getCSMAgentlessHostFacetInfo", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get agentless host facet info. + * + *

See {@link #getCSMAgentlessHostFacetInfoWithHttpInfo}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values are + * resource_name, account_id, resource_type, + * cloud_provider, has_vulnerability_scanning, and + * has_posture_management. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<CsmHostFacetInfoResponse>> + */ + public CompletableFuture> + getCSMAgentlessHostFacetInfoWithHttpInfoAsync( + String facet, GetCSMAgentlessHostFacetInfoOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "getCSMAgentlessHostFacetInfo"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'facet' is set + if (facet == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'facet' when calling getCSMAgentlessHostFacetInfo")); + return result; + } + String search = parameters.search; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/agentless_hosts/facet_info"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "facet", facet)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "search", search)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.getCSMAgentlessHostFacetInfo", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to getCSMUnifiedHostFacetInfo. */ + public static class GetCSMUnifiedHostFacetInfoOptionalParameters { + private String search; + private String query; + + /** + * Set search. + * + * @param search A search string to filter the facet values. (optional) + * @return GetCSMUnifiedHostFacetInfoOptionalParameters + */ + public GetCSMUnifiedHostFacetInfoOptionalParameters search(String search) { + this.search = search; + return this; + } + + /** + * Set query. + * + * @param query A filter query to scope the facet value counts. (optional) + * @return GetCSMUnifiedHostFacetInfoOptionalParameters + */ + public GetCSMUnifiedHostFacetInfoOptionalParameters query(String query) { + this.query = query; + return this; + } + } + + /** + * Get unified host facet info. + * + *

See {@link #getCSMUnifiedHostFacetInfoWithHttpInfo}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values include + * resource_name, account_id, resource_type, + * cloud_provider, agentless_vulnerability_scanning, + * agentless_posture_management, hostname, agent_version, + * os, cluster_name, agent_posture_management, + * agent_cws_enabled, agent_csm_vm_hosts_enabled, and + * agent_csm_vm_containers_enabled. (required) + * @return CsmHostFacetInfoResponse + * @throws ApiException if fails to make API call + */ + public CsmHostFacetInfoResponse getCSMUnifiedHostFacetInfo(String facet) throws ApiException { + return getCSMUnifiedHostFacetInfoWithHttpInfo( + facet, new GetCSMUnifiedHostFacetInfoOptionalParameters()) + .getData(); + } + + /** + * Get unified host facet info. + * + *

See {@link #getCSMUnifiedHostFacetInfoWithHttpInfoAsync}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values include + * resource_name, account_id, resource_type, + * cloud_provider, agentless_vulnerability_scanning, + * agentless_posture_management, hostname, agent_version, + * os, cluster_name, agent_posture_management, + * agent_cws_enabled, agent_csm_vm_hosts_enabled, and + * agent_csm_vm_containers_enabled. (required) + * @return CompletableFuture<CsmHostFacetInfoResponse> + */ + public CompletableFuture getCSMUnifiedHostFacetInfoAsync(String facet) { + return getCSMUnifiedHostFacetInfoWithHttpInfoAsync( + facet, new GetCSMUnifiedHostFacetInfoOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get unified host facet info. + * + *

See {@link #getCSMUnifiedHostFacetInfoWithHttpInfo}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values include + * resource_name, account_id, resource_type, + * cloud_provider, agentless_vulnerability_scanning, + * agentless_posture_management, hostname, agent_version, + * os, cluster_name, agent_posture_management, + * agent_cws_enabled, agent_csm_vm_hosts_enabled, and + * agent_csm_vm_containers_enabled. (required) + * @param parameters Optional parameters for the request. + * @return CsmHostFacetInfoResponse + * @throws ApiException if fails to make API call + */ + public CsmHostFacetInfoResponse getCSMUnifiedHostFacetInfo( + String facet, GetCSMUnifiedHostFacetInfoOptionalParameters parameters) throws ApiException { + return getCSMUnifiedHostFacetInfoWithHttpInfo(facet, parameters).getData(); + } + + /** + * Get unified host facet info. + * + *

See {@link #getCSMUnifiedHostFacetInfoWithHttpInfoAsync}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values include + * resource_name, account_id, resource_type, + * cloud_provider, agentless_vulnerability_scanning, + * agentless_posture_management, hostname, agent_version, + * os, cluster_name, agent_posture_management, + * agent_cws_enabled, agent_csm_vm_hosts_enabled, and + * agent_csm_vm_containers_enabled. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<CsmHostFacetInfoResponse> + */ + public CompletableFuture getCSMUnifiedHostFacetInfoAsync( + String facet, GetCSMUnifiedHostFacetInfoOptionalParameters parameters) { + return getCSMUnifiedHostFacetInfoWithHttpInfoAsync(facet, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the value distribution for a specific unified host facet, with optional search and + * filtering. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values include + * resource_name, account_id, resource_type, + * cloud_provider, agentless_vulnerability_scanning, + * agentless_posture_management, hostname, agent_version, + * os, cluster_name, agent_posture_management, + * agent_cws_enabled, agent_csm_vm_hosts_enabled, and + * agent_csm_vm_containers_enabled. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<CsmHostFacetInfoResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse getCSMUnifiedHostFacetInfoWithHttpInfo( + String facet, GetCSMUnifiedHostFacetInfoOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getCSMUnifiedHostFacetInfo"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'facet' is set + if (facet == null) { + throw new ApiException( + 400, "Missing the required parameter 'facet' when calling getCSMUnifiedHostFacetInfo"); + } + String search = parameters.search; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/hosts/facet_info"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "facet", facet)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "search", search)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.getCSMUnifiedHostFacetInfo", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get unified host facet info. + * + *

See {@link #getCSMUnifiedHostFacetInfoWithHttpInfo}. + * + * @param facet The facet identifier to retrieve value distribution for. Valid values include + * resource_name, account_id, resource_type, + * cloud_provider, agentless_vulnerability_scanning, + * agentless_posture_management, hostname, agent_version, + * os, cluster_name, agent_posture_management, + * agent_cws_enabled, agent_csm_vm_hosts_enabled, and + * agent_csm_vm_containers_enabled. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<CsmHostFacetInfoResponse>> + */ + public CompletableFuture> + getCSMUnifiedHostFacetInfoWithHttpInfoAsync( + String facet, GetCSMUnifiedHostFacetInfoOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "getCSMUnifiedHostFacetInfo"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'facet' is set + if (facet == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'facet' when calling getCSMUnifiedHostFacetInfo")); + return result; + } + String search = parameters.search; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/hosts/facet_info"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "facet", facet)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "search", search)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.getCSMUnifiedHostFacetInfo", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List agentless host facets. + * + *

See {@link #listCSMAgentlessHostFacetsWithHttpInfo}. + * + * @return CsmAgentlessHostFacetsResponse + * @throws ApiException if fails to make API call + */ + public CsmAgentlessHostFacetsResponse listCSMAgentlessHostFacets() throws ApiException { + return listCSMAgentlessHostFacetsWithHttpInfo().getData(); + } + + /** + * List agentless host facets. + * + *

See {@link #listCSMAgentlessHostFacetsWithHttpInfoAsync}. + * + * @return CompletableFuture<CsmAgentlessHostFacetsResponse> + */ + public CompletableFuture listCSMAgentlessHostFacetsAsync() { + return listCSMAgentlessHostFacetsWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of available facets for filtering agentless hosts. + * + * @return ApiResponse<CsmAgentlessHostFacetsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse listCSMAgentlessHostFacetsWithHttpInfo() + throws ApiException { + // Check if unstable operation is enabled + String operationId = "listCSMAgentlessHostFacets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/agentless_hosts/facets"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMAgentlessHostFacets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List agentless host facets. + * + *

See {@link #listCSMAgentlessHostFacetsWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<CsmAgentlessHostFacetsResponse>> + */ + public CompletableFuture> + listCSMAgentlessHostFacetsWithHttpInfoAsync() { + // Check if unstable operation is enabled + String operationId = "listCSMAgentlessHostFacets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/agentless_hosts/facets"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMAgentlessHostFacets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listCSMAgentlessHosts. */ + public static class ListCSMAgentlessHostsOptionalParameters { + private Integer page; + private Integer size; + private String query; + + /** + * Set page. + * + * @param page The page index for pagination (zero-based). (optional, default to 0) + * @return ListCSMAgentlessHostsOptionalParameters + */ + public ListCSMAgentlessHostsOptionalParameters page(Integer page) { + this.page = page; + return this; + } + + /** + * Set size. + * + * @param size The number of agentless hosts to return per page. (optional, default to 10) + * @return ListCSMAgentlessHostsOptionalParameters + */ + public ListCSMAgentlessHostsOptionalParameters size(Integer size) { + this.size = size; + return this; + } + + /** + * Set query. + * + * @param query A search query string to filter agentless hosts. (optional) + * @return ListCSMAgentlessHostsOptionalParameters + */ + public ListCSMAgentlessHostsOptionalParameters query(String query) { + this.query = query; + return this; + } + } + + /** + * List agentless hosts. + * + *

See {@link #listCSMAgentlessHostsWithHttpInfo}. + * + * @return CsmAgentlessHostsResponse + * @throws ApiException if fails to make API call + */ + public CsmAgentlessHostsResponse listCSMAgentlessHosts() throws ApiException { + return listCSMAgentlessHostsWithHttpInfo(new ListCSMAgentlessHostsOptionalParameters()) + .getData(); + } + + /** + * List agentless hosts. + * + *

See {@link #listCSMAgentlessHostsWithHttpInfoAsync}. + * + * @return CompletableFuture<CsmAgentlessHostsResponse> + */ + public CompletableFuture listCSMAgentlessHostsAsync() { + return listCSMAgentlessHostsWithHttpInfoAsync(new ListCSMAgentlessHostsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List agentless hosts. + * + *

See {@link #listCSMAgentlessHostsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CsmAgentlessHostsResponse + * @throws ApiException if fails to make API call + */ + public CsmAgentlessHostsResponse listCSMAgentlessHosts( + ListCSMAgentlessHostsOptionalParameters parameters) throws ApiException { + return listCSMAgentlessHostsWithHttpInfo(parameters).getData(); + } + + /** + * List agentless hosts. + * + *

See {@link #listCSMAgentlessHostsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<CsmAgentlessHostsResponse> + */ + public CompletableFuture listCSMAgentlessHostsAsync( + ListCSMAgentlessHostsOptionalParameters parameters) { + return listCSMAgentlessHostsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of agentless hosts for CSM, with optional pagination and filtering. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<CsmAgentlessHostsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse listCSMAgentlessHostsWithHttpInfo( + ListCSMAgentlessHostsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listCSMAgentlessHosts"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + Integer page = parameters.page; + Integer size = parameters.size; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/agentless_hosts"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page", page)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "size", size)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMAgentlessHosts", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List agentless hosts. + * + *

See {@link #listCSMAgentlessHostsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<CsmAgentlessHostsResponse>> + */ + public CompletableFuture> + listCSMAgentlessHostsWithHttpInfoAsync(ListCSMAgentlessHostsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listCSMAgentlessHosts"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + Integer page = parameters.page; + Integer size = parameters.size; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/agentless_hosts"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page", page)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "size", size)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMAgentlessHosts", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List unified host facets. + * + *

See {@link #listCSMUnifiedHostFacetsWithHttpInfo}. + * + * @return CsmUnifiedHostFacetsResponse + * @throws ApiException if fails to make API call + */ + public CsmUnifiedHostFacetsResponse listCSMUnifiedHostFacets() throws ApiException { + return listCSMUnifiedHostFacetsWithHttpInfo().getData(); + } + + /** + * List unified host facets. + * + *

See {@link #listCSMUnifiedHostFacetsWithHttpInfoAsync}. + * + * @return CompletableFuture<CsmUnifiedHostFacetsResponse> + */ + public CompletableFuture listCSMUnifiedHostFacetsAsync() { + return listCSMUnifiedHostFacetsWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of available facets for filtering unified hosts. + * + * @return ApiResponse<CsmUnifiedHostFacetsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse listCSMUnifiedHostFacetsWithHttpInfo() + throws ApiException { + // Check if unstable operation is enabled + String operationId = "listCSMUnifiedHostFacets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/hosts/facets"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMUnifiedHostFacets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List unified host facets. + * + *

See {@link #listCSMUnifiedHostFacetsWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<CsmUnifiedHostFacetsResponse>> + */ + public CompletableFuture> + listCSMUnifiedHostFacetsWithHttpInfoAsync() { + // Check if unstable operation is enabled + String operationId = "listCSMUnifiedHostFacets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/hosts/facets"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMUnifiedHostFacets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listCSMUnifiedHosts. */ + public static class ListCSMUnifiedHostsOptionalParameters { + private Integer page; + private Integer size; + private String query; + + /** + * Set page. + * + * @param page The page index for pagination (zero-based). (optional, default to 0) + * @return ListCSMUnifiedHostsOptionalParameters + */ + public ListCSMUnifiedHostsOptionalParameters page(Integer page) { + this.page = page; + return this; + } + + /** + * Set size. + * + * @param size The number of hosts to return per page. (optional, default to 10) + * @return ListCSMUnifiedHostsOptionalParameters + */ + public ListCSMUnifiedHostsOptionalParameters size(Integer size) { + this.size = size; + return this; + } + + /** + * Set query. + * + * @param query A search query string to filter unified hosts. (optional) + * @return ListCSMUnifiedHostsOptionalParameters + */ + public ListCSMUnifiedHostsOptionalParameters query(String query) { + this.query = query; + return this; + } + } + + /** + * List unified hosts. + * + *

See {@link #listCSMUnifiedHostsWithHttpInfo}. + * + * @return CsmUnifiedHostsResponse + * @throws ApiException if fails to make API call + */ + public CsmUnifiedHostsResponse listCSMUnifiedHosts() throws ApiException { + return listCSMUnifiedHostsWithHttpInfo(new ListCSMUnifiedHostsOptionalParameters()).getData(); + } + + /** + * List unified hosts. + * + *

See {@link #listCSMUnifiedHostsWithHttpInfoAsync}. + * + * @return CompletableFuture<CsmUnifiedHostsResponse> + */ + public CompletableFuture listCSMUnifiedHostsAsync() { + return listCSMUnifiedHostsWithHttpInfoAsync(new ListCSMUnifiedHostsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List unified hosts. + * + *

See {@link #listCSMUnifiedHostsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CsmUnifiedHostsResponse + * @throws ApiException if fails to make API call + */ + public CsmUnifiedHostsResponse listCSMUnifiedHosts( + ListCSMUnifiedHostsOptionalParameters parameters) throws ApiException { + return listCSMUnifiedHostsWithHttpInfo(parameters).getData(); + } + + /** + * List unified hosts. + * + *

See {@link #listCSMUnifiedHostsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<CsmUnifiedHostsResponse> + */ + public CompletableFuture listCSMUnifiedHostsAsync( + ListCSMUnifiedHostsOptionalParameters parameters) { + return listCSMUnifiedHostsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of unified hosts for CSM, combining agent and agentless host data, with optional + * pagination and filtering. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<CsmUnifiedHostsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse listCSMUnifiedHostsWithHttpInfo( + ListCSMUnifiedHostsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listCSMUnifiedHosts"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + Integer page = parameters.page; + Integer size = parameters.size; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/hosts"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page", page)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "size", size)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMUnifiedHosts", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List unified hosts. + * + *

See {@link #listCSMUnifiedHostsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<CsmUnifiedHostsResponse>> + */ + public CompletableFuture> + listCSMUnifiedHostsWithHttpInfoAsync(ListCSMUnifiedHostsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listCSMUnifiedHosts"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + Integer page = parameters.page; + Integer size = parameters.size; + String query = parameters.query; + // create path and map variables + String localVarPath = "/api/v2/csm/settings/hosts"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page", page)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "size", size)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.CsmSettingsApi.listCSMUnifiedHosts", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostAttributes.java new file mode 100644 index 00000000000..27937ddb6f6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostAttributes.java @@ -0,0 +1,287 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes of an agentless host. */ +@JsonPropertyOrder({ + CsmAgentlessHostAttributes.JSON_PROPERTY_ACCOUNT_ID, + CsmAgentlessHostAttributes.JSON_PROPERTY_CLOUD_PROVIDER, + CsmAgentlessHostAttributes.JSON_PROPERTY_HAS_POSTURE_MANAGEMENT, + CsmAgentlessHostAttributes.JSON_PROPERTY_HAS_VULNERABILITY_SCANNING, + CsmAgentlessHostAttributes.JSON_PROPERTY_RESOURCE_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmAgentlessHostAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACCOUNT_ID = "account_id"; + private String accountId; + + public static final String JSON_PROPERTY_CLOUD_PROVIDER = "cloud_provider"; + private CsmCloudProvider cloudProvider; + + public static final String JSON_PROPERTY_HAS_POSTURE_MANAGEMENT = "has_posture_management"; + private Boolean hasPostureManagement; + + public static final String JSON_PROPERTY_HAS_VULNERABILITY_SCANNING = + "has_vulnerability_scanning"; + private Boolean hasVulnerabilityScanning; + + public static final String JSON_PROPERTY_RESOURCE_TYPE = "resource_type"; + private CsmAgentlessHostResourceType resourceType; + + public CsmAgentlessHostAttributes() {} + + @JsonCreator + public CsmAgentlessHostAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_ACCOUNT_ID) String accountId, + @JsonProperty(required = true, value = JSON_PROPERTY_CLOUD_PROVIDER) + CsmCloudProvider cloudProvider, + @JsonProperty(required = true, value = JSON_PROPERTY_HAS_POSTURE_MANAGEMENT) + Boolean hasPostureManagement, + @JsonProperty(required = true, value = JSON_PROPERTY_HAS_VULNERABILITY_SCANNING) + Boolean hasVulnerabilityScanning, + @JsonProperty(required = true, value = JSON_PROPERTY_RESOURCE_TYPE) + CsmAgentlessHostResourceType resourceType) { + this.accountId = accountId; + this.cloudProvider = cloudProvider; + this.unparsed |= !cloudProvider.isValid(); + this.hasPostureManagement = hasPostureManagement; + this.hasVulnerabilityScanning = hasVulnerabilityScanning; + this.resourceType = resourceType; + this.unparsed |= !resourceType.isValid(); + } + + public CsmAgentlessHostAttributes accountId(String accountId) { + this.accountId = accountId; + return this; + } + + /** + * The ID of the cloud account that the host belongs to. + * + * @return accountId + */ + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public CsmAgentlessHostAttributes cloudProvider(CsmCloudProvider cloudProvider) { + this.cloudProvider = cloudProvider; + this.unparsed |= !cloudProvider.isValid(); + return this; + } + + /** + * The cloud provider of a host resource. + * + * @return cloudProvider + */ + @JsonProperty(JSON_PROPERTY_CLOUD_PROVIDER) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmCloudProvider getCloudProvider() { + return cloudProvider; + } + + public void setCloudProvider(CsmCloudProvider cloudProvider) { + if (!cloudProvider.isValid()) { + this.unparsed = true; + } + this.cloudProvider = cloudProvider; + } + + public CsmAgentlessHostAttributes hasPostureManagement(Boolean hasPostureManagement) { + this.hasPostureManagement = hasPostureManagement; + return this; + } + + /** + * Whether CSM Misconfigurations is enabled for this host. true if enabled; + * false if disabled. + * + * @return hasPostureManagement + */ + @JsonProperty(JSON_PROPERTY_HAS_POSTURE_MANAGEMENT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getHasPostureManagement() { + return hasPostureManagement; + } + + public void setHasPostureManagement(Boolean hasPostureManagement) { + this.hasPostureManagement = hasPostureManagement; + } + + public CsmAgentlessHostAttributes hasVulnerabilityScanning(Boolean hasVulnerabilityScanning) { + this.hasVulnerabilityScanning = hasVulnerabilityScanning; + return this; + } + + /** + * Whether CSM Vulnerabilities is enabled for this host. true if enabled; false + * if disabled. + * + * @return hasVulnerabilityScanning + */ + @JsonProperty(JSON_PROPERTY_HAS_VULNERABILITY_SCANNING) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getHasVulnerabilityScanning() { + return hasVulnerabilityScanning; + } + + public void setHasVulnerabilityScanning(Boolean hasVulnerabilityScanning) { + this.hasVulnerabilityScanning = hasVulnerabilityScanning; + } + + public CsmAgentlessHostAttributes resourceType(CsmAgentlessHostResourceType resourceType) { + this.resourceType = resourceType; + this.unparsed |= !resourceType.isValid(); + return this; + } + + /** + * The type of cloud resource for an agentless host. + * + * @return resourceType + */ + @JsonProperty(JSON_PROPERTY_RESOURCE_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmAgentlessHostResourceType getResourceType() { + return resourceType; + } + + public void setResourceType(CsmAgentlessHostResourceType resourceType) { + if (!resourceType.isValid()) { + this.unparsed = true; + } + this.resourceType = resourceType; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmAgentlessHostAttributes + */ + @JsonAnySetter + public CsmAgentlessHostAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmAgentlessHostAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmAgentlessHostAttributes csmAgentlessHostAttributes = (CsmAgentlessHostAttributes) o; + return Objects.equals(this.accountId, csmAgentlessHostAttributes.accountId) + && Objects.equals(this.cloudProvider, csmAgentlessHostAttributes.cloudProvider) + && Objects.equals( + this.hasPostureManagement, csmAgentlessHostAttributes.hasPostureManagement) + && Objects.equals( + this.hasVulnerabilityScanning, csmAgentlessHostAttributes.hasVulnerabilityScanning) + && Objects.equals(this.resourceType, csmAgentlessHostAttributes.resourceType) + && Objects.equals( + this.additionalProperties, csmAgentlessHostAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + accountId, + cloudProvider, + hasPostureManagement, + hasVulnerabilityScanning, + resourceType, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmAgentlessHostAttributes {\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" cloudProvider: ").append(toIndentedString(cloudProvider)).append("\n"); + sb.append(" hasPostureManagement: ") + .append(toIndentedString(hasPostureManagement)) + .append("\n"); + sb.append(" hasVulnerabilityScanning: ") + .append(toIndentedString(hasVulnerabilityScanning)) + .append("\n"); + sb.append(" resourceType: ").append(toIndentedString(resourceType)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostData.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostData.java new file mode 100644 index 00000000000..bb19ee777e8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostData.java @@ -0,0 +1,210 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single agentless host resource. */ +@JsonPropertyOrder({ + CsmAgentlessHostData.JSON_PROPERTY_ATTRIBUTES, + CsmAgentlessHostData.JSON_PROPERTY_ID, + CsmAgentlessHostData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmAgentlessHostData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CsmAgentlessHostAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CsmAgentlessHostType type = CsmAgentlessHostType.AGENTLESS_HOST; + + public CsmAgentlessHostData() {} + + @JsonCreator + public CsmAgentlessHostData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CsmAgentlessHostAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CsmAgentlessHostType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CsmAgentlessHostData attributes(CsmAgentlessHostAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of an agentless host. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmAgentlessHostAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CsmAgentlessHostAttributes attributes) { + this.attributes = attributes; + } + + public CsmAgentlessHostData id(String id) { + this.id = id; + return this; + } + + /** + * The resource identifier of the agentless host. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CsmAgentlessHostData type(CsmAgentlessHostType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for agentless host resources. The value should always be agentless_host + * . + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmAgentlessHostType getType() { + return type; + } + + public void setType(CsmAgentlessHostType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmAgentlessHostData + */ + @JsonAnySetter + public CsmAgentlessHostData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmAgentlessHostData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmAgentlessHostData csmAgentlessHostData = (CsmAgentlessHostData) o; + return Objects.equals(this.attributes, csmAgentlessHostData.attributes) + && Objects.equals(this.id, csmAgentlessHostData.id) + && Objects.equals(this.type, csmAgentlessHostData.type) + && Objects.equals(this.additionalProperties, csmAgentlessHostData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmAgentlessHostData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetAttributes.java new file mode 100644 index 00000000000..2d01806c2d6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetAttributes.java @@ -0,0 +1,519 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes of an agentless host facet. */ +@JsonPropertyOrder({ + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_BOUNDED, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_BUNDLED, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_BUNDLED_AND_USED, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_DEFAULT_VALUES, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_DESCRIPTION, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_EDITABLE, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_FACET_TYPE, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_GROUPS, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_NAME, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_PATH, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_SOURCE, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_TYPE, + CsmAgentlessHostFacetAttributes.JSON_PROPERTY_VALUES +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmAgentlessHostFacetAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_BOUNDED = "bounded"; + private Boolean bounded; + + public static final String JSON_PROPERTY_BUNDLED = "bundled"; + private Boolean bundled; + + public static final String JSON_PROPERTY_BUNDLED_AND_USED = "bundledAndUsed"; + private Boolean bundledAndUsed; + + public static final String JSON_PROPERTY_DEFAULT_VALUES = "defaultValues"; + private List defaultValues = new ArrayList<>(); + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_EDITABLE = "editable"; + private Boolean editable; + + public static final String JSON_PROPERTY_FACET_TYPE = "facetType"; + private String facetType; + + public static final String JSON_PROPERTY_GROUPS = "groups"; + private List groups = new ArrayList<>(); + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_PATH = "path"; + private String path; + + public static final String JSON_PROPERTY_SOURCE = "source"; + private String source; + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type; + + public static final String JSON_PROPERTY_VALUES = "values"; + private List values = new ArrayList<>(); + + public CsmAgentlessHostFacetAttributes() {} + + @JsonCreator + public CsmAgentlessHostFacetAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_BOUNDED) Boolean bounded, + @JsonProperty(required = true, value = JSON_PROPERTY_BUNDLED) Boolean bundled, + @JsonProperty(required = true, value = JSON_PROPERTY_BUNDLED_AND_USED) Boolean bundledAndUsed, + @JsonProperty(required = true, value = JSON_PROPERTY_DEFAULT_VALUES) + List defaultValues, + @JsonProperty(required = true, value = JSON_PROPERTY_DESCRIPTION) String description, + @JsonProperty(required = true, value = JSON_PROPERTY_EDITABLE) Boolean editable, + @JsonProperty(required = true, value = JSON_PROPERTY_FACET_TYPE) String facetType, + @JsonProperty(required = true, value = JSON_PROPERTY_GROUPS) List groups, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_PATH) String path, + @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE) String source, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) String type, + @JsonProperty(required = true, value = JSON_PROPERTY_VALUES) List values) { + this.bounded = bounded; + this.bundled = bundled; + this.bundledAndUsed = bundledAndUsed; + this.defaultValues = defaultValues; + this.description = description; + this.editable = editable; + this.facetType = facetType; + this.groups = groups; + this.name = name; + this.path = path; + this.source = source; + this.type = type; + this.values = values; + } + + public CsmAgentlessHostFacetAttributes bounded(Boolean bounded) { + this.bounded = bounded; + return this; + } + + /** + * Whether the facet has a bounded set of allowed values. true indicates a fixed + * value set and false indicates free-form values. + * + * @return bounded + */ + @JsonProperty(JSON_PROPERTY_BOUNDED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getBounded() { + return bounded; + } + + public void setBounded(Boolean bounded) { + this.bounded = bounded; + } + + public CsmAgentlessHostFacetAttributes bundled(Boolean bundled) { + this.bundled = bundled; + return this; + } + + /** + * Whether the facet is bundled as part of the default facet set. true indicates + * bundled and false indicates custom. + * + * @return bundled + */ + @JsonProperty(JSON_PROPERTY_BUNDLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getBundled() { + return bundled; + } + + public void setBundled(Boolean bundled) { + this.bundled = bundled; + } + + public CsmAgentlessHostFacetAttributes bundledAndUsed(Boolean bundledAndUsed) { + this.bundledAndUsed = bundledAndUsed; + return this; + } + + /** + * Whether the facet is both bundled and actively used. true indicates in use; + * false indicates unused. + * + * @return bundledAndUsed + */ + @JsonProperty(JSON_PROPERTY_BUNDLED_AND_USED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getBundledAndUsed() { + return bundledAndUsed; + } + + public void setBundledAndUsed(Boolean bundledAndUsed) { + this.bundledAndUsed = bundledAndUsed; + } + + public CsmAgentlessHostFacetAttributes defaultValues(List defaultValues) { + this.defaultValues = defaultValues; + return this; + } + + public CsmAgentlessHostFacetAttributes addDefaultValuesItem(String defaultValuesItem) { + this.defaultValues.add(defaultValuesItem); + return this; + } + + /** + * The list of default filter values for the facet. + * + * @return defaultValues + */ + @JsonProperty(JSON_PROPERTY_DEFAULT_VALUES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getDefaultValues() { + return defaultValues; + } + + public void setDefaultValues(List defaultValues) { + this.defaultValues = defaultValues; + } + + public CsmAgentlessHostFacetAttributes description(String description) { + this.description = description; + return this; + } + + /** + * A human-readable description of what the facet represents. + * + * @return description + */ + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CsmAgentlessHostFacetAttributes editable(Boolean editable) { + this.editable = editable; + return this; + } + + /** + * Whether the facet can be edited by users. true indicates editable; false + * indicates read-only. + * + * @return editable + */ + @JsonProperty(JSON_PROPERTY_EDITABLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getEditable() { + return editable; + } + + public void setEditable(Boolean editable) { + this.editable = editable; + } + + public CsmAgentlessHostFacetAttributes facetType(String facetType) { + this.facetType = facetType; + return this; + } + + /** + * The UI display type for the facet, such as list. + * + * @return facetType + */ + @JsonProperty(JSON_PROPERTY_FACET_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getFacetType() { + return facetType; + } + + public void setFacetType(String facetType) { + this.facetType = facetType; + } + + public CsmAgentlessHostFacetAttributes groups(List groups) { + this.groups = groups; + return this; + } + + public CsmAgentlessHostFacetAttributes addGroupsItem(String groupsItem) { + this.groups.add(groupsItem); + return this; + } + + /** + * The list of UI groups that this facet belongs to. + * + * @return groups + */ + @JsonProperty(JSON_PROPERTY_GROUPS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getGroups() { + return groups; + } + + public void setGroups(List groups) { + this.groups = groups; + } + + public CsmAgentlessHostFacetAttributes name(String name) { + this.name = name; + return this; + } + + /** + * The display name of the facet. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CsmAgentlessHostFacetAttributes path(String path) { + this.path = path; + return this; + } + + /** + * The field path used when filtering by this facet. + * + * @return path + */ + @JsonProperty(JSON_PROPERTY_PATH) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public CsmAgentlessHostFacetAttributes source(String source) { + this.source = source; + return this; + } + + /** + * The data source that provides the facet values. + * + * @return source + */ + @JsonProperty(JSON_PROPERTY_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public CsmAgentlessHostFacetAttributes type(String type) { + this.type = type; + return this; + } + + /** + * The data type of the facet values. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public CsmAgentlessHostFacetAttributes values(List values) { + this.values = values; + return this; + } + + public CsmAgentlessHostFacetAttributes addValuesItem(String valuesItem) { + this.values.add(valuesItem); + return this; + } + + /** + * The list of allowed filter values for bounded facets. Empty for unbounded facets. + * + * @return values + */ + @JsonProperty(JSON_PROPERTY_VALUES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getValues() { + return values; + } + + public void setValues(List values) { + this.values = values; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmAgentlessHostFacetAttributes + */ + @JsonAnySetter + public CsmAgentlessHostFacetAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmAgentlessHostFacetAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmAgentlessHostFacetAttributes csmAgentlessHostFacetAttributes = + (CsmAgentlessHostFacetAttributes) o; + return Objects.equals(this.bounded, csmAgentlessHostFacetAttributes.bounded) + && Objects.equals(this.bundled, csmAgentlessHostFacetAttributes.bundled) + && Objects.equals(this.bundledAndUsed, csmAgentlessHostFacetAttributes.bundledAndUsed) + && Objects.equals(this.defaultValues, csmAgentlessHostFacetAttributes.defaultValues) + && Objects.equals(this.description, csmAgentlessHostFacetAttributes.description) + && Objects.equals(this.editable, csmAgentlessHostFacetAttributes.editable) + && Objects.equals(this.facetType, csmAgentlessHostFacetAttributes.facetType) + && Objects.equals(this.groups, csmAgentlessHostFacetAttributes.groups) + && Objects.equals(this.name, csmAgentlessHostFacetAttributes.name) + && Objects.equals(this.path, csmAgentlessHostFacetAttributes.path) + && Objects.equals(this.source, csmAgentlessHostFacetAttributes.source) + && Objects.equals(this.type, csmAgentlessHostFacetAttributes.type) + && Objects.equals(this.values, csmAgentlessHostFacetAttributes.values) + && Objects.equals( + this.additionalProperties, csmAgentlessHostFacetAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + bounded, + bundled, + bundledAndUsed, + defaultValues, + description, + editable, + facetType, + groups, + name, + path, + source, + type, + values, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmAgentlessHostFacetAttributes {\n"); + sb.append(" bounded: ").append(toIndentedString(bounded)).append("\n"); + sb.append(" bundled: ").append(toIndentedString(bundled)).append("\n"); + sb.append(" bundledAndUsed: ").append(toIndentedString(bundledAndUsed)).append("\n"); + sb.append(" defaultValues: ").append(toIndentedString(defaultValues)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" editable: ").append(toIndentedString(editable)).append("\n"); + sb.append(" facetType: ").append(toIndentedString(facetType)).append("\n"); + sb.append(" groups: ").append(toIndentedString(groups)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" values: ").append(toIndentedString(values)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetData.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetData.java new file mode 100644 index 00000000000..c6fe1a93757 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetData.java @@ -0,0 +1,211 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single agentless host facet resource. */ +@JsonPropertyOrder({ + CsmAgentlessHostFacetData.JSON_PROPERTY_ATTRIBUTES, + CsmAgentlessHostFacetData.JSON_PROPERTY_ID, + CsmAgentlessHostFacetData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmAgentlessHostFacetData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CsmAgentlessHostFacetAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CsmAgentlessHostFacetType type = CsmAgentlessHostFacetType.AGENTLESS_HOST_FACET; + + public CsmAgentlessHostFacetData() {} + + @JsonCreator + public CsmAgentlessHostFacetData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CsmAgentlessHostFacetAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CsmAgentlessHostFacetType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CsmAgentlessHostFacetData attributes(CsmAgentlessHostFacetAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of an agentless host facet. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmAgentlessHostFacetAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CsmAgentlessHostFacetAttributes attributes) { + this.attributes = attributes; + } + + public CsmAgentlessHostFacetData id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of the facet, corresponding to the field path. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CsmAgentlessHostFacetData type(CsmAgentlessHostFacetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for agentless host facet resources. The value should always be + * agentless_host_facet. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmAgentlessHostFacetType getType() { + return type; + } + + public void setType(CsmAgentlessHostFacetType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmAgentlessHostFacetData + */ + @JsonAnySetter + public CsmAgentlessHostFacetData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmAgentlessHostFacetData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmAgentlessHostFacetData csmAgentlessHostFacetData = (CsmAgentlessHostFacetData) o; + return Objects.equals(this.attributes, csmAgentlessHostFacetData.attributes) + && Objects.equals(this.id, csmAgentlessHostFacetData.id) + && Objects.equals(this.type, csmAgentlessHostFacetData.type) + && Objects.equals( + this.additionalProperties, csmAgentlessHostFacetData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmAgentlessHostFacetData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetType.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetType.java new file mode 100644 index 00000000000..986b31ebfb5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetType.java @@ -0,0 +1,60 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The JSON:API type for agentless host facet resources. The value should always be + * agentless_host_facet. + */ +@JsonSerialize(using = CsmAgentlessHostFacetType.CsmAgentlessHostFacetTypeSerializer.class) +public class CsmAgentlessHostFacetType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("agentless_host_facet")); + + public static final CsmAgentlessHostFacetType AGENTLESS_HOST_FACET = + new CsmAgentlessHostFacetType("agentless_host_facet"); + + CsmAgentlessHostFacetType(String value) { + super(value, allowedValues); + } + + public static class CsmAgentlessHostFacetTypeSerializer + extends StdSerializer { + public CsmAgentlessHostFacetTypeSerializer(Class t) { + super(t); + } + + public CsmAgentlessHostFacetTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CsmAgentlessHostFacetType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmAgentlessHostFacetType fromValue(String value) { + return new CsmAgentlessHostFacetType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetsResponse.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetsResponse.java new file mode 100644 index 00000000000..4d3ac515b36 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostFacetsResponse.java @@ -0,0 +1,157 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The response returned when listing facets for agentless hosts. */ +@JsonPropertyOrder({CsmAgentlessHostFacetsResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmAgentlessHostFacetsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public CsmAgentlessHostFacetsResponse() {} + + @JsonCreator + public CsmAgentlessHostFacetsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public CsmAgentlessHostFacetsResponse data(List data) { + this.data = data; + for (CsmAgentlessHostFacetData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CsmAgentlessHostFacetsResponse addDataItem(CsmAgentlessHostFacetData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of available facets for agentless hosts. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmAgentlessHostFacetsResponse + */ + @JsonAnySetter + public CsmAgentlessHostFacetsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmAgentlessHostFacetsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmAgentlessHostFacetsResponse csmAgentlessHostFacetsResponse = + (CsmAgentlessHostFacetsResponse) o; + return Objects.equals(this.data, csmAgentlessHostFacetsResponse.data) + && Objects.equals( + this.additionalProperties, csmAgentlessHostFacetsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmAgentlessHostFacetsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostResourceType.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostResourceType.java new file mode 100644 index 00000000000..5c04c27a834 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostResourceType.java @@ -0,0 +1,68 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of cloud resource for an agentless host. */ +@JsonSerialize(using = CsmAgentlessHostResourceType.CsmAgentlessHostResourceTypeSerializer.class) +public class CsmAgentlessHostResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet( + Arrays.asList( + "aws_ec2_instance", + "azure_virtual_machine_instance", + "gcp_compute_instance", + "oci_instance")); + + public static final CsmAgentlessHostResourceType AWS_EC2_INSTANCE = + new CsmAgentlessHostResourceType("aws_ec2_instance"); + public static final CsmAgentlessHostResourceType AZURE_VIRTUAL_MACHINE_INSTANCE = + new CsmAgentlessHostResourceType("azure_virtual_machine_instance"); + public static final CsmAgentlessHostResourceType GCP_COMPUTE_INSTANCE = + new CsmAgentlessHostResourceType("gcp_compute_instance"); + public static final CsmAgentlessHostResourceType OCI_INSTANCE = + new CsmAgentlessHostResourceType("oci_instance"); + + CsmAgentlessHostResourceType(String value) { + super(value, allowedValues); + } + + public static class CsmAgentlessHostResourceTypeSerializer + extends StdSerializer { + public CsmAgentlessHostResourceTypeSerializer(Class t) { + super(t); + } + + public CsmAgentlessHostResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CsmAgentlessHostResourceType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmAgentlessHostResourceType fromValue(String value) { + return new CsmAgentlessHostResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostType.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostType.java new file mode 100644 index 00000000000..8ee764768d1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostType.java @@ -0,0 +1,59 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The JSON:API type for agentless host resources. The value should always be agentless_host + * . + */ +@JsonSerialize(using = CsmAgentlessHostType.CsmAgentlessHostTypeSerializer.class) +public class CsmAgentlessHostType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("agentless_host")); + + public static final CsmAgentlessHostType AGENTLESS_HOST = + new CsmAgentlessHostType("agentless_host"); + + CsmAgentlessHostType(String value) { + super(value, allowedValues); + } + + public static class CsmAgentlessHostTypeSerializer extends StdSerializer { + public CsmAgentlessHostTypeSerializer(Class t) { + super(t); + } + + public CsmAgentlessHostTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CsmAgentlessHostType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmAgentlessHostType fromValue(String value) { + return new CsmAgentlessHostType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostsResponse.java b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostsResponse.java new file mode 100644 index 00000000000..9e198527483 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmAgentlessHostsResponse.java @@ -0,0 +1,187 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The response returned when listing agentless hosts. */ +@JsonPropertyOrder({ + CsmAgentlessHostsResponse.JSON_PROPERTY_DATA, + CsmAgentlessHostsResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmAgentlessHostsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private CsmSettingsMeta meta; + + public CsmAgentlessHostsResponse() {} + + @JsonCreator + public CsmAgentlessHostsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data, + @JsonProperty(required = true, value = JSON_PROPERTY_META) CsmSettingsMeta meta) { + this.data = data; + this.meta = meta; + this.unparsed |= meta.unparsed; + } + + public CsmAgentlessHostsResponse data(List data) { + this.data = data; + for (CsmAgentlessHostData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CsmAgentlessHostsResponse addDataItem(CsmAgentlessHostData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of agentless hosts for the current page. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public CsmAgentlessHostsResponse meta(CsmSettingsMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Pagination metadata for a CSM settings list response. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmSettingsMeta getMeta() { + return meta; + } + + public void setMeta(CsmSettingsMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmAgentlessHostsResponse + */ + @JsonAnySetter + public CsmAgentlessHostsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmAgentlessHostsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmAgentlessHostsResponse csmAgentlessHostsResponse = (CsmAgentlessHostsResponse) o; + return Objects.equals(this.data, csmAgentlessHostsResponse.data) + && Objects.equals(this.meta, csmAgentlessHostsResponse.meta) + && Objects.equals( + this.additionalProperties, csmAgentlessHostsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmAgentlessHostsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmCloudProvider.java b/src/main/java/com/datadog/api/client/v2/model/CsmCloudProvider.java new file mode 100644 index 00000000000..464b051502f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmCloudProvider.java @@ -0,0 +1,57 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The cloud provider of a host resource. */ +@JsonSerialize(using = CsmCloudProvider.CsmCloudProviderSerializer.class) +public class CsmCloudProvider extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("aws", "gcp", "azure", "oci")); + + public static final CsmCloudProvider AWS = new CsmCloudProvider("aws"); + public static final CsmCloudProvider GCP = new CsmCloudProvider("gcp"); + public static final CsmCloudProvider AZURE = new CsmCloudProvider("azure"); + public static final CsmCloudProvider OCI = new CsmCloudProvider("oci"); + + CsmCloudProvider(String value) { + super(value, allowedValues); + } + + public static class CsmCloudProviderSerializer extends StdSerializer { + public CsmCloudProviderSerializer(Class t) { + super(t); + } + + public CsmCloudProviderSerializer() { + this(null); + } + + @Override + public void serialize(CsmCloudProvider value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmCloudProvider fromValue(String value) { + return new CsmCloudProvider(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmFacetInfoType.java b/src/main/java/com/datadog/api/client/v2/model/CsmFacetInfoType.java new file mode 100644 index 00000000000..5d00f24e386 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmFacetInfoType.java @@ -0,0 +1,55 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The JSON:API type for facet info resources. The value should always be facet_info. + */ +@JsonSerialize(using = CsmFacetInfoType.CsmFacetInfoTypeSerializer.class) +public class CsmFacetInfoType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("facet_info")); + + public static final CsmFacetInfoType FACET_INFO = new CsmFacetInfoType("facet_info"); + + CsmFacetInfoType(String value) { + super(value, allowedValues); + } + + public static class CsmFacetInfoTypeSerializer extends StdSerializer { + public CsmFacetInfoTypeSerializer(Class t) { + super(t); + } + + public CsmFacetInfoTypeSerializer() { + this(null); + } + + @Override + public void serialize(CsmFacetInfoType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmFacetInfoType fromValue(String value) { + return new CsmFacetInfoType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoAttributes.java new file mode 100644 index 00000000000..8ca34b9837a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoAttributes.java @@ -0,0 +1,158 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Attributes of a facet info response, containing the value distribution for the requested facet. + */ +@JsonPropertyOrder({CsmHostFacetInfoAttributes.JSON_PROPERTY_ITEMS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmHostFacetInfoAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ITEMS = "items"; + private List items = new ArrayList<>(); + + public CsmHostFacetInfoAttributes() {} + + @JsonCreator + public CsmHostFacetInfoAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_ITEMS) + List items) { + this.items = items; + } + + public CsmHostFacetInfoAttributes items(List items) { + this.items = items; + for (CsmHostFacetInfoItem item : items) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CsmHostFacetInfoAttributes addItemsItem(CsmHostFacetInfoItem itemsItem) { + this.items.add(itemsItem); + this.unparsed |= itemsItem.unparsed; + return this; + } + + /** + * The list of facet value entries for the current page. + * + * @return items + */ + @JsonProperty(JSON_PROPERTY_ITEMS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmHostFacetInfoAttributes + */ + @JsonAnySetter + public CsmHostFacetInfoAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmHostFacetInfoAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmHostFacetInfoAttributes csmHostFacetInfoAttributes = (CsmHostFacetInfoAttributes) o; + return Objects.equals(this.items, csmHostFacetInfoAttributes.items) + && Objects.equals( + this.additionalProperties, csmHostFacetInfoAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(items, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmHostFacetInfoAttributes {\n"); + sb.append(" items: ").append(toIndentedString(items)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoData.java b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoData.java new file mode 100644 index 00000000000..07e37dc2c43 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoData.java @@ -0,0 +1,239 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The data wrapper for a facet info response. */ +@JsonPropertyOrder({ + CsmHostFacetInfoData.JSON_PROPERTY_ATTRIBUTES, + CsmHostFacetInfoData.JSON_PROPERTY_ID, + CsmHostFacetInfoData.JSON_PROPERTY_META, + CsmHostFacetInfoData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmHostFacetInfoData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CsmHostFacetInfoAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_META = "meta"; + private CsmHostFacetInfoMeta meta; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CsmFacetInfoType type = CsmFacetInfoType.FACET_INFO; + + public CsmHostFacetInfoData() {} + + @JsonCreator + public CsmHostFacetInfoData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CsmHostFacetInfoAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_META) CsmHostFacetInfoMeta meta, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CsmFacetInfoType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.meta = meta; + this.unparsed |= meta.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CsmHostFacetInfoData attributes(CsmHostFacetInfoAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of a facet info response, containing the value distribution for the requested facet. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmHostFacetInfoAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CsmHostFacetInfoAttributes attributes) { + this.attributes = attributes; + } + + public CsmHostFacetInfoData id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of the facet. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CsmHostFacetInfoData meta(CsmHostFacetInfoMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Metadata for the facet info response. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmHostFacetInfoMeta getMeta() { + return meta; + } + + public void setMeta(CsmHostFacetInfoMeta meta) { + this.meta = meta; + } + + public CsmHostFacetInfoData type(CsmFacetInfoType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for facet info resources. The value should always be facet_info. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmFacetInfoType getType() { + return type; + } + + public void setType(CsmFacetInfoType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmHostFacetInfoData + */ + @JsonAnySetter + public CsmHostFacetInfoData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmHostFacetInfoData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmHostFacetInfoData csmHostFacetInfoData = (CsmHostFacetInfoData) o; + return Objects.equals(this.attributes, csmHostFacetInfoData.attributes) + && Objects.equals(this.id, csmHostFacetInfoData.id) + && Objects.equals(this.meta, csmHostFacetInfoData.meta) + && Objects.equals(this.type, csmHostFacetInfoData.type) + && Objects.equals(this.additionalProperties, csmHostFacetInfoData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, meta, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmHostFacetInfoData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoItem.java b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoItem.java new file mode 100644 index 00000000000..8f703d565ea --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoItem.java @@ -0,0 +1,173 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single value and its occurrence count for a facet. */ +@JsonPropertyOrder({ + CsmHostFacetInfoItem.JSON_PROPERTY_COUNT, + CsmHostFacetInfoItem.JSON_PROPERTY_VALUE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmHostFacetInfoItem { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_COUNT = "count"; + private Long count; + + public static final String JSON_PROPERTY_VALUE = "value"; + private String value; + + public CsmHostFacetInfoItem() {} + + @JsonCreator + public CsmHostFacetInfoItem( + @JsonProperty(required = true, value = JSON_PROPERTY_COUNT) Long count, + @JsonProperty(required = true, value = JSON_PROPERTY_VALUE) String value) { + this.count = count; + this.value = value; + } + + public CsmHostFacetInfoItem count(Long count) { + this.count = count; + return this; + } + + /** + * The number of resources with this facet value. + * + * @return count + */ + @JsonProperty(JSON_PROPERTY_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getCount() { + return count; + } + + public void setCount(Long count) { + this.count = count; + } + + public CsmHostFacetInfoItem value(String value) { + this.value = value; + return this; + } + + /** + * The facet value. + * + * @return value + */ + @JsonProperty(JSON_PROPERTY_VALUE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmHostFacetInfoItem + */ + @JsonAnySetter + public CsmHostFacetInfoItem putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmHostFacetInfoItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmHostFacetInfoItem csmHostFacetInfoItem = (CsmHostFacetInfoItem) o; + return Objects.equals(this.count, csmHostFacetInfoItem.count) + && Objects.equals(this.value, csmHostFacetInfoItem.value) + && Objects.equals(this.additionalProperties, csmHostFacetInfoItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(count, value, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmHostFacetInfoItem {\n"); + sb.append(" count: ").append(toIndentedString(count)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoMeta.java b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoMeta.java new file mode 100644 index 00000000000..7009f7dd910 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoMeta.java @@ -0,0 +1,143 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Metadata for the facet info response. */ +@JsonPropertyOrder({CsmHostFacetInfoMeta.JSON_PROPERTY_TOTAL_COUNT}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmHostFacetInfoMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TOTAL_COUNT = "total_count"; + private Long totalCount; + + public CsmHostFacetInfoMeta() {} + + @JsonCreator + public CsmHostFacetInfoMeta( + @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_COUNT) Long totalCount) { + this.totalCount = totalCount; + } + + public CsmHostFacetInfoMeta totalCount(Long totalCount) { + this.totalCount = totalCount; + return this; + } + + /** + * The total number of distinct values for this facet. + * + * @return totalCount + */ + @JsonProperty(JSON_PROPERTY_TOTAL_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getTotalCount() { + return totalCount; + } + + public void setTotalCount(Long totalCount) { + this.totalCount = totalCount; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmHostFacetInfoMeta + */ + @JsonAnySetter + public CsmHostFacetInfoMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmHostFacetInfoMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmHostFacetInfoMeta csmHostFacetInfoMeta = (CsmHostFacetInfoMeta) o; + return Objects.equals(this.totalCount, csmHostFacetInfoMeta.totalCount) + && Objects.equals(this.additionalProperties, csmHostFacetInfoMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(totalCount, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmHostFacetInfoMeta {\n"); + sb.append(" totalCount: ").append(toIndentedString(totalCount)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoResponse.java b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoResponse.java new file mode 100644 index 00000000000..453c6c37c7e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmHostFacetInfoResponse.java @@ -0,0 +1,145 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The response returned when requesting value distribution for a specific facet. */ +@JsonPropertyOrder({CsmHostFacetInfoResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmHostFacetInfoResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private CsmHostFacetInfoData data; + + public CsmHostFacetInfoResponse() {} + + @JsonCreator + public CsmHostFacetInfoResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) CsmHostFacetInfoData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public CsmHostFacetInfoResponse data(CsmHostFacetInfoData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The data wrapper for a facet info response. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmHostFacetInfoData getData() { + return data; + } + + public void setData(CsmHostFacetInfoData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmHostFacetInfoResponse + */ + @JsonAnySetter + public CsmHostFacetInfoResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmHostFacetInfoResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmHostFacetInfoResponse csmHostFacetInfoResponse = (CsmHostFacetInfoResponse) o; + return Objects.equals(this.data, csmHostFacetInfoResponse.data) + && Objects.equals(this.additionalProperties, csmHostFacetInfoResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmHostFacetInfoResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmSettingsMeta.java b/src/main/java/com/datadog/api/client/v2/model/CsmSettingsMeta.java new file mode 100644 index 00000000000..62caa21593e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmSettingsMeta.java @@ -0,0 +1,201 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Pagination metadata for a CSM settings list response. */ +@JsonPropertyOrder({ + CsmSettingsMeta.JSON_PROPERTY_PAGE_INDEX, + CsmSettingsMeta.JSON_PROPERTY_PAGE_SIZE, + CsmSettingsMeta.JSON_PROPERTY_TOTAL_FILTERED +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmSettingsMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_PAGE_INDEX = "page_index"; + private Long pageIndex; + + public static final String JSON_PROPERTY_PAGE_SIZE = "page_size"; + private Long pageSize; + + public static final String JSON_PROPERTY_TOTAL_FILTERED = "total_filtered"; + private Long totalFiltered; + + public CsmSettingsMeta() {} + + @JsonCreator + public CsmSettingsMeta( + @JsonProperty(required = true, value = JSON_PROPERTY_PAGE_INDEX) Long pageIndex, + @JsonProperty(required = true, value = JSON_PROPERTY_PAGE_SIZE) Long pageSize, + @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_FILTERED) Long totalFiltered) { + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.totalFiltered = totalFiltered; + } + + public CsmSettingsMeta pageIndex(Long pageIndex) { + this.pageIndex = pageIndex; + return this; + } + + /** + * The current page index (zero-based). + * + * @return pageIndex + */ + @JsonProperty(JSON_PROPERTY_PAGE_INDEX) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getPageIndex() { + return pageIndex; + } + + public void setPageIndex(Long pageIndex) { + this.pageIndex = pageIndex; + } + + public CsmSettingsMeta pageSize(Long pageSize) { + this.pageSize = pageSize; + return this; + } + + /** + * The number of resources returned per page. + * + * @return pageSize + */ + @JsonProperty(JSON_PROPERTY_PAGE_SIZE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getPageSize() { + return pageSize; + } + + public void setPageSize(Long pageSize) { + this.pageSize = pageSize; + } + + public CsmSettingsMeta totalFiltered(Long totalFiltered) { + this.totalFiltered = totalFiltered; + return this; + } + + /** + * The total number of resources matching the filter criteria. + * + * @return totalFiltered + */ + @JsonProperty(JSON_PROPERTY_TOTAL_FILTERED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getTotalFiltered() { + return totalFiltered; + } + + public void setTotalFiltered(Long totalFiltered) { + this.totalFiltered = totalFiltered; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmSettingsMeta + */ + @JsonAnySetter + public CsmSettingsMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmSettingsMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmSettingsMeta csmSettingsMeta = (CsmSettingsMeta) o; + return Objects.equals(this.pageIndex, csmSettingsMeta.pageIndex) + && Objects.equals(this.pageSize, csmSettingsMeta.pageSize) + && Objects.equals(this.totalFiltered, csmSettingsMeta.totalFiltered) + && Objects.equals(this.additionalProperties, csmSettingsMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pageIndex, pageSize, totalFiltered, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmSettingsMeta {\n"); + sb.append(" pageIndex: ").append(toIndentedString(pageIndex)).append("\n"); + sb.append(" pageSize: ").append(toIndentedString(pageSize)).append("\n"); + sb.append(" totalFiltered: ").append(toIndentedString(totalFiltered)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostAttributes.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostAttributes.java new file mode 100644 index 00000000000..fc4c5ac7ca1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostAttributes.java @@ -0,0 +1,795 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** Attributes of a unified host, combining data from agent and agentless sources. */ +@JsonPropertyOrder({ + CsmUnifiedHostAttributes.JSON_PROPERTY_ACCOUNT_ID, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENT_CSM_VM_CONTAINERS_ENABLED, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENT_CSM_VM_HOSTS_ENABLED, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENT_CWS_ENABLED, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENT_POSTURE_MANAGEMENT, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENT_VERSION, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENTLESS_POSTURE_MANAGEMENT, + CsmUnifiedHostAttributes.JSON_PROPERTY_AGENTLESS_VULNERABILITY_SCANNING, + CsmUnifiedHostAttributes.JSON_PROPERTY_CLOUD_PROVIDER, + CsmUnifiedHostAttributes.JSON_PROPERTY_CLUSTER_NAME, + CsmUnifiedHostAttributes.JSON_PROPERTY_DATADOG_AGENT_KEY, + CsmUnifiedHostAttributes.JSON_PROPERTY_ENV, + CsmUnifiedHostAttributes.JSON_PROPERTY_HOST_ID, + CsmUnifiedHostAttributes.JSON_PROPERTY_INSTALL_METHOD_TOOL, + CsmUnifiedHostAttributes.JSON_PROPERTY_OS, + CsmUnifiedHostAttributes.JSON_PROPERTY_RESOURCE_TYPE, + CsmUnifiedHostAttributes.JSON_PROPERTY_SOURCE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmUnifiedHostAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACCOUNT_ID = "account_id"; + private JsonNullable accountId = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENT_CSM_VM_CONTAINERS_ENABLED = + "agent_csm_vm_containers_enabled"; + private JsonNullable agentCsmVmContainersEnabled = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENT_CSM_VM_HOSTS_ENABLED = + "agent_csm_vm_hosts_enabled"; + private JsonNullable agentCsmVmHostsEnabled = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENT_CWS_ENABLED = "agent_cws_enabled"; + private JsonNullable agentCwsEnabled = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENT_POSTURE_MANAGEMENT = "agent_posture_management"; + private JsonNullable agentPostureManagement = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENT_VERSION = "agent_version"; + private JsonNullable agentVersion = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENTLESS_POSTURE_MANAGEMENT = + "agentless_posture_management"; + private JsonNullable agentlessPostureManagement = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_AGENTLESS_VULNERABILITY_SCANNING = + "agentless_vulnerability_scanning"; + private JsonNullable agentlessVulnerabilityScanning = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_CLOUD_PROVIDER = "cloud_provider"; + private CsmCloudProvider cloudProvider; + + public static final String JSON_PROPERTY_CLUSTER_NAME = "cluster_name"; + private JsonNullable clusterName = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_DATADOG_AGENT_KEY = "datadog_agent_key"; + private JsonNullable datadogAgentKey = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_ENV = "env"; + private JsonNullable> env = JsonNullable.>undefined(); + + public static final String JSON_PROPERTY_HOST_ID = "host_id"; + private JsonNullable hostId = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_INSTALL_METHOD_TOOL = "install_method_tool"; + private JsonNullable installMethodTool = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_OS = "os"; + private JsonNullable os = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_RESOURCE_TYPE = "resource_type"; + private CsmAgentlessHostResourceType resourceType; + + public static final String JSON_PROPERTY_SOURCE = "source"; + private CsmUnifiedHostSource source; + + public CsmUnifiedHostAttributes() {} + + @JsonCreator + public CsmUnifiedHostAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_SOURCE) CsmUnifiedHostSource source) { + this.source = source; + this.unparsed |= !source.isValid(); + } + + public CsmUnifiedHostAttributes accountId(String accountId) { + this.accountId = JsonNullable.of(accountId); + return this; + } + + /** + * The ID of the cloud account that the host belongs to. Present only when the host was discovered + * through agentless scanning. + * + * @return accountId + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getAccountId() { + return accountId.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAccountId_JsonNullable() { + return accountId; + } + + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + public void setAccountId_JsonNullable(JsonNullable accountId) { + this.accountId = accountId; + } + + public void setAccountId(String accountId) { + this.accountId = JsonNullable.of(accountId); + } + + public CsmUnifiedHostAttributes agentCsmVmContainersEnabled(Boolean agentCsmVmContainersEnabled) { + this.agentCsmVmContainersEnabled = JsonNullable.of(agentCsmVmContainersEnabled); + return this; + } + + /** + * Whether CSM Vulnerabilities is enabled for containers through the Datadog Agent. true + * if enabled; false if disabled. + * + * @return agentCsmVmContainersEnabled + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Boolean getAgentCsmVmContainersEnabled() { + return agentCsmVmContainersEnabled.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENT_CSM_VM_CONTAINERS_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentCsmVmContainersEnabled_JsonNullable() { + return agentCsmVmContainersEnabled; + } + + @JsonProperty(JSON_PROPERTY_AGENT_CSM_VM_CONTAINERS_ENABLED) + public void setAgentCsmVmContainersEnabled_JsonNullable( + JsonNullable agentCsmVmContainersEnabled) { + this.agentCsmVmContainersEnabled = agentCsmVmContainersEnabled; + } + + public void setAgentCsmVmContainersEnabled(Boolean agentCsmVmContainersEnabled) { + this.agentCsmVmContainersEnabled = JsonNullable.of(agentCsmVmContainersEnabled); + } + + public CsmUnifiedHostAttributes agentCsmVmHostsEnabled(Boolean agentCsmVmHostsEnabled) { + this.agentCsmVmHostsEnabled = JsonNullable.of(agentCsmVmHostsEnabled); + return this; + } + + /** + * Whether CSM Vulnerabilities is enabled for hosts through the Datadog Agent. true + * if enabled; false if disabled. + * + * @return agentCsmVmHostsEnabled + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Boolean getAgentCsmVmHostsEnabled() { + return agentCsmVmHostsEnabled.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENT_CSM_VM_HOSTS_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentCsmVmHostsEnabled_JsonNullable() { + return agentCsmVmHostsEnabled; + } + + @JsonProperty(JSON_PROPERTY_AGENT_CSM_VM_HOSTS_ENABLED) + public void setAgentCsmVmHostsEnabled_JsonNullable(JsonNullable agentCsmVmHostsEnabled) { + this.agentCsmVmHostsEnabled = agentCsmVmHostsEnabled; + } + + public void setAgentCsmVmHostsEnabled(Boolean agentCsmVmHostsEnabled) { + this.agentCsmVmHostsEnabled = JsonNullable.of(agentCsmVmHostsEnabled); + } + + public CsmUnifiedHostAttributes agentCwsEnabled(Boolean agentCwsEnabled) { + this.agentCwsEnabled = JsonNullable.of(agentCwsEnabled); + return this; + } + + /** + * Whether CSM Threats is enabled for this host through the Datadog Agent. true if + * enabled; false if disabled. + * + * @return agentCwsEnabled + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Boolean getAgentCwsEnabled() { + return agentCwsEnabled.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENT_CWS_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentCwsEnabled_JsonNullable() { + return agentCwsEnabled; + } + + @JsonProperty(JSON_PROPERTY_AGENT_CWS_ENABLED) + public void setAgentCwsEnabled_JsonNullable(JsonNullable agentCwsEnabled) { + this.agentCwsEnabled = agentCwsEnabled; + } + + public void setAgentCwsEnabled(Boolean agentCwsEnabled) { + this.agentCwsEnabled = JsonNullable.of(agentCwsEnabled); + } + + public CsmUnifiedHostAttributes agentPostureManagement(Boolean agentPostureManagement) { + this.agentPostureManagement = JsonNullable.of(agentPostureManagement); + return this; + } + + /** + * Whether CSM Misconfigurations is enabled for this host through the Datadog Agent. true + * if enabled; false if disabled. + * + * @return agentPostureManagement + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Boolean getAgentPostureManagement() { + return agentPostureManagement.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENT_POSTURE_MANAGEMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentPostureManagement_JsonNullable() { + return agentPostureManagement; + } + + @JsonProperty(JSON_PROPERTY_AGENT_POSTURE_MANAGEMENT) + public void setAgentPostureManagement_JsonNullable(JsonNullable agentPostureManagement) { + this.agentPostureManagement = agentPostureManagement; + } + + public void setAgentPostureManagement(Boolean agentPostureManagement) { + this.agentPostureManagement = JsonNullable.of(agentPostureManagement); + } + + public CsmUnifiedHostAttributes agentVersion(String agentVersion) { + this.agentVersion = JsonNullable.of(agentVersion); + return this; + } + + /** + * The version of the Datadog Agent running on this host. + * + * @return agentVersion + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getAgentVersion() { + return agentVersion.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENT_VERSION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentVersion_JsonNullable() { + return agentVersion; + } + + @JsonProperty(JSON_PROPERTY_AGENT_VERSION) + public void setAgentVersion_JsonNullable(JsonNullable agentVersion) { + this.agentVersion = agentVersion; + } + + public void setAgentVersion(String agentVersion) { + this.agentVersion = JsonNullable.of(agentVersion); + } + + public CsmUnifiedHostAttributes agentlessPostureManagement(Boolean agentlessPostureManagement) { + this.agentlessPostureManagement = JsonNullable.of(agentlessPostureManagement); + return this; + } + + /** + * Whether CSM Misconfigurations is enabled for this host via agentless scanning. true + * if enabled; false if disabled. + * + * @return agentlessPostureManagement + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Boolean getAgentlessPostureManagement() { + return agentlessPostureManagement.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENTLESS_POSTURE_MANAGEMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentlessPostureManagement_JsonNullable() { + return agentlessPostureManagement; + } + + @JsonProperty(JSON_PROPERTY_AGENTLESS_POSTURE_MANAGEMENT) + public void setAgentlessPostureManagement_JsonNullable( + JsonNullable agentlessPostureManagement) { + this.agentlessPostureManagement = agentlessPostureManagement; + } + + public void setAgentlessPostureManagement(Boolean agentlessPostureManagement) { + this.agentlessPostureManagement = JsonNullable.of(agentlessPostureManagement); + } + + public CsmUnifiedHostAttributes agentlessVulnerabilityScanning( + Boolean agentlessVulnerabilityScanning) { + this.agentlessVulnerabilityScanning = JsonNullable.of(agentlessVulnerabilityScanning); + return this; + } + + /** + * Whether CSM Vulnerabilities is enabled for this host via agentless scanning. true + * if enabled; false if disabled. + * + * @return agentlessVulnerabilityScanning + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Boolean getAgentlessVulnerabilityScanning() { + return agentlessVulnerabilityScanning.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AGENTLESS_VULNERABILITY_SCANNING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAgentlessVulnerabilityScanning_JsonNullable() { + return agentlessVulnerabilityScanning; + } + + @JsonProperty(JSON_PROPERTY_AGENTLESS_VULNERABILITY_SCANNING) + public void setAgentlessVulnerabilityScanning_JsonNullable( + JsonNullable agentlessVulnerabilityScanning) { + this.agentlessVulnerabilityScanning = agentlessVulnerabilityScanning; + } + + public void setAgentlessVulnerabilityScanning(Boolean agentlessVulnerabilityScanning) { + this.agentlessVulnerabilityScanning = JsonNullable.of(agentlessVulnerabilityScanning); + } + + public CsmUnifiedHostAttributes cloudProvider(CsmCloudProvider cloudProvider) { + this.cloudProvider = cloudProvider; + this.unparsed |= !cloudProvider.isValid(); + return this; + } + + /** + * The cloud provider of a host resource. + * + * @return cloudProvider + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CLOUD_PROVIDER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CsmCloudProvider getCloudProvider() { + return cloudProvider; + } + + public void setCloudProvider(CsmCloudProvider cloudProvider) { + if (!cloudProvider.isValid()) { + this.unparsed = true; + } + this.cloudProvider = cloudProvider; + } + + public CsmUnifiedHostAttributes clusterName(String clusterName) { + this.clusterName = JsonNullable.of(clusterName); + return this; + } + + /** + * The name of the Kubernetes cluster the host belongs to, if applicable. + * + * @return clusterName + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getClusterName() { + return clusterName.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_CLUSTER_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getClusterName_JsonNullable() { + return clusterName; + } + + @JsonProperty(JSON_PROPERTY_CLUSTER_NAME) + public void setClusterName_JsonNullable(JsonNullable clusterName) { + this.clusterName = clusterName; + } + + public void setClusterName(String clusterName) { + this.clusterName = JsonNullable.of(clusterName); + } + + public CsmUnifiedHostAttributes datadogAgentKey(String datadogAgentKey) { + this.datadogAgentKey = JsonNullable.of(datadogAgentKey); + return this; + } + + /** + * The Datadog Agent key associated with this host. Present only for agent-sourced hosts. + * + * @return datadogAgentKey + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getDatadogAgentKey() { + return datadogAgentKey.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_DATADOG_AGENT_KEY) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getDatadogAgentKey_JsonNullable() { + return datadogAgentKey; + } + + @JsonProperty(JSON_PROPERTY_DATADOG_AGENT_KEY) + public void setDatadogAgentKey_JsonNullable(JsonNullable datadogAgentKey) { + this.datadogAgentKey = datadogAgentKey; + } + + public void setDatadogAgentKey(String datadogAgentKey) { + this.datadogAgentKey = JsonNullable.of(datadogAgentKey); + } + + public CsmUnifiedHostAttributes env(List env) { + this.env = JsonNullable.>of(env); + return this; + } + + public CsmUnifiedHostAttributes addEnvItem(String envItem) { + if (this.env == null || !this.env.isPresent()) { + this.env = JsonNullable.>of(new ArrayList<>()); + } + try { + this.env.get().add(envItem); + } catch (java.util.NoSuchElementException e) { + // this can never happen, as we make sure above that the value is present + } + return this; + } + + /** + * The list of environment tags associated with this host. + * + * @return env + */ + @jakarta.annotation.Nullable + @JsonIgnore + public List getEnv() { + return env.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_ENV) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable> getEnv_JsonNullable() { + return env; + } + + @JsonProperty(JSON_PROPERTY_ENV) + public void setEnv_JsonNullable(JsonNullable> env) { + this.env = env; + } + + public void setEnv(List env) { + this.env = JsonNullable.>of(env); + } + + public CsmUnifiedHostAttributes hostId(Long hostId) { + this.hostId = JsonNullable.of(hostId); + return this; + } + + /** + * The internal Datadog host identifier. Present only for agent-sourced hosts. + * + * @return hostId + */ + @jakarta.annotation.Nullable + @JsonIgnore + public Long getHostId() { + return hostId.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_HOST_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getHostId_JsonNullable() { + return hostId; + } + + @JsonProperty(JSON_PROPERTY_HOST_ID) + public void setHostId_JsonNullable(JsonNullable hostId) { + this.hostId = hostId; + } + + public void setHostId(Long hostId) { + this.hostId = JsonNullable.of(hostId); + } + + public CsmUnifiedHostAttributes installMethodTool(String installMethodTool) { + this.installMethodTool = JsonNullable.of(installMethodTool); + return this; + } + + /** + * The tool used to install the Datadog Agent on this host. + * + * @return installMethodTool + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getInstallMethodTool() { + return installMethodTool.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_INSTALL_METHOD_TOOL) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getInstallMethodTool_JsonNullable() { + return installMethodTool; + } + + @JsonProperty(JSON_PROPERTY_INSTALL_METHOD_TOOL) + public void setInstallMethodTool_JsonNullable(JsonNullable installMethodTool) { + this.installMethodTool = installMethodTool; + } + + public void setInstallMethodTool(String installMethodTool) { + this.installMethodTool = JsonNullable.of(installMethodTool); + } + + public CsmUnifiedHostAttributes os(String os) { + this.os = JsonNullable.of(os); + return this; + } + + /** + * The operating system of the host. Present only for agent-sourced hosts. + * + * @return os + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getOs() { + return os.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_OS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getOs_JsonNullable() { + return os; + } + + @JsonProperty(JSON_PROPERTY_OS) + public void setOs_JsonNullable(JsonNullable os) { + this.os = os; + } + + public void setOs(String os) { + this.os = JsonNullable.of(os); + } + + public CsmUnifiedHostAttributes resourceType(CsmAgentlessHostResourceType resourceType) { + this.resourceType = resourceType; + this.unparsed |= !resourceType.isValid(); + return this; + } + + /** + * The type of cloud resource for an agentless host. + * + * @return resourceType + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RESOURCE_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public CsmAgentlessHostResourceType getResourceType() { + return resourceType; + } + + public void setResourceType(CsmAgentlessHostResourceType resourceType) { + if (!resourceType.isValid()) { + this.unparsed = true; + } + this.resourceType = resourceType; + } + + public CsmUnifiedHostAttributes source(CsmUnifiedHostSource source) { + this.source = source; + this.unparsed |= !source.isValid(); + return this; + } + + /** + * The source of a unified host entry, indicating whether it was discovered via agent, agentless + * scanning, or both. + * + * @return source + */ + @JsonProperty(JSON_PROPERTY_SOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmUnifiedHostSource getSource() { + return source; + } + + public void setSource(CsmUnifiedHostSource source) { + if (!source.isValid()) { + this.unparsed = true; + } + this.source = source; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmUnifiedHostAttributes + */ + @JsonAnySetter + public CsmUnifiedHostAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmUnifiedHostAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmUnifiedHostAttributes csmUnifiedHostAttributes = (CsmUnifiedHostAttributes) o; + return Objects.equals(this.accountId, csmUnifiedHostAttributes.accountId) + && Objects.equals( + this.agentCsmVmContainersEnabled, csmUnifiedHostAttributes.agentCsmVmContainersEnabled) + && Objects.equals( + this.agentCsmVmHostsEnabled, csmUnifiedHostAttributes.agentCsmVmHostsEnabled) + && Objects.equals(this.agentCwsEnabled, csmUnifiedHostAttributes.agentCwsEnabled) + && Objects.equals( + this.agentPostureManagement, csmUnifiedHostAttributes.agentPostureManagement) + && Objects.equals(this.agentVersion, csmUnifiedHostAttributes.agentVersion) + && Objects.equals( + this.agentlessPostureManagement, csmUnifiedHostAttributes.agentlessPostureManagement) + && Objects.equals( + this.agentlessVulnerabilityScanning, + csmUnifiedHostAttributes.agentlessVulnerabilityScanning) + && Objects.equals(this.cloudProvider, csmUnifiedHostAttributes.cloudProvider) + && Objects.equals(this.clusterName, csmUnifiedHostAttributes.clusterName) + && Objects.equals(this.datadogAgentKey, csmUnifiedHostAttributes.datadogAgentKey) + && Objects.equals(this.env, csmUnifiedHostAttributes.env) + && Objects.equals(this.hostId, csmUnifiedHostAttributes.hostId) + && Objects.equals(this.installMethodTool, csmUnifiedHostAttributes.installMethodTool) + && Objects.equals(this.os, csmUnifiedHostAttributes.os) + && Objects.equals(this.resourceType, csmUnifiedHostAttributes.resourceType) + && Objects.equals(this.source, csmUnifiedHostAttributes.source) + && Objects.equals(this.additionalProperties, csmUnifiedHostAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + accountId, + agentCsmVmContainersEnabled, + agentCsmVmHostsEnabled, + agentCwsEnabled, + agentPostureManagement, + agentVersion, + agentlessPostureManagement, + agentlessVulnerabilityScanning, + cloudProvider, + clusterName, + datadogAgentKey, + env, + hostId, + installMethodTool, + os, + resourceType, + source, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmUnifiedHostAttributes {\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" agentCsmVmContainersEnabled: ") + .append(toIndentedString(agentCsmVmContainersEnabled)) + .append("\n"); + sb.append(" agentCsmVmHostsEnabled: ") + .append(toIndentedString(agentCsmVmHostsEnabled)) + .append("\n"); + sb.append(" agentCwsEnabled: ").append(toIndentedString(agentCwsEnabled)).append("\n"); + sb.append(" agentPostureManagement: ") + .append(toIndentedString(agentPostureManagement)) + .append("\n"); + sb.append(" agentVersion: ").append(toIndentedString(agentVersion)).append("\n"); + sb.append(" agentlessPostureManagement: ") + .append(toIndentedString(agentlessPostureManagement)) + .append("\n"); + sb.append(" agentlessVulnerabilityScanning: ") + .append(toIndentedString(agentlessVulnerabilityScanning)) + .append("\n"); + sb.append(" cloudProvider: ").append(toIndentedString(cloudProvider)).append("\n"); + sb.append(" clusterName: ").append(toIndentedString(clusterName)).append("\n"); + sb.append(" datadogAgentKey: ").append(toIndentedString(datadogAgentKey)).append("\n"); + sb.append(" env: ").append(toIndentedString(env)).append("\n"); + sb.append(" hostId: ").append(toIndentedString(hostId)).append("\n"); + sb.append(" installMethodTool: ").append(toIndentedString(installMethodTool)).append("\n"); + sb.append(" os: ").append(toIndentedString(os)).append("\n"); + sb.append(" resourceType: ").append(toIndentedString(resourceType)).append("\n"); + sb.append(" source: ").append(toIndentedString(source)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostData.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostData.java new file mode 100644 index 00000000000..0e0725df6cd --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostData.java @@ -0,0 +1,210 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single unified host resource, combining agent and agentless data. */ +@JsonPropertyOrder({ + CsmUnifiedHostData.JSON_PROPERTY_ATTRIBUTES, + CsmUnifiedHostData.JSON_PROPERTY_ID, + CsmUnifiedHostData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmUnifiedHostData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CsmUnifiedHostAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CsmUnifiedHostType type = CsmUnifiedHostType.UNIFIED_HOST; + + public CsmUnifiedHostData() {} + + @JsonCreator + public CsmUnifiedHostData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CsmUnifiedHostAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CsmUnifiedHostType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CsmUnifiedHostData attributes(CsmUnifiedHostAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of a unified host, combining data from agent and agentless sources. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmUnifiedHostAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CsmUnifiedHostAttributes attributes) { + this.attributes = attributes; + } + + public CsmUnifiedHostData id(String id) { + this.id = id; + return this; + } + + /** + * The resource identifier of the unified host. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CsmUnifiedHostData type(CsmUnifiedHostType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for unified host resources. The value should always be unified_host + * . + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmUnifiedHostType getType() { + return type; + } + + public void setType(CsmUnifiedHostType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmUnifiedHostData + */ + @JsonAnySetter + public CsmUnifiedHostData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmUnifiedHostData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmUnifiedHostData csmUnifiedHostData = (CsmUnifiedHostData) o; + return Objects.equals(this.attributes, csmUnifiedHostData.attributes) + && Objects.equals(this.id, csmUnifiedHostData.id) + && Objects.equals(this.type, csmUnifiedHostData.type) + && Objects.equals(this.additionalProperties, csmUnifiedHostData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmUnifiedHostData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetData.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetData.java new file mode 100644 index 00000000000..055d4783c76 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetData.java @@ -0,0 +1,210 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single unified host facet resource. */ +@JsonPropertyOrder({ + CsmUnifiedHostFacetData.JSON_PROPERTY_ATTRIBUTES, + CsmUnifiedHostFacetData.JSON_PROPERTY_ID, + CsmUnifiedHostFacetData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmUnifiedHostFacetData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private CsmAgentlessHostFacetAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private CsmUnifiedHostFacetType type = CsmUnifiedHostFacetType.UNIFIED_HOST_FACET; + + public CsmUnifiedHostFacetData() {} + + @JsonCreator + public CsmUnifiedHostFacetData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + CsmAgentlessHostFacetAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) CsmUnifiedHostFacetType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public CsmUnifiedHostFacetData attributes(CsmAgentlessHostFacetAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of an agentless host facet. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmAgentlessHostFacetAttributes getAttributes() { + return attributes; + } + + public void setAttributes(CsmAgentlessHostFacetAttributes attributes) { + this.attributes = attributes; + } + + public CsmUnifiedHostFacetData id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of the facet, corresponding to the field path. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public CsmUnifiedHostFacetData type(CsmUnifiedHostFacetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for unified host facet resources. The value should always be + * unified_host_facet. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmUnifiedHostFacetType getType() { + return type; + } + + public void setType(CsmUnifiedHostFacetType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmUnifiedHostFacetData + */ + @JsonAnySetter + public CsmUnifiedHostFacetData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmUnifiedHostFacetData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmUnifiedHostFacetData csmUnifiedHostFacetData = (CsmUnifiedHostFacetData) o; + return Objects.equals(this.attributes, csmUnifiedHostFacetData.attributes) + && Objects.equals(this.id, csmUnifiedHostFacetData.id) + && Objects.equals(this.type, csmUnifiedHostFacetData.type) + && Objects.equals(this.additionalProperties, csmUnifiedHostFacetData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmUnifiedHostFacetData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetType.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetType.java new file mode 100644 index 00000000000..bf3635e0e12 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetType.java @@ -0,0 +1,60 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The JSON:API type for unified host facet resources. The value should always be + * unified_host_facet. + */ +@JsonSerialize(using = CsmUnifiedHostFacetType.CsmUnifiedHostFacetTypeSerializer.class) +public class CsmUnifiedHostFacetType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("unified_host_facet")); + + public static final CsmUnifiedHostFacetType UNIFIED_HOST_FACET = + new CsmUnifiedHostFacetType("unified_host_facet"); + + CsmUnifiedHostFacetType(String value) { + super(value, allowedValues); + } + + public static class CsmUnifiedHostFacetTypeSerializer + extends StdSerializer { + public CsmUnifiedHostFacetTypeSerializer(Class t) { + super(t); + } + + public CsmUnifiedHostFacetTypeSerializer() { + this(null); + } + + @Override + public void serialize( + CsmUnifiedHostFacetType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmUnifiedHostFacetType fromValue(String value) { + return new CsmUnifiedHostFacetType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetsResponse.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetsResponse.java new file mode 100644 index 00000000000..c6188a9deab --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostFacetsResponse.java @@ -0,0 +1,156 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The response returned when listing facets for unified hosts. */ +@JsonPropertyOrder({CsmUnifiedHostFacetsResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmUnifiedHostFacetsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public CsmUnifiedHostFacetsResponse() {} + + @JsonCreator + public CsmUnifiedHostFacetsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public CsmUnifiedHostFacetsResponse data(List data) { + this.data = data; + for (CsmUnifiedHostFacetData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CsmUnifiedHostFacetsResponse addDataItem(CsmUnifiedHostFacetData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of available facets for unified hosts. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmUnifiedHostFacetsResponse + */ + @JsonAnySetter + public CsmUnifiedHostFacetsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmUnifiedHostFacetsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmUnifiedHostFacetsResponse csmUnifiedHostFacetsResponse = (CsmUnifiedHostFacetsResponse) o; + return Objects.equals(this.data, csmUnifiedHostFacetsResponse.data) + && Objects.equals( + this.additionalProperties, csmUnifiedHostFacetsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmUnifiedHostFacetsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostSource.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostSource.java new file mode 100644 index 00000000000..c46fe36ce98 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostSource.java @@ -0,0 +1,60 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The source of a unified host entry, indicating whether it was discovered via agent, agentless + * scanning, or both. + */ +@JsonSerialize(using = CsmUnifiedHostSource.CsmUnifiedHostSourceSerializer.class) +public class CsmUnifiedHostSource extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("agent", "agentless", "both")); + + public static final CsmUnifiedHostSource AGENT = new CsmUnifiedHostSource("agent"); + public static final CsmUnifiedHostSource AGENTLESS = new CsmUnifiedHostSource("agentless"); + public static final CsmUnifiedHostSource BOTH = new CsmUnifiedHostSource("both"); + + CsmUnifiedHostSource(String value) { + super(value, allowedValues); + } + + public static class CsmUnifiedHostSourceSerializer extends StdSerializer { + public CsmUnifiedHostSourceSerializer(Class t) { + super(t); + } + + public CsmUnifiedHostSourceSerializer() { + this(null); + } + + @Override + public void serialize( + CsmUnifiedHostSource value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmUnifiedHostSource fromValue(String value) { + return new CsmUnifiedHostSource(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostType.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostType.java new file mode 100644 index 00000000000..cc2223171c9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostType.java @@ -0,0 +1,57 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The JSON:API type for unified host resources. The value should always be unified_host + * . + */ +@JsonSerialize(using = CsmUnifiedHostType.CsmUnifiedHostTypeSerializer.class) +public class CsmUnifiedHostType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("unified_host")); + + public static final CsmUnifiedHostType UNIFIED_HOST = new CsmUnifiedHostType("unified_host"); + + CsmUnifiedHostType(String value) { + super(value, allowedValues); + } + + public static class CsmUnifiedHostTypeSerializer extends StdSerializer { + public CsmUnifiedHostTypeSerializer(Class t) { + super(t); + } + + public CsmUnifiedHostTypeSerializer() { + this(null); + } + + @Override + public void serialize(CsmUnifiedHostType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static CsmUnifiedHostType fromValue(String value) { + return new CsmUnifiedHostType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostsMeta.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostsMeta.java new file mode 100644 index 00000000000..6aeb7da93ef --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostsMeta.java @@ -0,0 +1,229 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Pagination metadata for a unified hosts list response. */ +@JsonPropertyOrder({ + CsmUnifiedHostsMeta.JSON_PROPERTY_PAGE_INDEX, + CsmUnifiedHostsMeta.JSON_PROPERTY_PAGE_SIZE, + CsmUnifiedHostsMeta.JSON_PROPERTY_TOTAL_FILTERED, + CsmUnifiedHostsMeta.JSON_PROPERTY_TOTAL_PAGES +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmUnifiedHostsMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_PAGE_INDEX = "page_index"; + private Long pageIndex; + + public static final String JSON_PROPERTY_PAGE_SIZE = "page_size"; + private Long pageSize; + + public static final String JSON_PROPERTY_TOTAL_FILTERED = "total_filtered"; + private Long totalFiltered; + + public static final String JSON_PROPERTY_TOTAL_PAGES = "total_pages"; + private Long totalPages; + + public CsmUnifiedHostsMeta() {} + + @JsonCreator + public CsmUnifiedHostsMeta( + @JsonProperty(required = true, value = JSON_PROPERTY_PAGE_INDEX) Long pageIndex, + @JsonProperty(required = true, value = JSON_PROPERTY_PAGE_SIZE) Long pageSize, + @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_FILTERED) Long totalFiltered, + @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_PAGES) Long totalPages) { + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.totalFiltered = totalFiltered; + this.totalPages = totalPages; + } + + public CsmUnifiedHostsMeta pageIndex(Long pageIndex) { + this.pageIndex = pageIndex; + return this; + } + + /** + * The current page index (zero-based). + * + * @return pageIndex + */ + @JsonProperty(JSON_PROPERTY_PAGE_INDEX) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getPageIndex() { + return pageIndex; + } + + public void setPageIndex(Long pageIndex) { + this.pageIndex = pageIndex; + } + + public CsmUnifiedHostsMeta pageSize(Long pageSize) { + this.pageSize = pageSize; + return this; + } + + /** + * The number of hosts returned per page. + * + * @return pageSize + */ + @JsonProperty(JSON_PROPERTY_PAGE_SIZE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getPageSize() { + return pageSize; + } + + public void setPageSize(Long pageSize) { + this.pageSize = pageSize; + } + + public CsmUnifiedHostsMeta totalFiltered(Long totalFiltered) { + this.totalFiltered = totalFiltered; + return this; + } + + /** + * The total number of hosts matching the filter criteria. + * + * @return totalFiltered + */ + @JsonProperty(JSON_PROPERTY_TOTAL_FILTERED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getTotalFiltered() { + return totalFiltered; + } + + public void setTotalFiltered(Long totalFiltered) { + this.totalFiltered = totalFiltered; + } + + public CsmUnifiedHostsMeta totalPages(Long totalPages) { + this.totalPages = totalPages; + return this; + } + + /** + * The total number of pages available. + * + * @return totalPages + */ + @JsonProperty(JSON_PROPERTY_TOTAL_PAGES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getTotalPages() { + return totalPages; + } + + public void setTotalPages(Long totalPages) { + this.totalPages = totalPages; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmUnifiedHostsMeta + */ + @JsonAnySetter + public CsmUnifiedHostsMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmUnifiedHostsMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmUnifiedHostsMeta csmUnifiedHostsMeta = (CsmUnifiedHostsMeta) o; + return Objects.equals(this.pageIndex, csmUnifiedHostsMeta.pageIndex) + && Objects.equals(this.pageSize, csmUnifiedHostsMeta.pageSize) + && Objects.equals(this.totalFiltered, csmUnifiedHostsMeta.totalFiltered) + && Objects.equals(this.totalPages, csmUnifiedHostsMeta.totalPages) + && Objects.equals(this.additionalProperties, csmUnifiedHostsMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(pageIndex, pageSize, totalFiltered, totalPages, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmUnifiedHostsMeta {\n"); + sb.append(" pageIndex: ").append(toIndentedString(pageIndex)).append("\n"); + sb.append(" pageSize: ").append(toIndentedString(pageSize)).append("\n"); + sb.append(" totalFiltered: ").append(toIndentedString(totalFiltered)).append("\n"); + sb.append(" totalPages: ").append(toIndentedString(totalPages)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostsResponse.java b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostsResponse.java new file mode 100644 index 00000000000..11726771777 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/CsmUnifiedHostsResponse.java @@ -0,0 +1,186 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The response returned when listing unified hosts. */ +@JsonPropertyOrder({ + CsmUnifiedHostsResponse.JSON_PROPERTY_DATA, + CsmUnifiedHostsResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class CsmUnifiedHostsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private CsmUnifiedHostsMeta meta; + + public CsmUnifiedHostsResponse() {} + + @JsonCreator + public CsmUnifiedHostsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data, + @JsonProperty(required = true, value = JSON_PROPERTY_META) CsmUnifiedHostsMeta meta) { + this.data = data; + this.meta = meta; + this.unparsed |= meta.unparsed; + } + + public CsmUnifiedHostsResponse data(List data) { + this.data = data; + for (CsmUnifiedHostData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public CsmUnifiedHostsResponse addDataItem(CsmUnifiedHostData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of unified hosts for the current page. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public CsmUnifiedHostsResponse meta(CsmUnifiedHostsMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Pagination metadata for a unified hosts list response. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public CsmUnifiedHostsMeta getMeta() { + return meta; + } + + public void setMeta(CsmUnifiedHostsMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return CsmUnifiedHostsResponse + */ + @JsonAnySetter + public CsmUnifiedHostsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this CsmUnifiedHostsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CsmUnifiedHostsResponse csmUnifiedHostsResponse = (CsmUnifiedHostsResponse) o; + return Objects.equals(this.data, csmUnifiedHostsResponse.data) + && Objects.equals(this.meta, csmUnifiedHostsResponse.meta) + && Objects.equals(this.additionalProperties, csmUnifiedHostsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CsmUnifiedHostsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/test/resources/com/datadog/api/client/v2/api/csm_settings.feature b/src/test/resources/com/datadog/api/client/v2/api/csm_settings.feature new file mode 100644 index 00000000000..c28ca491f30 --- /dev/null +++ b/src/test/resources/com/datadog/api/client/v2/api/csm_settings.feature @@ -0,0 +1,85 @@ +@endpoint(csm-settings) @endpoint(csm-settings-v2) +Feature: CSM Settings + Datadog Cloud Security Management (CSM) Settings APIs allow you to list + and filter your cloud hosts monitored by CSM, covering both agentless and + agent-based discovery. For more information, see [Cloud Security Managemen + t](https://docs.datadoghq.com/security/cloud_security_management). + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "CSMSettings" API + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: Get agentless host facet info returns "Bad Request" response + Given operation "GetCSMAgentlessHostFacetInfo" enabled + And new "GetCSMAgentlessHostFacetInfo" request + And request contains "facet" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: Get agentless host facet info returns "OK" response + Given operation "GetCSMAgentlessHostFacetInfo" enabled + And new "GetCSMAgentlessHostFacetInfo" request + And request contains "facet" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: Get unified host facet info returns "Bad Request" response + Given operation "GetCSMUnifiedHostFacetInfo" enabled + And new "GetCSMUnifiedHostFacetInfo" request + And request contains "facet" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: Get unified host facet info returns "OK" response + Given operation "GetCSMUnifiedHostFacetInfo" enabled + And new "GetCSMUnifiedHostFacetInfo" request + And request contains "facet" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: List agentless host facets returns "OK" response + Given operation "ListCSMAgentlessHostFacets" enabled + And new "ListCSMAgentlessHostFacets" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: List agentless hosts returns "Bad Request" response + Given operation "ListCSMAgentlessHosts" enabled + And new "ListCSMAgentlessHosts" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: List agentless hosts returns "OK" response + Given operation "ListCSMAgentlessHosts" enabled + And new "ListCSMAgentlessHosts" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: List unified host facets returns "OK" response + Given operation "ListCSMUnifiedHostFacets" enabled + And new "ListCSMUnifiedHostFacets" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: List unified hosts returns "Bad Request" response + Given operation "ListCSMUnifiedHosts" enabled + And new "ListCSMUnifiedHosts" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-misconfigs + Scenario: List unified hosts returns "OK" response + Given operation "ListCSMUnifiedHosts" enabled + And new "ListCSMUnifiedHosts" request + When the request is sent + Then the response status is 200 OK diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 9101d0155cb..64ba52bc401 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -2031,6 +2031,42 @@ "type": "safe" } }, + "ListCSMAgentlessHosts": { + "tag": "CSM Settings", + "undo": { + "type": "safe" + } + }, + "GetCSMAgentlessHostFacetInfo": { + "tag": "CSM Settings", + "undo": { + "type": "safe" + } + }, + "ListCSMAgentlessHostFacets": { + "tag": "CSM Settings", + "undo": { + "type": "safe" + } + }, + "ListCSMUnifiedHosts": { + "tag": "CSM Settings", + "undo": { + "type": "safe" + } + }, + "GetCSMUnifiedHostFacetInfo": { + "tag": "CSM Settings", + "undo": { + "type": "safe" + } + }, + "ListCSMUnifiedHostFacets": { + "tag": "CSM Settings", + "undo": { + "type": "safe" + } + }, "GetCurrentUser": { "tag": "Users", "undo": {