diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index a03900136ab4..ee899f5065d7 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -12638,6 +12638,7 @@ components: data: attributes: compliance_host: false + function: true vuln_containers_os: true vuln_host_os: true id: 12345678-90ab-cdef-1234-567890abcdef @@ -12652,6 +12653,7 @@ components: data: - attributes: compliance_host: false + function: true vuln_containers_os: true vuln_host_os: true id: 12345678-90ab-cdef-1234-567890abcdef @@ -12686,6 +12688,9 @@ components: compliance_host: description: Indicates whether host compliance scanning is enabled. type: boolean + function: + description: Indicates if scanning of Azure Functions is enabled. + type: boolean vuln_containers_os: description: Indicates if scanning for vulnerabilities in containers is enabled. type: boolean @@ -12733,6 +12738,9 @@ components: compliance_host: description: Indicates whether host compliance scanning is enabled. type: boolean + function: + description: Indicates if scanning of Azure Functions is enabled. + type: boolean vuln_containers_os: description: Indicates if scanning for vulnerabilities in containers is enabled. type: boolean @@ -40828,6 +40836,7 @@ components: example: data: attributes: + cloud_function: true compliance_host: false vuln_containers_os: true vuln_host_os: true @@ -40842,6 +40851,7 @@ components: example: data: - attributes: + cloud_function: true compliance_host: false vuln_containers_os: true vuln_host_os: true @@ -40874,6 +40884,9 @@ components: GcpScanOptionsDataAttributes: description: Attributes for GCP scan options configuration. properties: + cloud_function: + description: Indicates if scanning of Cloud Functions is enabled. + type: boolean compliance_host: description: Indicates whether host compliance scanning is enabled. type: boolean @@ -40921,6 +40934,9 @@ components: GcpScanOptionsInputUpdateDataAttributes: description: Attributes for updating GCP scan options configuration. properties: + cloud_function: + description: Indicates if scanning of Cloud Functions is enabled. + type: boolean compliance_host: description: Indicates whether host compliance scanning is enabled. type: boolean diff --git a/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.frozen b/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.frozen index 283b6451f63f..14b188d1d519 100644 --- a/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.frozen +++ b/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.frozen @@ -1 +1 @@ -2025-10-23T22:21:55.015Z \ No newline at end of file +2026-07-17T06:38:46.211Z \ No newline at end of file diff --git a/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.yml b/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.yml index 455f7d9b826d..855d76a2b963 100644 --- a/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.yml +++ b/cassettes/features/v2/agentless_scanning/Create-Azure-scan-options-returns-Created-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Thu, 23 Oct 2025 22:21:55 GMT +- recorded_at: Fri, 17 Jul 2026 06:38:46 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"vuln_containers_os":true,"vuln_host_os":true},"id":"12345678-90ab-cdef-1234-567890abcdef","type":"azure_scan_options"}}' + string: '{"data":{"attributes":{"function":true,"vuln_containers_os":true,"vuln_host_os":true},"id":"12345678-90ab-cdef-1234-567890abcdef","type":"azure_scan_options"}}' headers: Accept: - application/json @@ -14,14 +14,14 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"12345678-90ab-cdef-1234-567890abcdef","type":"azure_scan_options","attributes":{"vuln_containers_os":true,"vuln_host_os":true}}}' + string: '{"data":{"id":"12345678-90ab-cdef-1234-567890abcdef","type":"azure_scan_options","attributes":{"compliance_host":false,"function":true,"vuln_containers_os":true,"vuln_host_os":true}}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 23 Oct 2025 22:21:55 GMT +- recorded_at: Fri, 17 Jul 2026 06:38:46 GMT request: body: null headers: diff --git a/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.frozen b/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.frozen index a6a44de7fc0d..94aee94de666 100644 --- a/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.frozen +++ b/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.frozen @@ -1 +1 @@ -2025-10-23T22:21:55.656Z \ No newline at end of file +2026-07-17T06:38:47.064Z \ No newline at end of file diff --git a/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.yml b/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.yml index 7bfbcdb3cf69..f5c8dba6ea35 100644 --- a/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.yml +++ b/cassettes/features/v2/agentless_scanning/Create-GCP-scan-options-returns-Agentless-scan-options-enabled-successfully-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Thu, 23 Oct 2025 22:21:55 GMT +- recorded_at: Fri, 17 Jul 2026 06:38:47 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"vuln_containers_os":true,"vuln_host_os":true},"id":"new-project","type":"gcp_scan_options"}}' + string: '{"data":{"attributes":{"cloud_function":true,"vuln_containers_os":true,"vuln_host_os":true},"id":"new-project","type":"gcp_scan_options"}}' headers: Accept: - application/json @@ -14,14 +14,14 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"new-project","type":"gcp_scan_options","attributes":{"vuln_containers_os":true,"vuln_host_os":true}}}' + string: '{"data":{"id":"new-project","type":"gcp_scan_options","attributes":{"cloud_function":true,"compliance_host":false,"vuln_containers_os":true,"vuln_host_os":true}}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Thu, 23 Oct 2025 22:21:55 GMT +- recorded_at: Fri, 17 Jul 2026 06:38:47 GMT request: body: null headers: diff --git a/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.frozen b/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.frozen index e13f833231a9..eb1b85a19f1f 100644 --- a/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.frozen +++ b/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.frozen @@ -1 +1 @@ -2025-10-23T22:22:02.253Z \ No newline at end of file +2026-07-17T06:38:47.452Z \ No newline at end of file diff --git a/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.yml b/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.yml index 9a2a9c2cdf9c..be7bf3f077f6 100644 --- a/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.yml +++ b/cassettes/features/v2/agentless_scanning/Update-GCP-scan-options-returns-OK-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Thu, 23 Oct 2025 22:22:02 GMT +- recorded_at: Fri, 17 Jul 2026 06:38:47 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"vuln_containers_os":false},"id":"api-spec-test","type":"gcp_scan_options"}}' + string: '{"data":{"attributes":{"cloud_function":true,"vuln_containers_os":false},"id":"api-spec-test","type":"gcp_scan_options"}}' headers: Accept: - application/json @@ -14,7 +14,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"api-spec-test","type":"gcp_scan_options","attributes":{"vuln_containers_os":false,"vuln_host_os":true}}}' + string: '{"data":{"id":"api-spec-test","type":"gcp_scan_options","attributes":{"cloud_function":true,"compliance_host":false,"vuln_containers_os":false,"vuln_host_os":true}}}' headers: Content-Type: - application/vnd.api+json diff --git a/examples/v2/agentless-scanning/CreateAzureScanOptions.rb b/examples/v2/agentless-scanning/CreateAzureScanOptions.rb index 2918e1b78576..67f629a26688 100644 --- a/examples/v2/agentless-scanning/CreateAzureScanOptions.rb +++ b/examples/v2/agentless-scanning/CreateAzureScanOptions.rb @@ -6,6 +6,7 @@ body = DatadogAPIClient::V2::AzureScanOptions.new({ data: DatadogAPIClient::V2::AzureScanOptionsData.new({ attributes: DatadogAPIClient::V2::AzureScanOptionsDataAttributes.new({ + function: true, vuln_containers_os: true, vuln_host_os: true, }), diff --git a/examples/v2/agentless-scanning/CreateGcpScanOptions.rb b/examples/v2/agentless-scanning/CreateGcpScanOptions.rb index 63eaa6352350..9cec6e3fca07 100644 --- a/examples/v2/agentless-scanning/CreateGcpScanOptions.rb +++ b/examples/v2/agentless-scanning/CreateGcpScanOptions.rb @@ -8,6 +8,7 @@ id: "new-project", type: DatadogAPIClient::V2::GcpScanOptionsDataType::GCP_SCAN_OPTIONS, attributes: DatadogAPIClient::V2::GcpScanOptionsDataAttributes.new({ + cloud_function: true, vuln_host_os: true, vuln_containers_os: true, }), diff --git a/examples/v2/agentless-scanning/UpdateGcpScanOptions.rb b/examples/v2/agentless-scanning/UpdateGcpScanOptions.rb index cbfa77cdfe7d..e3dccec23d9b 100644 --- a/examples/v2/agentless-scanning/UpdateGcpScanOptions.rb +++ b/examples/v2/agentless-scanning/UpdateGcpScanOptions.rb @@ -8,6 +8,7 @@ id: "api-spec-test", type: DatadogAPIClient::V2::GcpScanOptionsInputUpdateDataType::GCP_SCAN_OPTIONS, attributes: DatadogAPIClient::V2::GcpScanOptionsInputUpdateDataAttributes.new({ + cloud_function: true, vuln_containers_os: false, }), }), diff --git a/features/v2/agentless_scanning.feature b/features/v2/agentless_scanning.feature index bbbf5b71f9f5..3b1344cb4ac8 100644 --- a/features/v2/agentless_scanning.feature +++ b/features/v2/agentless_scanning.feature @@ -52,16 +52,18 @@ Feature: Agentless Scanning @skip-validation @team:DataDog/k9-agentless Scenario: Create Azure scan options returns "Created" response Given new "CreateAzureScanOptions" request - And body with value {"data": {"attributes": {"vuln_containers_os": true, "vuln_host_os": true}, "id": "12345678-90ab-cdef-1234-567890abcdef", "type": "azure_scan_options"}} + And body with value {"data": {"attributes": {"function": true, "vuln_containers_os": true, "vuln_host_os": true}, "id": "12345678-90ab-cdef-1234-567890abcdef", "type": "azure_scan_options"}} When the request is sent Then the response status is 201 Created + And the response "data.attributes.function" is equal to true @team:DataDog/k9-agentless Scenario: Create GCP scan options returns "Agentless scan options enabled successfully." response Given new "CreateGcpScanOptions" request - And body with value {"data": {"id": "new-project", "type": "gcp_scan_options", "attributes": {"vuln_host_os": true, "vuln_containers_os": true}}} + And body with value {"data": {"id": "new-project", "type": "gcp_scan_options", "attributes": {"cloud_function": true, "vuln_host_os": true, "vuln_containers_os": true}}} When the request is sent Then the response status is 201 Created + And the response "data.attributes.cloud_function" is equal to true @team:DataDog/k9-agentless Scenario: Create GCP scan options returns "Bad Request" response @@ -301,9 +303,10 @@ Feature: Agentless Scanning Scenario: Update GCP scan options returns "OK" response Given new "UpdateGcpScanOptions" request And request contains "project_id" parameter with value "api-spec-test" - And body with value {"data": {"id": "api-spec-test", "type": "gcp_scan_options", "attributes": {"vuln_containers_os": false}}} + And body with value {"data": {"id": "api-spec-test", "type": "gcp_scan_options", "attributes": {"cloud_function": true, "vuln_containers_os": false}}} When the request is sent Then the response status is 200 OK And the response "data.id" is equal to "api-spec-test" And the response "data.attributes.vuln_host_os" is equal to true And the response "data.attributes.vuln_containers_os" is equal to false + And the response "data.attributes.cloud_function" is equal to true diff --git a/lib/datadog_api_client/v2/models/azure_scan_options_data_attributes.rb b/lib/datadog_api_client/v2/models/azure_scan_options_data_attributes.rb index fad1b05bf4df..e295ad6f8bb9 100644 --- a/lib/datadog_api_client/v2/models/azure_scan_options_data_attributes.rb +++ b/lib/datadog_api_client/v2/models/azure_scan_options_data_attributes.rb @@ -24,6 +24,9 @@ class AzureScanOptionsDataAttributes # Indicates whether host compliance scanning is enabled. attr_accessor :compliance_host + # Indicates if scanning of Azure Functions is enabled. + attr_accessor :function + # Indicates if scanning for vulnerabilities in containers is enabled. attr_accessor :vuln_containers_os @@ -37,6 +40,7 @@ class AzureScanOptionsDataAttributes def self.attribute_map { :'compliance_host' => :'compliance_host', + :'function' => :'function', :'vuln_containers_os' => :'vuln_containers_os', :'vuln_host_os' => :'vuln_host_os' } @@ -47,6 +51,7 @@ def self.attribute_map def self.openapi_types { :'compliance_host' => :'Boolean', + :'function' => :'Boolean', :'vuln_containers_os' => :'Boolean', :'vuln_host_os' => :'Boolean' } @@ -74,6 +79,10 @@ def initialize(attributes = {}) self.compliance_host = attributes[:'compliance_host'] end + if attributes.key?(:'function') + self.function = attributes[:'function'] + end + if attributes.key?(:'vuln_containers_os') self.vuln_containers_os = attributes[:'vuln_containers_os'] end @@ -110,6 +119,7 @@ def ==(o) return true if self.equal?(o) self.class == o.class && compliance_host == o.compliance_host && + function == o.function && vuln_containers_os == o.vuln_containers_os && vuln_host_os == o.vuln_host_os && additional_properties == o.additional_properties @@ -119,7 +129,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [compliance_host, vuln_containers_os, vuln_host_os, additional_properties].hash + [compliance_host, function, vuln_containers_os, vuln_host_os, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data_attributes.rb b/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data_attributes.rb index 5148143e5f80..aa456a144553 100644 --- a/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data_attributes.rb +++ b/lib/datadog_api_client/v2/models/azure_scan_options_input_update_data_attributes.rb @@ -24,6 +24,9 @@ class AzureScanOptionsInputUpdateDataAttributes # Indicates whether host compliance scanning is enabled. attr_accessor :compliance_host + # Indicates if scanning of Azure Functions is enabled. + attr_accessor :function + # Indicates if scanning for vulnerabilities in containers is enabled. attr_accessor :vuln_containers_os @@ -37,6 +40,7 @@ class AzureScanOptionsInputUpdateDataAttributes def self.attribute_map { :'compliance_host' => :'compliance_host', + :'function' => :'function', :'vuln_containers_os' => :'vuln_containers_os', :'vuln_host_os' => :'vuln_host_os' } @@ -47,6 +51,7 @@ def self.attribute_map def self.openapi_types { :'compliance_host' => :'Boolean', + :'function' => :'Boolean', :'vuln_containers_os' => :'Boolean', :'vuln_host_os' => :'Boolean' } @@ -74,6 +79,10 @@ def initialize(attributes = {}) self.compliance_host = attributes[:'compliance_host'] end + if attributes.key?(:'function') + self.function = attributes[:'function'] + end + if attributes.key?(:'vuln_containers_os') self.vuln_containers_os = attributes[:'vuln_containers_os'] end @@ -110,6 +119,7 @@ def ==(o) return true if self.equal?(o) self.class == o.class && compliance_host == o.compliance_host && + function == o.function && vuln_containers_os == o.vuln_containers_os && vuln_host_os == o.vuln_host_os && additional_properties == o.additional_properties @@ -119,7 +129,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [compliance_host, vuln_containers_os, vuln_host_os, additional_properties].hash + [compliance_host, function, vuln_containers_os, vuln_host_os, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/gcp_scan_options_data_attributes.rb b/lib/datadog_api_client/v2/models/gcp_scan_options_data_attributes.rb index e5a65e3eadf3..e4707f123fe0 100644 --- a/lib/datadog_api_client/v2/models/gcp_scan_options_data_attributes.rb +++ b/lib/datadog_api_client/v2/models/gcp_scan_options_data_attributes.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class GcpScanOptionsDataAttributes include BaseGenericModel + # Indicates if scanning of Cloud Functions is enabled. + attr_accessor :cloud_function + # Indicates whether host compliance scanning is enabled. attr_accessor :compliance_host @@ -36,6 +39,7 @@ class GcpScanOptionsDataAttributes # @!visibility private def self.attribute_map { + :'cloud_function' => :'cloud_function', :'compliance_host' => :'compliance_host', :'vuln_containers_os' => :'vuln_containers_os', :'vuln_host_os' => :'vuln_host_os' @@ -46,6 +50,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'cloud_function' => :'Boolean', :'compliance_host' => :'Boolean', :'vuln_containers_os' => :'Boolean', :'vuln_host_os' => :'Boolean' @@ -70,6 +75,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'cloud_function') + self.cloud_function = attributes[:'cloud_function'] + end + if attributes.key?(:'compliance_host') self.compliance_host = attributes[:'compliance_host'] end @@ -109,6 +118,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + cloud_function == o.cloud_function && compliance_host == o.compliance_host && vuln_containers_os == o.vuln_containers_os && vuln_host_os == o.vuln_host_os && @@ -119,7 +129,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [compliance_host, vuln_containers_os, vuln_host_os, additional_properties].hash + [cloud_function, compliance_host, vuln_containers_os, vuln_host_os, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data_attributes.rb b/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data_attributes.rb index 8a47b9f4bc37..0277511bfc11 100644 --- a/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data_attributes.rb +++ b/lib/datadog_api_client/v2/models/gcp_scan_options_input_update_data_attributes.rb @@ -21,6 +21,9 @@ module DatadogAPIClient::V2 class GcpScanOptionsInputUpdateDataAttributes include BaseGenericModel + # Indicates if scanning of Cloud Functions is enabled. + attr_accessor :cloud_function + # Indicates whether host compliance scanning is enabled. attr_accessor :compliance_host @@ -36,6 +39,7 @@ class GcpScanOptionsInputUpdateDataAttributes # @!visibility private def self.attribute_map { + :'cloud_function' => :'cloud_function', :'compliance_host' => :'compliance_host', :'vuln_containers_os' => :'vuln_containers_os', :'vuln_host_os' => :'vuln_host_os' @@ -46,6 +50,7 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'cloud_function' => :'Boolean', :'compliance_host' => :'Boolean', :'vuln_containers_os' => :'Boolean', :'vuln_host_os' => :'Boolean' @@ -70,6 +75,10 @@ def initialize(attributes = {}) end } + if attributes.key?(:'cloud_function') + self.cloud_function = attributes[:'cloud_function'] + end + if attributes.key?(:'compliance_host') self.compliance_host = attributes[:'compliance_host'] end @@ -109,6 +118,7 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + cloud_function == o.cloud_function && compliance_host == o.compliance_host && vuln_containers_os == o.vuln_containers_os && vuln_host_os == o.vuln_host_os && @@ -119,7 +129,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [compliance_host, vuln_containers_os, vuln_host_os, additional_properties].hash + [cloud_function, compliance_host, vuln_containers_os, vuln_host_os, additional_properties].hash end end end