From 18669e3dc82c561116b7b0d77af91a6c95133bba Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 27 Feb 2025 08:52:55 +0000 Subject: [PATCH] Regenerate client from commit 3c01f4ae of spec repo --- .apigentools-info | 8 ++-- .generator/schemas/v2/openapi.yaml | 17 ++++++- .../ListVulnerabilities.java | 1 + .../ListVulnerableAssets.java | 1 + .../com/datadog/api/client/ApiClient.java | 2 + .../client/v2/api/SecurityMonitoringApi.java | 48 ++++++++++++++++--- .../client/v2/api/security_monitoring.feature | 20 +++++--- 7 files changed, 79 insertions(+), 18 deletions(-) diff --git a/.apigentools-info b/.apigentools-info index c864ede99da..5b78443a2e8 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2025-02-26 17:41:41.300831", - "spec_repo_commit": "e04872fb" + "regenerated": "2025-02-27 08:51:00.000445", + "spec_repo_commit": "3c01f4ae" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2025-02-26 17:41:41.315813", - "spec_repo_commit": "e04872fb" + "regenerated": "2025-02-27 08:51:00.016123", + "spec_repo_commit": "3c01f4ae" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index faa8d0f140e..e078fc79453 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -32353,6 +32353,9 @@ components: apm_service_catalog_read: View service catalog and service definitions. apm_service_catalog_write: Add, modify, and delete service catalog definitions when those definitions are maintained by Datadog. + appsec_vm_read: View infrastructure, application code, and library vulnerabilities. + This does not restrict API or inventory SQL access to the vulnerability + data source. cases_read: View Cases. cases_write: Create and update cases. ci_visibility_pipelines_write: Create CI Visibility pipeline spans using @@ -45204,9 +45207,14 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] + - AuthZ: + - appsec_vm_read summary: List vulnerable assets tags: - Security Monitoring + x-unstable: '**Note**: This endpoint is a private preview. + + If you are interested in accessing this API, [fill out this form](https://forms.gle/kMYC1sDr6WDUBDsx9).' /api/v2/security/cloud_workload/policy/download: get: description: 'The download endpoint generates a Cloud Workload Security policy @@ -45296,12 +45304,14 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] + - AuthZ: + - appsec_vm_read summary: Get SBOM tags: - Security Monitoring x-unstable: '**Note**: This endpoint is a private preview. - If you are interested in accessing this API, please [fill out this form](https://forms.gle/kMYC1sDr6WDUBDsx9).' + If you are interested in accessing this API, [fill out this form](https://forms.gle/kMYC1sDr6WDUBDsx9).' /api/v2/security/signals/notification_rules: get: description: Returns the list of notification rules for security signals. @@ -45857,9 +45867,14 @@ paths: security: - apiKeyAuth: [] appKeyAuth: [] + - AuthZ: + - appsec_vm_read summary: List vulnerabilities tags: - Security Monitoring + x-unstable: '**Note**: This endpoint is a private preview. + + If you are interested in accessing this API, [fill out this form](https://forms.gle/kMYC1sDr6WDUBDsx9).' /api/v2/security/vulnerabilities/notification_rules: get: description: Returns the list of notification rules for security vulnerabilities. diff --git a/examples/v2/security-monitoring/ListVulnerabilities.java b/examples/v2/security-monitoring/ListVulnerabilities.java index 465482978ee..3612444c6b6 100644 --- a/examples/v2/security-monitoring/ListVulnerabilities.java +++ b/examples/v2/security-monitoring/ListVulnerabilities.java @@ -12,6 +12,7 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listVulnerabilities", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); try { diff --git a/examples/v2/security-monitoring/ListVulnerableAssets.java b/examples/v2/security-monitoring/ListVulnerableAssets.java index 57b537dbdee..284cbfec25f 100644 --- a/examples/v2/security-monitoring/ListVulnerableAssets.java +++ b/examples/v2/security-monitoring/ListVulnerableAssets.java @@ -10,6 +10,7 @@ public class Example { public static void main(String[] args) { ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listVulnerableAssets", true); SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); try { diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 4394e6b7e5b..a88de2aff2f 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -425,6 +425,8 @@ public class ApiClient { put("v2.getSBOM", false); put("v2.listFindings", false); put("v2.listHistoricalJobs", false); + put("v2.listVulnerabilities", false); + put("v2.listVulnerableAssets", false); put("v2.muteFindings", false); put("v2.runHistoricalJob", false); put("v2.createScorecardOutcomesBatch", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java index 33c158ad07f..60eede6b955 100644 --- a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java @@ -3501,7 +3501,7 @@ public ApiResponse getSBOMWithHttpInfo( localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"AuthZ", "apiKeyAuth", "appKeyAuth"}); return apiClient.invokeAPI( "GET", builder, @@ -3577,7 +3577,7 @@ public CompletableFuture> getSBOMWithHttpInfoAsync( localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"AuthZ", "apiKeyAuth", "appKeyAuth"}); } catch (ApiException ex) { CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); @@ -6821,6 +6821,13 @@ public CompletableFuture listVulnerabilitiesAsync( */ public ApiResponse listVulnerabilitiesWithHttpInfo( ListVulnerabilitiesOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listVulnerabilities"; + 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; String pageToken = parameters.pageToken; Long pageNumber = parameters.pageNumber; @@ -6969,7 +6976,7 @@ public ApiResponse listVulnerabilitiesWithHttpInfo( localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"AuthZ", "apiKeyAuth", "appKeyAuth"}); return apiClient.invokeAPI( "GET", builder, @@ -6991,6 +6998,17 @@ public ApiResponse listVulnerabilitiesWithHttpInfo( */ public CompletableFuture> listVulnerabilitiesWithHttpInfoAsync(ListVulnerabilitiesOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listVulnerabilities"; + 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; String pageToken = parameters.pageToken; Long pageNumber = parameters.pageNumber; @@ -7141,7 +7159,7 @@ public ApiResponse listVulnerabilitiesWithHttpInfo( localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"AuthZ", "apiKeyAuth", "appKeyAuth"}); } catch (ApiException ex) { CompletableFuture> result = new CompletableFuture<>(); @@ -7461,6 +7479,13 @@ public CompletableFuture listVulnerableAssetsAsync */ public ApiResponse listVulnerableAssetsWithHttpInfo( ListVulnerableAssetsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listVulnerableAssets"; + 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; String pageToken = parameters.pageToken; Long pageNumber = parameters.pageNumber; @@ -7524,7 +7549,7 @@ public ApiResponse listVulnerableAssetsWithHttpInf localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"AuthZ", "apiKeyAuth", "appKeyAuth"}); return apiClient.invokeAPI( "GET", builder, @@ -7546,6 +7571,17 @@ public ApiResponse listVulnerableAssetsWithHttpInf */ public CompletableFuture> listVulnerableAssetsWithHttpInfoAsync(ListVulnerableAssetsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listVulnerableAssets"; + 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; String pageToken = parameters.pageToken; Long pageNumber = parameters.pageNumber; @@ -7611,7 +7647,7 @@ public ApiResponse listVulnerableAssetsWithHttpInf localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"AuthZ", "apiKeyAuth", "appKeyAuth"}); } catch (ApiException ex) { CompletableFuture> result = new CompletableFuture<>(); diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index f2533fa7a5c..f30d22b3aa1 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature @@ -473,7 +473,7 @@ Feature: Security Monitoring When the request is sent Then the response status is 404 Not found: asset not found - @team:DataDog/asm-vm + @skip @team:DataDog/asm-vm Scenario: Get SBOM returns "OK" response Given operation "GetSBOM" enabled And new "GetSBOM" request @@ -830,13 +830,15 @@ Feature: Security Monitoring @generated @skip @team:DataDog/asm-vm Scenario: List vulnerabilities returns "Bad request: The server cannot process the request due to invalid syntax in the request." response - Given new "ListVulnerabilities" request + Given operation "ListVulnerabilities" enabled + And new "ListVulnerabilities" request When the request is sent Then the response status is 400 Bad request: The server cannot process the request due to invalid syntax in the request. @team:DataDog/asm-vm Scenario: List vulnerabilities returns "Not found: There is no request associated with the provided token." response - Given new "ListVulnerabilities" request + Given operation "ListVulnerabilities" enabled + And new "ListVulnerabilities" request And request contains "page[token]" parameter with value "unknown" And request contains "page[number]" parameter with value 1 When the request is sent @@ -844,7 +846,8 @@ Feature: Security Monitoring @team:DataDog/asm-vm Scenario: List vulnerabilities returns "OK" response - Given new "ListVulnerabilities" request + Given operation "ListVulnerabilities" enabled + And new "ListVulnerabilities" request And request contains "filter[cvss.base.severity]" parameter with value "High" And request contains "filter[asset.type]" parameter with value "Service" And request contains "filter[tool]" parameter with value "Infra" @@ -853,13 +856,15 @@ Feature: Security Monitoring @generated @skip @team:DataDog/asm-vm Scenario: List vulnerable assets returns "Bad request: The server cannot process the request due to invalid syntax in the request." response - Given new "ListVulnerableAssets" request + Given operation "ListVulnerableAssets" enabled + And new "ListVulnerableAssets" request When the request is sent Then the response status is 400 Bad request: The server cannot process the request due to invalid syntax in the request. @team:DataDog/asm-vm Scenario: List vulnerable assets returns "Not found: There is no request associated with the provided token." response - Given new "ListVulnerableAssets" request + Given operation "ListVulnerableAssets" enabled + And new "ListVulnerableAssets" request And request contains "page[token]" parameter with value "unknown" And request contains "page[number]" parameter with value 1 When the request is sent @@ -867,7 +872,8 @@ Feature: Security Monitoring @team:DataDog/asm-vm Scenario: List vulnerable assets returns "OK" response - Given new "ListVulnerableAssets" request + Given operation "ListVulnerableAssets" enabled + And new "ListVulnerableAssets" request And request contains "filter[type]" parameter with value "Host" And request contains "filter[repository_url]" parameter with value "github.com/datadog/dd-go" And request contains "filter[risks.in_production]" parameter with value true