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