diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 3661bf3fc2f..6fb83718399 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -87258,6 +87258,38 @@ components: x-enum-varnames: - DONE - TIMEOUT + SecurityMonitoringAzureAppRegistration: + description: An Azure App Registration discovered for the organization. + properties: + client_id: + description: The client ID of the App Registration. + example: 66666666-7777-8888-9999-000000000000 + type: string + error_count: + description: The number of errors encountered while crawling resources for this App Registration. + example: 0 + format: int64 + type: integer + resource_collection_enabled: + description: Whether resource collection is enabled for this App Registration. + example: true + type: boolean + subscription_count: + description: The number of Azure subscriptions associated with this App Registration. + example: 3 + format: int64 + type: integer + tenant_id: + description: The Azure tenant ID of the App Registration. + example: 11111111-2222-3333-4444-555555555555 + type: string + required: + - tenant_id + - client_id + - resource_collection_enabled + - subscription_count + - error_count + type: object SecurityMonitoringContentPackActivation: description: The activation status of a content pack. enum: @@ -88153,6 +88185,68 @@ components: (for example, `siem_entity_identity` for identities). Defaults to `entity` when the kind is unknown. example: siem_entity_identity type: string + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes: + description: The attributes of the Entra ID Azure App Registration prerequisites. + properties: + azure_app_registrations: + description: The Azure App Registrations discovered for the organization. + items: + $ref: "#/components/schemas/SecurityMonitoringAzureAppRegistration" + type: array + has_valid_prerequisite: + description: Whether at least one Azure App Registration has resource collection enabled. + example: true + type: boolean + integration_id: + description: The ID of the Entra ID integration configuration, if one exists. + example: 11111111-2222-3333-4444-555555555555 + type: string + is_enabled: + description: Whether the Entra ID integration configuration is enabled, if one exists. + example: true + type: boolean + subscribed_at: + description: The time at which the Entra ID integration configuration was created, if one exists. + example: "2026-05-01T12:00:00Z" + format: date-time + type: string + required: + - azure_app_registrations + - has_valid_prerequisite + type: object + SecurityMonitoringEntraIdAzureAppRegistrationsData: + description: The Azure App Registration prerequisites for the Entra ID integration. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsAttributes" + id: + description: The ID of the organization the Azure App Registrations belong to. + example: "123456" + type: string + type: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsResourceType" + required: + - id + - type + - attributes + type: object + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType: + default: entra_id_azure_app_registrations + description: The type of the resource. The value should always be `entra_id_azure_app_registrations`. + enum: + - entra_id_azure_app_registrations + example: entra_id_azure_app_registrations + type: string + x-enum-varnames: + - ENTRA_ID_AZURE_APP_REGISTRATIONS + SecurityMonitoringEntraIdAzureAppRegistrationsResponse: + description: Response containing the Azure App Registration prerequisites for the Entra ID integration. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsData" + required: + - data + type: object SecurityMonitoringFilter: description: The rule's suppression filter. properties: @@ -88171,6 +88265,43 @@ components: x-enum-varnames: - REQUIRE - SUPPRESS + SecurityMonitoringIntegrationActivateAttributes: + description: Overrides applied when activating the integration. All fields are optional. + properties: + domain: + description: The domain associated with the external entity source. + example: default + type: string + name: + description: The display name for the entity context sync configuration. + example: My Entra ID Integration + type: string + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + type: object + SecurityMonitoringIntegrationActivateData: + description: The configuration overrides for the integration to activate. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateResourceType" + type: object + SecurityMonitoringIntegrationActivateRequest: + description: Request body to activate an entity context sync integration for a source type that does not require secrets. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateData" + type: object + SecurityMonitoringIntegrationActivateResourceType: + default: activate_entra_id_request + description: The type of the resource. The value should always be `activate_entra_id_request`. + enum: + - activate_entra_id_request + example: activate_entra_id_request + type: string + x-enum-varnames: + - ACTIVATE_ENTRA_ID_REQUEST SecurityMonitoringIntegrationConfigAttributes: description: The attributes of an entity context sync configuration as returned by the API. properties: @@ -88228,7 +88359,6 @@ components: - integration_type - domain - name - - secrets type: object SecurityMonitoringIntegrationConfigCreateData: description: The entity context sync configuration to create. @@ -88284,7 +88414,9 @@ components: type: object SecurityMonitoringIntegrationConfigSecrets: additionalProperties: {} - description: The secrets used to authenticate against the external entity source. The accepted keys depend on the source type (for example, `admin_email` for Google Workspace). + description: |- + The secrets used to authenticate against the external entity source. The accepted keys depend on the source type + (for example, `admin_email` for Google Workspace). Not required for source types that do not use secrets (for example, `ENTRA_ID`). example: admin_email: test@example.com type: object @@ -88372,7 +88504,6 @@ components: required: - integration_type - domain - - secrets type: object SecurityMonitoringIntegrationCredentialsValidateData: description: The credentials to validate. @@ -178092,6 +178223,54 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/configuration/integration_config/entra_id/azure_app_registrations: + get: + description: |- + Get the Azure App Registrations discovered for the organization and whether at least one of them has + resource collection enabled, which is a prerequisite for activating the Entra ID entity context sync integration. + operationId: GetEntraIdAzureAppRegistrations + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + azure_app_registrations: + - client_id: 66666666-7777-8888-9999-000000000000 + error_count: 0 + resource_collection_enabled: true + subscription_count: 3 + tenant_id: 11111111-2222-3333-4444-555555555555 + has_valid_prerequisite: true + integration_id: 11111111-2222-3333-4444-555555555555 + is_enabled: true + subscribed_at: "2026-05-01T12:00:00Z" + id: "123456" + type: entra_id_azure_app_registrations + schema: + $ref: "#/components/schemas/SecurityMonitoringEntraIdAzureAppRegistrationsResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - integrations_read + summary: Get Entra ID Azure App Registration prerequisites + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security_monitoring/configuration/integration_config/validate: post: description: |- @@ -178317,6 +178496,132 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/configuration/integration_config/{integration_type}/activate: + post: + description: |- + Activate an entity context sync integration for a source type that does not require manually + supplied credentials (for example, Entra ID). If an integration of this type already exists, + it is returned (re-enabling it first if it was disabled) instead of creating a duplicate. + operationId: ActivateIntegration + parameters: + - description: The integration type to activate (for example, `entra_id`). + in: path + name: integration_type + required: true + schema: + example: entra_id + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + name: My Entra ID Integration + type: activate_entra_id_request + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationActivateRequest" + description: Optional configuration overrides for the integration to activate. + required: false + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2026-05-01T12:00:00Z" + domain: default + enabled: true + integration_type: ENTRA_ID + modified_at: "2026-05-01T12:00:00Z" + name: My Entra ID Integration + state: valid + id: 11111111-2222-3333-4444-555555555555 + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - manage_integrations + summary: Activate an entity context sync integration + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/configuration/integration_config/{integration_type}/deactivate: + post: + description: Deactivate all active entity context sync integrations of the given source type (for example, Entra ID). + operationId: DeactivateIntegration + parameters: + - description: The integration type to deactivate (for example, `entra_id`). + in: path + name: integration_type + required: true + schema: + example: entra_id + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2026-05-01T12:00:00Z" + domain: default + enabled: false + integration_type: ENTRA_ID + modified_at: "2026-05-08T12:00:00Z" + name: My Entra ID Integration + state: valid + id: 11111111-2222-3333-4444-555555555555 + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - manage_integrations + summary: Deactivate an entity context sync integration + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security_monitoring/configuration/notification_rules/send_notification_preview: post: description: Send a notification preview to test that a notification rule's targets are properly configured. diff --git a/examples/v2/security-monitoring/ActivateIntegration.java b/examples/v2/security-monitoring/ActivateIntegration.java new file mode 100644 index 00000000000..1402f159dda --- /dev/null +++ b/examples/v2/security-monitoring/ActivateIntegration.java @@ -0,0 +1,46 @@ +// Activate an entity context sync integration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.api.SecurityMonitoringApi.ActivateIntegrationOptionalParameters; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationActivateAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationActivateData; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationActivateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationActivateResourceType; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; +import java.util.Map; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.activateIntegration", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringIntegrationActivateRequest body = + new SecurityMonitoringIntegrationActivateRequest() + .data( + new SecurityMonitoringIntegrationActivateData() + .attributes( + new SecurityMonitoringIntegrationActivateAttributes() + .domain("default") + .name("My Entra ID Integration") + .settings(Map.ofEntries(Map.entry("setting1", "value1")))) + .type( + SecurityMonitoringIntegrationActivateResourceType + .ACTIVATE_ENTRA_ID_REQUEST)); + + try { + SecurityMonitoringIntegrationConfigResponse result = + apiInstance.activateIntegration( + "entra_id", new ActivateIntegrationOptionalParameters().body(body)); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#activateIntegration"); + 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/security-monitoring/DeactivateIntegration.java b/examples/v2/security-monitoring/DeactivateIntegration.java new file mode 100644 index 00000000000..0f5872abaeb --- /dev/null +++ b/examples/v2/security-monitoring/DeactivateIntegration.java @@ -0,0 +1,26 @@ +// Deactivate an entity context sync integration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deactivateIntegration", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringIntegrationConfigResponse result = + apiInstance.deactivateIntegration("entra_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#deactivateIntegration"); + 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/security-monitoring/GetEntraIdAzureAppRegistrations.java b/examples/v2/security-monitoring/GetEntraIdAzureAppRegistrations.java new file mode 100644 index 00000000000..3a3c8fd7ea3 --- /dev/null +++ b/examples/v2/security-monitoring/GetEntraIdAzureAppRegistrations.java @@ -0,0 +1,27 @@ +// Get Entra ID Azure App Registration prerequisites returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringEntraIdAzureAppRegistrationsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getEntraIdAzureAppRegistrations", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringEntraIdAzureAppRegistrationsResponse result = + apiInstance.getEntraIdAzureAppRegistrations(); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#getEntraIdAzureAppRegistrations"); + 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 686d0d8f058..724a1519b8a 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -909,6 +909,7 @@ public class ApiClient { put("v2.getAWSCloudAuthPersonaMapping", false); put("v2.listAWSCloudAuthPersonaMappings", false); put("v2.activateContentPack", false); + put("v2.activateIntegration", false); put("v2.attachLinearIssue", false); put("v2.batchGetSecurityMonitoringDatasetDependencies", false); put("v2.bulkCreateSampleLogGenerationSubscriptions", false); @@ -927,6 +928,7 @@ public class ApiClient { put("v2.createStaticAnalysisAst", false); put("v2.createStaticAnalysisServerAnalysis", false); put("v2.deactivateContentPack", false); + put("v2.deactivateIntegration", false); put("v2.deleteHistoricalJob", false); put("v2.deleteSampleLogGenerationSubscription", false); put("v2.deleteSecurityFindingsAutomationDueDateRule", false); @@ -937,6 +939,7 @@ public class ApiClient { put("v2.exportSecurityMonitoringTerraformResource", false); put("v2.getContentPacksStates", false); put("v2.getEntityContext", false); + put("v2.getEntraIdAzureAppRegistrations", false); put("v2.getFinding", false); put("v2.getHistoricalJob", false); put("v2.getIndicatorOfCompromise", 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 2a8f29c2eb3..60134719da6 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 @@ -111,6 +111,8 @@ import com.datadog.api.client.v2.model.SecurityMonitoringDatasetUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringDatasetVersionHistoryResponse; import com.datadog.api.client.v2.model.SecurityMonitoringDatasetsListResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringEntraIdAzureAppRegistrationsResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationActivateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigCreateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigUpdateRequest; @@ -377,6 +379,235 @@ public CompletableFuture> activateContentPackWithHttpInfoAsync null); } + /** Manage optional parameters to activateIntegration. */ + public static class ActivateIntegrationOptionalParameters { + private SecurityMonitoringIntegrationActivateRequest body; + + /** + * Set body. + * + * @param body Optional configuration overrides for the integration to activate. (optional) + * @return ActivateIntegrationOptionalParameters + */ + public ActivateIntegrationOptionalParameters body( + SecurityMonitoringIntegrationActivateRequest body) { + this.body = body; + return this; + } + } + + /** + * Activate an entity context sync integration. + * + *

See {@link #activateIntegrationWithHttpInfo}. + * + * @param integrationType The integration type to activate (for example, entra_id). + * (required) + * @return SecurityMonitoringIntegrationConfigResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringIntegrationConfigResponse activateIntegration(String integrationType) + throws ApiException { + return activateIntegrationWithHttpInfo( + integrationType, new ActivateIntegrationOptionalParameters()) + .getData(); + } + + /** + * Activate an entity context sync integration. + * + *

See {@link #activateIntegrationWithHttpInfoAsync}. + * + * @param integrationType The integration type to activate (for example, entra_id). + * (required) + * @return CompletableFuture<SecurityMonitoringIntegrationConfigResponse> + */ + public CompletableFuture activateIntegrationAsync( + String integrationType) { + return activateIntegrationWithHttpInfoAsync( + integrationType, new ActivateIntegrationOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Activate an entity context sync integration. + * + *

See {@link #activateIntegrationWithHttpInfo}. + * + * @param integrationType The integration type to activate (for example, entra_id). + * (required) + * @param parameters Optional parameters for the request. + * @return SecurityMonitoringIntegrationConfigResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringIntegrationConfigResponse activateIntegration( + String integrationType, ActivateIntegrationOptionalParameters parameters) + throws ApiException { + return activateIntegrationWithHttpInfo(integrationType, parameters).getData(); + } + + /** + * Activate an entity context sync integration. + * + *

See {@link #activateIntegrationWithHttpInfoAsync}. + * + * @param integrationType The integration type to activate (for example, entra_id). + * (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SecurityMonitoringIntegrationConfigResponse> + */ + public CompletableFuture activateIntegrationAsync( + String integrationType, ActivateIntegrationOptionalParameters parameters) { + return activateIntegrationWithHttpInfoAsync(integrationType, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Activate an entity context sync integration for a source type that does not require manually + * supplied credentials (for example, Entra ID). If an integration of this type already exists, it + * is returned (re-enabling it first if it was disabled) instead of creating a duplicate. + * + * @param integrationType The integration type to activate (for example, entra_id). + * (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<SecurityMonitoringIntegrationConfigResponse> + * @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 -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse activateIntegrationWithHttpInfo( + String integrationType, ActivateIntegrationOptionalParameters parameters) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "activateIntegration"; + 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 = parameters.body; + + // verify the required parameter 'integrationType' is set + if (integrationType == null) { + throw new ApiException( + 400, "Missing the required parameter 'integrationType' when calling activateIntegration"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_type}/activate" + .replaceAll( + "\\{" + "integration_type" + "\\}", + apiClient.escapeString(integrationType.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.activateIntegration", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Activate an entity context sync integration. + * + *

See {@link #activateIntegrationWithHttpInfo}. + * + * @param integrationType The integration type to activate (for example, entra_id). + * (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SecurityMonitoringIntegrationConfigResponse>> + */ + public CompletableFuture> + activateIntegrationWithHttpInfoAsync( + String integrationType, ActivateIntegrationOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "activateIntegration"; + 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 = parameters.body; + + // verify the required parameter 'integrationType' is set + if (integrationType == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'integrationType' when calling activateIntegration")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_type}/activate" + .replaceAll( + "\\{" + "integration_type" + "\\}", + apiClient.escapeString(integrationType.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.activateIntegration", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Attach security findings to a case. * @@ -6260,6 +6491,175 @@ public CompletableFuture> deactivateContentPackWithHttpInfoAsy null); } + /** + * Deactivate an entity context sync integration. + * + *

See {@link #deactivateIntegrationWithHttpInfo}. + * + * @param integrationType The integration type to deactivate (for example, entra_id). + * (required) + * @return SecurityMonitoringIntegrationConfigResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringIntegrationConfigResponse deactivateIntegration(String integrationType) + throws ApiException { + return deactivateIntegrationWithHttpInfo(integrationType).getData(); + } + + /** + * Deactivate an entity context sync integration. + * + *

See {@link #deactivateIntegrationWithHttpInfoAsync}. + * + * @param integrationType The integration type to deactivate (for example, entra_id). + * (required) + * @return CompletableFuture<SecurityMonitoringIntegrationConfigResponse> + */ + public CompletableFuture deactivateIntegrationAsync( + String integrationType) { + return deactivateIntegrationWithHttpInfoAsync(integrationType) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Deactivate all active entity context sync integrations of the given source type (for example, + * Entra ID). + * + * @param integrationType The integration type to deactivate (for example, entra_id). + * (required) + * @return ApiResponse<SecurityMonitoringIntegrationConfigResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse deactivateIntegrationWithHttpInfo( + String integrationType) throws ApiException { + // Check if unstable operation is enabled + String operationId = "deactivateIntegration"; + 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 'integrationType' is set + if (integrationType == null) { + throw new ApiException( + 400, + "Missing the required parameter 'integrationType' when calling deactivateIntegration"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_type}/deactivate" + .replaceAll( + "\\{" + "integration_type" + "\\}", + apiClient.escapeString(integrationType.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deactivateIntegration", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Deactivate an entity context sync integration. + * + *

See {@link #deactivateIntegrationWithHttpInfo}. + * + * @param integrationType The integration type to deactivate (for example, entra_id). + * (required) + * @return CompletableFuture<ApiResponse<SecurityMonitoringIntegrationConfigResponse>> + */ + public CompletableFuture> + deactivateIntegrationWithHttpInfoAsync(String integrationType) { + // Check if unstable operation is enabled + String operationId = "deactivateIntegration"; + 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 'integrationType' is set + if (integrationType == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'integrationType' when calling" + + " deactivateIntegration")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_type}/deactivate" + .replaceAll( + "\\{" + "integration_type" + "\\}", + apiClient.escapeString(integrationType.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deactivateIntegration", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Delete a custom framework. * @@ -10086,6 +10486,143 @@ public CompletableFuture> getEntityContextWit new GenericType() {}); } + /** + * Get Entra ID Azure App Registration prerequisites. + * + *

See {@link #getEntraIdAzureAppRegistrationsWithHttpInfo}. + * + * @return SecurityMonitoringEntraIdAzureAppRegistrationsResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringEntraIdAzureAppRegistrationsResponse getEntraIdAzureAppRegistrations() + throws ApiException { + return getEntraIdAzureAppRegistrationsWithHttpInfo().getData(); + } + + /** + * Get Entra ID Azure App Registration prerequisites. + * + *

See {@link #getEntraIdAzureAppRegistrationsWithHttpInfoAsync}. + * + * @return CompletableFuture<SecurityMonitoringEntraIdAzureAppRegistrationsResponse> + */ + public CompletableFuture + getEntraIdAzureAppRegistrationsAsync() { + return getEntraIdAzureAppRegistrationsWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the Azure App Registrations discovered for the organization and whether at least one of + * them has resource collection enabled, which is a prerequisite for activating the Entra ID + * entity context sync integration. + * + * @return ApiResponse<SecurityMonitoringEntraIdAzureAppRegistrationsResponse> + * @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 + getEntraIdAzureAppRegistrationsWithHttpInfo() throws ApiException { + // Check if unstable operation is enabled + String operationId = "getEntraIdAzureAppRegistrations"; + 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/security_monitoring/configuration/integration_config/entra_id/azure_app_registrations"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getEntraIdAzureAppRegistrations", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get Entra ID Azure App Registration prerequisites. + * + *

See {@link #getEntraIdAzureAppRegistrationsWithHttpInfo}. + * + * @return + * CompletableFuture<ApiResponse<SecurityMonitoringEntraIdAzureAppRegistrationsResponse>> + */ + public CompletableFuture> + getEntraIdAzureAppRegistrationsWithHttpInfoAsync() { + // Check if unstable operation is enabled + String operationId = "getEntraIdAzureAppRegistrations"; + 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/security_monitoring/configuration/integration_config/entra_id/azure_app_registrations"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getEntraIdAzureAppRegistrations", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } 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 getFinding. */ public static class GetFindingOptionalParameters { private Long snapshotTimestamp; diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringAzureAppRegistration.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringAzureAppRegistration.java new file mode 100644 index 00000000000..7eb0351f6b4 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringAzureAppRegistration.java @@ -0,0 +1,274 @@ +/* + * 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; + +/** An Azure App Registration discovered for the organization. */ +@JsonPropertyOrder({ + SecurityMonitoringAzureAppRegistration.JSON_PROPERTY_CLIENT_ID, + SecurityMonitoringAzureAppRegistration.JSON_PROPERTY_ERROR_COUNT, + SecurityMonitoringAzureAppRegistration.JSON_PROPERTY_RESOURCE_COLLECTION_ENABLED, + SecurityMonitoringAzureAppRegistration.JSON_PROPERTY_SUBSCRIPTION_COUNT, + SecurityMonitoringAzureAppRegistration.JSON_PROPERTY_TENANT_ID +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringAzureAppRegistration { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CLIENT_ID = "client_id"; + private String clientId; + + public static final String JSON_PROPERTY_ERROR_COUNT = "error_count"; + private Long errorCount; + + public static final String JSON_PROPERTY_RESOURCE_COLLECTION_ENABLED = + "resource_collection_enabled"; + private Boolean resourceCollectionEnabled; + + public static final String JSON_PROPERTY_SUBSCRIPTION_COUNT = "subscription_count"; + private Long subscriptionCount; + + public static final String JSON_PROPERTY_TENANT_ID = "tenant_id"; + private String tenantId; + + public SecurityMonitoringAzureAppRegistration() {} + + @JsonCreator + public SecurityMonitoringAzureAppRegistration( + @JsonProperty(required = true, value = JSON_PROPERTY_CLIENT_ID) String clientId, + @JsonProperty(required = true, value = JSON_PROPERTY_ERROR_COUNT) Long errorCount, + @JsonProperty(required = true, value = JSON_PROPERTY_RESOURCE_COLLECTION_ENABLED) + Boolean resourceCollectionEnabled, + @JsonProperty(required = true, value = JSON_PROPERTY_SUBSCRIPTION_COUNT) + Long subscriptionCount, + @JsonProperty(required = true, value = JSON_PROPERTY_TENANT_ID) String tenantId) { + this.clientId = clientId; + this.errorCount = errorCount; + this.resourceCollectionEnabled = resourceCollectionEnabled; + this.subscriptionCount = subscriptionCount; + this.tenantId = tenantId; + } + + public SecurityMonitoringAzureAppRegistration clientId(String clientId) { + this.clientId = clientId; + return this; + } + + /** + * The client ID of the App Registration. + * + * @return clientId + */ + @JsonProperty(JSON_PROPERTY_CLIENT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public SecurityMonitoringAzureAppRegistration errorCount(Long errorCount) { + this.errorCount = errorCount; + return this; + } + + /** + * The number of errors encountered while crawling resources for this App Registration. + * + * @return errorCount + */ + @JsonProperty(JSON_PROPERTY_ERROR_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getErrorCount() { + return errorCount; + } + + public void setErrorCount(Long errorCount) { + this.errorCount = errorCount; + } + + public SecurityMonitoringAzureAppRegistration resourceCollectionEnabled( + Boolean resourceCollectionEnabled) { + this.resourceCollectionEnabled = resourceCollectionEnabled; + return this; + } + + /** + * Whether resource collection is enabled for this App Registration. + * + * @return resourceCollectionEnabled + */ + @JsonProperty(JSON_PROPERTY_RESOURCE_COLLECTION_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getResourceCollectionEnabled() { + return resourceCollectionEnabled; + } + + public void setResourceCollectionEnabled(Boolean resourceCollectionEnabled) { + this.resourceCollectionEnabled = resourceCollectionEnabled; + } + + public SecurityMonitoringAzureAppRegistration subscriptionCount(Long subscriptionCount) { + this.subscriptionCount = subscriptionCount; + return this; + } + + /** + * The number of Azure subscriptions associated with this App Registration. + * + * @return subscriptionCount + */ + @JsonProperty(JSON_PROPERTY_SUBSCRIPTION_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getSubscriptionCount() { + return subscriptionCount; + } + + public void setSubscriptionCount(Long subscriptionCount) { + this.subscriptionCount = subscriptionCount; + } + + public SecurityMonitoringAzureAppRegistration tenantId(String tenantId) { + this.tenantId = tenantId; + return this; + } + + /** + * The Azure tenant ID of the App Registration. + * + * @return tenantId + */ + @JsonProperty(JSON_PROPERTY_TENANT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + /** + * 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 SecurityMonitoringAzureAppRegistration + */ + @JsonAnySetter + public SecurityMonitoringAzureAppRegistration 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 SecurityMonitoringAzureAppRegistration object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringAzureAppRegistration securityMonitoringAzureAppRegistration = + (SecurityMonitoringAzureAppRegistration) o; + return Objects.equals(this.clientId, securityMonitoringAzureAppRegistration.clientId) + && Objects.equals(this.errorCount, securityMonitoringAzureAppRegistration.errorCount) + && Objects.equals( + this.resourceCollectionEnabled, + securityMonitoringAzureAppRegistration.resourceCollectionEnabled) + && Objects.equals( + this.subscriptionCount, securityMonitoringAzureAppRegistration.subscriptionCount) + && Objects.equals(this.tenantId, securityMonitoringAzureAppRegistration.tenantId) + && Objects.equals( + this.additionalProperties, securityMonitoringAzureAppRegistration.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + clientId, + errorCount, + resourceCollectionEnabled, + subscriptionCount, + tenantId, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringAzureAppRegistration {\n"); + sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n"); + sb.append(" errorCount: ").append(toIndentedString(errorCount)).append("\n"); + sb.append(" resourceCollectionEnabled: ") + .append(toIndentedString(resourceCollectionEnabled)) + .append("\n"); + sb.append(" subscriptionCount: ").append(toIndentedString(subscriptionCount)).append("\n"); + sb.append(" tenantId: ").append(toIndentedString(tenantId)).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/SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.java new file mode 100644 index 00000000000..d9888568bb6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.java @@ -0,0 +1,301 @@ +/* + * 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.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The attributes of the Entra ID Azure App Registration prerequisites. */ +@JsonPropertyOrder({ + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.JSON_PROPERTY_AZURE_APP_REGISTRATIONS, + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.JSON_PROPERTY_HAS_VALID_PREREQUISITE, + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.JSON_PROPERTY_INTEGRATION_ID, + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.JSON_PROPERTY_IS_ENABLED, + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes.JSON_PROPERTY_SUBSCRIBED_AT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringEntraIdAzureAppRegistrationsAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AZURE_APP_REGISTRATIONS = "azure_app_registrations"; + private List azureAppRegistrations = new ArrayList<>(); + + public static final String JSON_PROPERTY_HAS_VALID_PREREQUISITE = "has_valid_prerequisite"; + private Boolean hasValidPrerequisite; + + public static final String JSON_PROPERTY_INTEGRATION_ID = "integration_id"; + private String integrationId; + + public static final String JSON_PROPERTY_IS_ENABLED = "is_enabled"; + private Boolean isEnabled; + + public static final String JSON_PROPERTY_SUBSCRIBED_AT = "subscribed_at"; + private OffsetDateTime subscribedAt; + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes() {} + + @JsonCreator + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_AZURE_APP_REGISTRATIONS) + List azureAppRegistrations, + @JsonProperty(required = true, value = JSON_PROPERTY_HAS_VALID_PREREQUISITE) + Boolean hasValidPrerequisite) { + this.azureAppRegistrations = azureAppRegistrations; + this.hasValidPrerequisite = hasValidPrerequisite; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes azureAppRegistrations( + List azureAppRegistrations) { + this.azureAppRegistrations = azureAppRegistrations; + for (SecurityMonitoringAzureAppRegistration item : azureAppRegistrations) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes addAzureAppRegistrationsItem( + SecurityMonitoringAzureAppRegistration azureAppRegistrationsItem) { + this.azureAppRegistrations.add(azureAppRegistrationsItem); + this.unparsed |= azureAppRegistrationsItem.unparsed; + return this; + } + + /** + * The Azure App Registrations discovered for the organization. + * + * @return azureAppRegistrations + */ + @JsonProperty(JSON_PROPERTY_AZURE_APP_REGISTRATIONS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getAzureAppRegistrations() { + return azureAppRegistrations; + } + + public void setAzureAppRegistrations( + List azureAppRegistrations) { + this.azureAppRegistrations = azureAppRegistrations; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes hasValidPrerequisite( + Boolean hasValidPrerequisite) { + this.hasValidPrerequisite = hasValidPrerequisite; + return this; + } + + /** + * Whether at least one Azure App Registration has resource collection enabled. + * + * @return hasValidPrerequisite + */ + @JsonProperty(JSON_PROPERTY_HAS_VALID_PREREQUISITE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getHasValidPrerequisite() { + return hasValidPrerequisite; + } + + public void setHasValidPrerequisite(Boolean hasValidPrerequisite) { + this.hasValidPrerequisite = hasValidPrerequisite; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes integrationId( + String integrationId) { + this.integrationId = integrationId; + return this; + } + + /** + * The ID of the Entra ID integration configuration, if one exists. + * + * @return integrationId + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INTEGRATION_ID) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getIntegrationId() { + return integrationId; + } + + public void setIntegrationId(String integrationId) { + this.integrationId = integrationId; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + /** + * Whether the Entra ID integration configuration is enabled, if one exists. + * + * @return isEnabled + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IS_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getIsEnabled() { + return isEnabled; + } + + public void setIsEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes subscribedAt( + OffsetDateTime subscribedAt) { + this.subscribedAt = subscribedAt; + return this; + } + + /** + * The time at which the Entra ID integration configuration was created, if one exists. + * + * @return subscribedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SUBSCRIBED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getSubscribedAt() { + return subscribedAt; + } + + public void setSubscribedAt(OffsetDateTime subscribedAt) { + this.subscribedAt = subscribedAt; + } + + /** + * 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 SecurityMonitoringEntraIdAzureAppRegistrationsAttributes + */ + @JsonAnySetter + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes 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 SecurityMonitoringEntraIdAzureAppRegistrationsAttributes object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes + securityMonitoringEntraIdAzureAppRegistrationsAttributes = + (SecurityMonitoringEntraIdAzureAppRegistrationsAttributes) o; + return Objects.equals( + this.azureAppRegistrations, + securityMonitoringEntraIdAzureAppRegistrationsAttributes.azureAppRegistrations) + && Objects.equals( + this.hasValidPrerequisite, + securityMonitoringEntraIdAzureAppRegistrationsAttributes.hasValidPrerequisite) + && Objects.equals( + this.integrationId, + securityMonitoringEntraIdAzureAppRegistrationsAttributes.integrationId) + && Objects.equals( + this.isEnabled, securityMonitoringEntraIdAzureAppRegistrationsAttributes.isEnabled) + && Objects.equals( + this.subscribedAt, + securityMonitoringEntraIdAzureAppRegistrationsAttributes.subscribedAt) + && Objects.equals( + this.additionalProperties, + securityMonitoringEntraIdAzureAppRegistrationsAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + azureAppRegistrations, + hasValidPrerequisite, + integrationId, + isEnabled, + subscribedAt, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringEntraIdAzureAppRegistrationsAttributes {\n"); + sb.append(" azureAppRegistrations: ") + .append(toIndentedString(azureAppRegistrations)) + .append("\n"); + sb.append(" hasValidPrerequisite: ") + .append(toIndentedString(hasValidPrerequisite)) + .append("\n"); + sb.append(" integrationId: ").append(toIndentedString(integrationId)).append("\n"); + sb.append(" isEnabled: ").append(toIndentedString(isEnabled)).append("\n"); + sb.append(" subscribedAt: ").append(toIndentedString(subscribedAt)).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/SecurityMonitoringEntraIdAzureAppRegistrationsData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsData.java new file mode 100644 index 00000000000..e40853a1494 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsData.java @@ -0,0 +1,222 @@ +/* + * 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 Azure App Registration prerequisites for the Entra ID integration. */ +@JsonPropertyOrder({ + SecurityMonitoringEntraIdAzureAppRegistrationsData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringEntraIdAzureAppRegistrationsData.JSON_PROPERTY_ID, + SecurityMonitoringEntraIdAzureAppRegistrationsData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringEntraIdAzureAppRegistrationsData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringEntraIdAzureAppRegistrationsAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringEntraIdAzureAppRegistrationsResourceType type = + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType.ENTRA_ID_AZURE_APP_REGISTRATIONS; + + public SecurityMonitoringEntraIdAzureAppRegistrationsData() {} + + @JsonCreator + public SecurityMonitoringEntraIdAzureAppRegistrationsData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsData attributes( + SecurityMonitoringEntraIdAzureAppRegistrationsAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes of the Entra ID Azure App Registration prerequisites. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringEntraIdAzureAppRegistrationsAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringEntraIdAzureAppRegistrationsAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsData id(String id) { + this.id = id; + return this; + } + + /** + * The ID of the organization the Azure App Registrations belong to. + * + * @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 SecurityMonitoringEntraIdAzureAppRegistrationsData type( + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be entra_id_azure_app_registrations + * . + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringEntraIdAzureAppRegistrationsResourceType getType() { + return type; + } + + public void setType(SecurityMonitoringEntraIdAzureAppRegistrationsResourceType 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 SecurityMonitoringEntraIdAzureAppRegistrationsData + */ + @JsonAnySetter + public SecurityMonitoringEntraIdAzureAppRegistrationsData 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 SecurityMonitoringEntraIdAzureAppRegistrationsData object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringEntraIdAzureAppRegistrationsData + securityMonitoringEntraIdAzureAppRegistrationsData = + (SecurityMonitoringEntraIdAzureAppRegistrationsData) o; + return Objects.equals( + this.attributes, securityMonitoringEntraIdAzureAppRegistrationsData.attributes) + && Objects.equals(this.id, securityMonitoringEntraIdAzureAppRegistrationsData.id) + && Objects.equals(this.type, securityMonitoringEntraIdAzureAppRegistrationsData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringEntraIdAzureAppRegistrationsData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringEntraIdAzureAppRegistrationsData {\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/SecurityMonitoringEntraIdAzureAppRegistrationsResourceType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsResourceType.java new file mode 100644 index 00000000000..eefb2960957 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsResourceType.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 the resource. The value should always be entra_id_azure_app_registrations + * . + */ +@JsonSerialize( + using = + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType + .SecurityMonitoringEntraIdAzureAppRegistrationsResourceTypeSerializer.class) +public class SecurityMonitoringEntraIdAzureAppRegistrationsResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("entra_id_azure_app_registrations")); + + public static final SecurityMonitoringEntraIdAzureAppRegistrationsResourceType + ENTRA_ID_AZURE_APP_REGISTRATIONS = + new SecurityMonitoringEntraIdAzureAppRegistrationsResourceType( + "entra_id_azure_app_registrations"); + + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringEntraIdAzureAppRegistrationsResourceTypeSerializer + extends StdSerializer { + public SecurityMonitoringEntraIdAzureAppRegistrationsResourceTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringEntraIdAzureAppRegistrationsResourceType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringEntraIdAzureAppRegistrationsResourceType fromValue(String value) { + return new SecurityMonitoringEntraIdAzureAppRegistrationsResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsResponse.java new file mode 100644 index 00000000000..9700580dd20 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringEntraIdAzureAppRegistrationsResponse.java @@ -0,0 +1,155 @@ +/* + * 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; + +/** Response containing the Azure App Registration prerequisites for the Entra ID integration. */ +@JsonPropertyOrder({SecurityMonitoringEntraIdAzureAppRegistrationsResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringEntraIdAzureAppRegistrationsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringEntraIdAzureAppRegistrationsData data; + + public SecurityMonitoringEntraIdAzureAppRegistrationsResponse() {} + + @JsonCreator + public SecurityMonitoringEntraIdAzureAppRegistrationsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringEntraIdAzureAppRegistrationsData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringEntraIdAzureAppRegistrationsResponse data( + SecurityMonitoringEntraIdAzureAppRegistrationsData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The Azure App Registration prerequisites for the Entra ID integration. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringEntraIdAzureAppRegistrationsData getData() { + return data; + } + + public void setData(SecurityMonitoringEntraIdAzureAppRegistrationsData 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 SecurityMonitoringEntraIdAzureAppRegistrationsResponse + */ + @JsonAnySetter + public SecurityMonitoringEntraIdAzureAppRegistrationsResponse 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 SecurityMonitoringEntraIdAzureAppRegistrationsResponse object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringEntraIdAzureAppRegistrationsResponse + securityMonitoringEntraIdAzureAppRegistrationsResponse = + (SecurityMonitoringEntraIdAzureAppRegistrationsResponse) o; + return Objects.equals(this.data, securityMonitoringEntraIdAzureAppRegistrationsResponse.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringEntraIdAzureAppRegistrationsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringEntraIdAzureAppRegistrationsResponse {\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/SecurityMonitoringIntegrationActivateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateAttributes.java new file mode 100644 index 00000000000..93a4803baa9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateAttributes.java @@ -0,0 +1,206 @@ +/* + * 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.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; + +/** Overrides applied when activating the integration. All fields are optional. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationActivateAttributes.JSON_PROPERTY_DOMAIN, + SecurityMonitoringIntegrationActivateAttributes.JSON_PROPERTY_NAME, + SecurityMonitoringIntegrationActivateAttributes.JSON_PROPERTY_SETTINGS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationActivateAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DOMAIN = "domain"; + private String domain; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_SETTINGS = "settings"; + private Map settings = null; + + public SecurityMonitoringIntegrationActivateAttributes domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain associated with the external entity source. + * + * @return domain + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SecurityMonitoringIntegrationActivateAttributes name(String name) { + this.name = name; + return this; + } + + /** + * The display name for the entity context sync configuration. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SecurityMonitoringIntegrationActivateAttributes settings(Map settings) { + this.settings = settings; + return this; + } + + public SecurityMonitoringIntegrationActivateAttributes putSettingsItem( + String key, Object settingsItem) { + if (this.settings == null) { + this.settings = new HashMap<>(); + } + this.settings.put(key, settingsItem); + return this; + } + + /** + * Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the + * source type. + * + * @return settings + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTINGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getSettings() { + return settings; + } + + public void setSettings(Map settings) { + this.settings = settings; + } + + /** + * 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 SecurityMonitoringIntegrationActivateAttributes + */ + @JsonAnySetter + public SecurityMonitoringIntegrationActivateAttributes 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 SecurityMonitoringIntegrationActivateAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationActivateAttributes + securityMonitoringIntegrationActivateAttributes = + (SecurityMonitoringIntegrationActivateAttributes) o; + return Objects.equals(this.domain, securityMonitoringIntegrationActivateAttributes.domain) + && Objects.equals(this.name, securityMonitoringIntegrationActivateAttributes.name) + && Objects.equals(this.settings, securityMonitoringIntegrationActivateAttributes.settings) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationActivateAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(domain, name, settings, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationActivateAttributes {\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" settings: ").append(toIndentedString(settings)).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/SecurityMonitoringIntegrationActivateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateData.java new file mode 100644 index 00000000000..91d128ff65a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateData.java @@ -0,0 +1,175 @@ +/* + * 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.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 configuration overrides for the integration to activate. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationActivateData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringIntegrationActivateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationActivateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringIntegrationActivateAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringIntegrationActivateResourceType type = + SecurityMonitoringIntegrationActivateResourceType.ACTIVATE_ENTRA_ID_REQUEST; + + public SecurityMonitoringIntegrationActivateData attributes( + SecurityMonitoringIntegrationActivateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Overrides applied when activating the integration. All fields are optional. + * + * @return attributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringIntegrationActivateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringIntegrationActivateAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringIntegrationActivateData type( + SecurityMonitoringIntegrationActivateResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be activate_entra_id_request. + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringIntegrationActivateResourceType getType() { + return type; + } + + public void setType(SecurityMonitoringIntegrationActivateResourceType 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 SecurityMonitoringIntegrationActivateData + */ + @JsonAnySetter + public SecurityMonitoringIntegrationActivateData 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 SecurityMonitoringIntegrationActivateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationActivateData securityMonitoringIntegrationActivateData = + (SecurityMonitoringIntegrationActivateData) o; + return Objects.equals(this.attributes, securityMonitoringIntegrationActivateData.attributes) + && Objects.equals(this.type, securityMonitoringIntegrationActivateData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationActivateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationActivateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).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/SecurityMonitoringIntegrationActivateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateRequest.java new file mode 100644 index 00000000000..ec1e0acb0b2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateRequest.java @@ -0,0 +1,144 @@ +/* + * 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.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; + +/** + * Request body to activate an entity context sync integration for a source type that does not + * require secrets. + */ +@JsonPropertyOrder({SecurityMonitoringIntegrationActivateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationActivateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringIntegrationActivateData data; + + public SecurityMonitoringIntegrationActivateRequest data( + SecurityMonitoringIntegrationActivateData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The configuration overrides for the integration to activate. + * + * @return data + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringIntegrationActivateData getData() { + return data; + } + + public void setData(SecurityMonitoringIntegrationActivateData 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 SecurityMonitoringIntegrationActivateRequest + */ + @JsonAnySetter + public SecurityMonitoringIntegrationActivateRequest 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 SecurityMonitoringIntegrationActivateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationActivateRequest securityMonitoringIntegrationActivateRequest = + (SecurityMonitoringIntegrationActivateRequest) o; + return Objects.equals(this.data, securityMonitoringIntegrationActivateRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationActivateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationActivateRequest {\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/SecurityMonitoringIntegrationActivateResourceType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateResourceType.java new file mode 100644 index 00000000000..fb5ef1c9624 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationActivateResourceType.java @@ -0,0 +1,63 @@ +/* + * 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 the resource. The value should always be activate_entra_id_request. */ +@JsonSerialize( + using = + SecurityMonitoringIntegrationActivateResourceType + .SecurityMonitoringIntegrationActivateResourceTypeSerializer.class) +public class SecurityMonitoringIntegrationActivateResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("activate_entra_id_request")); + + public static final SecurityMonitoringIntegrationActivateResourceType ACTIVATE_ENTRA_ID_REQUEST = + new SecurityMonitoringIntegrationActivateResourceType("activate_entra_id_request"); + + SecurityMonitoringIntegrationActivateResourceType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringIntegrationActivateResourceTypeSerializer + extends StdSerializer { + public SecurityMonitoringIntegrationActivateResourceTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringIntegrationActivateResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringIntegrationActivateResourceType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringIntegrationActivateResourceType fromValue(String value) { + return new SecurityMonitoringIntegrationActivateResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java index 3b3afb7df96..4d57d06a57b 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java @@ -39,7 +39,7 @@ public class SecurityMonitoringIntegrationConfigCreateAttributes { private String name; public static final String JSON_PROPERTY_SECRETS = "secrets"; - private Map secrets = new HashMap(); + private Map secrets = null; public static final String JSON_PROPERTY_SETTINGS = "settings"; private Map settings = null; @@ -51,13 +51,11 @@ public SecurityMonitoringIntegrationConfigCreateAttributes( @JsonProperty(required = true, value = JSON_PROPERTY_DOMAIN) String domain, @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_TYPE) SecurityMonitoringIntegrationType integrationType, - @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, - @JsonProperty(required = true, value = JSON_PROPERTY_SECRETS) Map secrets) { + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name) { this.domain = domain; this.integrationType = integrationType; this.unparsed |= !integrationType.isValid(); this.name = name; - this.secrets = secrets; } public SecurityMonitoringIntegrationConfigCreateAttributes domain(String domain) { @@ -132,18 +130,23 @@ public SecurityMonitoringIntegrationConfigCreateAttributes secrets(Map(); + } this.secrets.put(key, secretsItem); return this; } /** * The secrets used to authenticate against the external entity source. The accepted keys depend - * on the source type (for example, admin_email for Google Workspace). + * on the source type (for example, admin_email for Google Workspace). Not required + * for source types that do not use secrets (for example, ENTRA_ID). * * @return secrets */ + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_SECRETS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Map getSecrets() { return secrets; } diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java index 5c2bf8f17c1..d717088c947 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java @@ -152,7 +152,8 @@ public SecurityMonitoringIntegrationConfigUpdateAttributes putSecretsItem( /** * The secrets used to authenticate against the external entity source. The accepted keys depend - * on the source type (for example, admin_email for Google Workspace). + * on the source type (for example, admin_email for Google Workspace). Not required + * for source types that do not use secrets (for example, ENTRA_ID). * * @return secrets */ diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java index 91d9598a9c5..4b5ca8b67fe 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java @@ -34,7 +34,7 @@ public class SecurityMonitoringIntegrationCredentialsValidateAttributes { private SecurityMonitoringIntegrationType integrationType; public static final String JSON_PROPERTY_SECRETS = "secrets"; - private Map secrets = new HashMap(); + private Map secrets = null; public SecurityMonitoringIntegrationCredentialsValidateAttributes() {} @@ -42,12 +42,10 @@ public SecurityMonitoringIntegrationCredentialsValidateAttributes() {} public SecurityMonitoringIntegrationCredentialsValidateAttributes( @JsonProperty(required = true, value = JSON_PROPERTY_DOMAIN) String domain, @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_TYPE) - SecurityMonitoringIntegrationType integrationType, - @JsonProperty(required = true, value = JSON_PROPERTY_SECRETS) Map secrets) { + SecurityMonitoringIntegrationType integrationType) { this.domain = domain; this.integrationType = integrationType; this.unparsed |= !integrationType.isValid(); - this.secrets = secrets; } public SecurityMonitoringIntegrationCredentialsValidateAttributes domain(String domain) { @@ -103,18 +101,23 @@ public SecurityMonitoringIntegrationCredentialsValidateAttributes secrets( public SecurityMonitoringIntegrationCredentialsValidateAttributes putSecretsItem( String key, Object secretsItem) { + if (this.secrets == null) { + this.secrets = new HashMap<>(); + } this.secrets.put(key, secretsItem); return this; } /** * The secrets used to authenticate against the external entity source. The accepted keys depend - * on the source type (for example, admin_email for Google Workspace). + * on the source type (for example, admin_email for Google Workspace). Not required + * for source types that do not use secrets (for example, ENTRA_ID). * * @return secrets */ + @jakarta.annotation.Nullable @JsonProperty(JSON_PROPERTY_SECRETS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Map getSecrets() { return secrets; } 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 c204c1d587f..e2fb1a68b9f 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 @@ -9,6 +9,33 @@ Feature: Security Monitoring And a valid "appKeyAuth" key in the system And an instance of "SecurityMonitoring" API + @generated @skip @team:DataDog/cloud-siem + Scenario: Activate an entity context sync integration returns "Bad Request" response + Given operation "ActivateIntegration" enabled + And new "ActivateIntegration" request + And request contains "integration_type" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"domain": "default", "name": "My Entra ID Integration", "settings": {"setting1": "value1"}}, "type": "activate_entra_id_request"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/cloud-siem + Scenario: Activate an entity context sync integration returns "Not Found" response + Given operation "ActivateIntegration" enabled + And new "ActivateIntegration" request + And request contains "integration_type" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"domain": "default", "name": "My Entra ID Integration", "settings": {"setting1": "value1"}}, "type": "activate_entra_id_request"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/cloud-siem + Scenario: Activate an entity context sync integration returns "OK" response + Given operation "ActivateIntegration" enabled + And new "ActivateIntegration" request + And request contains "integration_type" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"domain": "default", "name": "My Entra ID Integration", "settings": {"setting1": "value1"}}, "type": "activate_entra_id_request"}} + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-siem Scenario: Activate content pack returns "Accepted" response Given operation "ActivateContentPack" enabled @@ -1093,6 +1120,22 @@ Feature: Security Monitoring When the request is sent Then the response status is 201 Created + @generated @skip @team:DataDog/cloud-siem + Scenario: Deactivate an entity context sync integration returns "Not Found" response + Given operation "DeactivateIntegration" enabled + And new "DeactivateIntegration" request + And request contains "integration_type" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/cloud-siem + Scenario: Deactivate an entity context sync integration returns "OK" response + Given operation "DeactivateIntegration" enabled + And new "DeactivateIntegration" request + And request contains "integration_type" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-siem Scenario: Deactivate content pack returns "Accepted" response Given operation "DeactivateContentPack" enabled @@ -1439,6 +1482,13 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-siem + Scenario: Get Entra ID Azure App Registration prerequisites returns "OK" response + Given operation "GetEntraIdAzureAppRegistrations" enabled + And new "GetEntraIdAzureAppRegistrations" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-vm Scenario: Get SBOM returns "Bad request: The server cannot process the request due to invalid syntax in the request." response Given new "GetSBOM" request diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 9db948088ae..1eaba52ee9b 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -7526,6 +7526,12 @@ "type": "unsafe" } }, + "GetEntraIdAzureAppRegistrations": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "ValidateSecurityMonitoringIntegrationCredentials": { "tag": "Security Monitoring", "undo": { @@ -7556,6 +7562,18 @@ "type": "safe" } }, + "ActivateIntegration": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "DeactivateIntegration": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "SendSecurityMonitoringNotificationPreview": { "tag": "Security Monitoring", "undo": {