diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 188cceacbd..7d5e372cbe 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -87671,6 +87671,69 @@ components: $ref: "#/components/schemas/SecurityMonitoringCriticalAsset" type: array type: object + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes: + description: The attributes of a CrowdStrike entity context sync configuration to create. + properties: + domain: + description: The domain associated with the external entity source. + example: api.crowdstrike.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" + name: + description: The display name for the entity context sync configuration. + example: My CrowdStrike Integration + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name + - secrets + type: object + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes: + description: Fields to update on a CrowdStrike entity context sync configuration. + properties: + domain: + description: The new domain associated with the external entity source. + example: api.crowdstrike.com + type: string + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" + name: + description: The new display name for the entity context sync configuration. + example: My CrowdStrike Integration (renamed) + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + type: object + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes: + description: The CrowdStrike credentials to validate against the external entity source. + properties: + domain: + description: The domain associated with the external entity source. + example: api.crowdstrike.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeCrowdStrike" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCrowdStrikeSecrets" + required: + - integration_type + - domain + - secrets + type: object SecurityMonitoringDatasetAttributesRequest: description: The attributes of a dataset create or update request. properties: @@ -88229,6 +88292,61 @@ components: required: - data type: object + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes: + description: The attributes of an Entra ID entity context sync configuration to create. + properties: + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + name: + description: The display name for the entity context sync configuration. + example: My Entra ID Integration + type: string + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name + type: object + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes: + description: Fields to update on an Entra ID entity context sync configuration. + properties: + domain: + description: The new domain associated with the external entity source. + example: siem-test.com + type: string + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + name: + description: The new display name for the entity context sync configuration. + example: My Entra ID Integration (renamed) + type: string + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + type: object + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes: + description: The Entra ID credentials to validate against the external entity source. + properties: + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeEntraId" + required: + - integration_type + - domain + type: object SecurityMonitoringFilter: description: The rule's suppression filter. properties: @@ -88247,6 +88365,69 @@ components: x-enum-varnames: - REQUIRE - SUPPRESS + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes: + description: The attributes of a Google Workspace entity context sync configuration to create. + properties: + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" + name: + description: The display name for the entity context sync configuration. + example: My GWS Integration + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name + - secrets + type: object + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes: + description: Fields to update on a Google Workspace entity context sync configuration. + properties: + domain: + description: The new domain associated with the external entity source. + example: siem-test.com + type: string + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" + name: + description: The new display name for the entity context sync configuration. + example: My GWS Integration (renamed) + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + type: object + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes: + description: The Google Workspace credentials to validate against the external entity source. + properties: + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeGoogleWorkspace" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets" + required: + - integration_type + - domain + - secrets + type: object SecurityMonitoringIntegrationActivateAttributes: description: Overrides applied when activating the integration. All fields are optional. properties: @@ -88322,26 +88503,20 @@ components: type: object SecurityMonitoringIntegrationConfigCreateAttributes: description: The attributes of the entity context sync configuration to create. - properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationType" - name: - description: The display name for the entity context sync configuration. - example: My GWS Integration - type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - required: - - integration_type - - domain - - name - type: object + discriminator: + mapping: + CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes" + ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigCreateAttributes" + GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes" + OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigCreateAttributes" + SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes" + propertyName: integration_type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes" SecurityMonitoringIntegrationConfigCreateData: description: The entity context sync configuration to create. properties: @@ -88361,6 +88536,21 @@ components: required: - data type: object + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets: + description: Credentials for a CrowdStrike entity context sync. + properties: + client_id: + description: The CrowdStrike API client ID. + example: abcdef0123456789abcdef0123456789 + type: string + client_secret: + description: The CrowdStrike API client secret. + example: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789ABCDEF + type: string + required: + - client_id + - client_secret + type: object SecurityMonitoringIntegrationConfigData: description: An entity context sync configuration. properties: @@ -88377,6 +88567,54 @@ components: - type - attributes type: object + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets: + description: Credentials for a Google Workspace entity context sync. + properties: + admin_email: + description: The admin email to impersonate for domain-wide delegation. + example: admin@example.com + type: string + service_account_json: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount" + required: + - service_account_json + type: object + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount: + additionalProperties: {} + description: The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. + properties: + client_email: + description: The service account client email. + example: svc@my-project.iam.gserviceaccount.com + type: string + private_key: + description: The service account private key. + example: "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----" + type: string + project_id: + description: The Google Cloud project ID that owns the service account. + example: my-project + type: string + type: + description: The service account type. Must be `service_account`. + example: service_account + type: string + required: + - type + - project_id + - private_key + - client_email + type: object + SecurityMonitoringIntegrationConfigOktaSecrets: + description: Credentials for an Okta entity context sync. + properties: + api_token: + description: The Okta API token used to authenticate against the Okta API. + example: 00aBcDeFgHiJkLmNoPqRsTuVwXyZ + type: string + required: + - api_token + type: object SecurityMonitoringIntegrationConfigResourceType: default: integration_config description: The type of the resource. The value should always be `integration_config`. @@ -88394,13 +88632,15 @@ components: required: - data 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). Not required for source types that do not use secrets (for example, `ENTRA_ID`). - example: - admin_email: test@example.com + SecurityMonitoringIntegrationConfigSentinelOneSecrets: + description: Credentials for a SentinelOne entity context sync. + properties: + api_token: + description: The SentinelOne API token. + example: aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789 + type: string + required: + - api_token type: object SecurityMonitoringIntegrationConfigSettings: additionalProperties: {} @@ -88421,27 +88661,21 @@ components: - INVALID - INITIALIZING SecurityMonitoringIntegrationConfigUpdateAttributes: - description: Fields to update on the entity context sync configuration. All fields are optional. - properties: - domain: - description: The new domain associated with the external entity source. - example: siem-test.com - type: string - enabled: - description: Whether the entity context sync should be enabled. - example: true - type: boolean - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationType" - name: - description: The new display name for the entity context sync configuration. - example: My GWS Integration (renamed) - type: string - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSecrets" - settings: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" - type: object + description: Fields to update on the entity context sync configuration. All fields other than the integration type are optional. + discriminator: + mapping: + CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes" + ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes" + GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes" + OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigUpdateAttributes" + SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes" + propertyName: integration_type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes" SecurityMonitoringIntegrationConfigUpdateData: description: The entity context sync configuration fields to update. properties: @@ -88474,19 +88708,20 @@ components: type: object SecurityMonitoringIntegrationCredentialsValidateAttributes: description: The credentials to validate against the external entity source. - properties: - domain: - description: The domain associated with the external entity source. - example: siem-test.com - type: string - integration_type: - $ref: "#/components/schemas/SecurityMonitoringIntegrationType" - secrets: - $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSecrets" - required: - - integration_type - - domain - type: object + discriminator: + mapping: + CROWDSTRIKE: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes" + ENTRA_ID: "#/components/schemas/SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes" + GOOGLE_WORKSPACE: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes" + OKTA: "#/components/schemas/SecurityMonitoringOktaIntegrationCredentialsValidateAttributes" + SENTINELONE: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes" + propertyName: integration_type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringOktaIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes" + - $ref: "#/components/schemas/SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes" SecurityMonitoringIntegrationCredentialsValidateData: description: The credentials to validate. properties: @@ -88512,12 +88747,56 @@ components: - GOOGLE_WORKSPACE - OKTA - ENTRA_ID + - CROWDSTRIKE + - SENTINELONE example: GOOGLE_WORKSPACE type: string x-enum-varnames: - GOOGLE_WORKSPACE - OKTA - ENTRA_ID + - CROWDSTRIKE + - SENTINELONE + SecurityMonitoringIntegrationTypeCrowdStrike: + description: The source type for a CrowdStrike entity context sync. + enum: + - CROWDSTRIKE + example: CROWDSTRIKE + type: string + x-enum-varnames: + - CROWDSTRIKE + SecurityMonitoringIntegrationTypeEntraId: + description: The source type for an Entra ID entity context sync. + enum: + - ENTRA_ID + example: ENTRA_ID + type: string + x-enum-varnames: + - ENTRA_ID + SecurityMonitoringIntegrationTypeGoogleWorkspace: + description: The source type for a Google Workspace entity context sync. + enum: + - GOOGLE_WORKSPACE + example: GOOGLE_WORKSPACE + type: string + x-enum-varnames: + - GOOGLE_WORKSPACE + SecurityMonitoringIntegrationTypeOkta: + description: The source type for an Okta entity context sync. + enum: + - OKTA + example: OKTA + type: string + x-enum-varnames: + - OKTA + SecurityMonitoringIntegrationTypeSentinelOne: + description: The source type for a SentinelOne entity context sync. + enum: + - SENTINELONE + example: SENTINELONE + type: string + x-enum-varnames: + - SENTINELONE SecurityMonitoringListRulesResponse: description: List of rules. properties: @@ -88529,6 +88808,69 @@ components: meta: $ref: "#/components/schemas/ResponseMetaAttributes" type: object + SecurityMonitoringOktaIntegrationConfigCreateAttributes: + description: The attributes of an Okta entity context sync configuration to create. + properties: + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" + name: + description: The display name for the entity context sync configuration. + example: My Okta Integration + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name + - secrets + type: object + SecurityMonitoringOktaIntegrationConfigUpdateAttributes: + description: Fields to update on an Okta entity context sync configuration. + properties: + domain: + description: The new domain associated with the external entity source. + example: siem-test.com + type: string + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" + name: + description: The new display name for the entity context sync configuration. + example: My Okta Integration (renamed) + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + type: object + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes: + description: The Okta credentials to validate against the external entity source. + properties: + domain: + description: The domain associated with the external entity source. + example: siem-test.com + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeOkta" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigOktaSecrets" + required: + - integration_type + - domain + - secrets + type: object SecurityMonitoringPaginatedSuppressionsResponse: description: Response object containing the available suppression rules with pagination metadata. properties: @@ -89489,6 +89831,69 @@ components: example: America/New_York type: string type: object + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes: + description: The attributes of a SentinelOne entity context sync configuration to create. + properties: + domain: + description: The domain associated with the external entity source. + example: acme.sentinelone.net + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" + name: + description: The display name for the entity context sync configuration. + example: My SentinelOne Integration + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + - domain + - name + - secrets + type: object + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes: + description: Fields to update on a SentinelOne entity context sync configuration. + properties: + domain: + description: The new domain associated with the external entity source. + example: acme.sentinelone.net + type: string + enabled: + description: Whether the entity context sync should be enabled. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" + name: + description: The new display name for the entity context sync configuration. + example: My SentinelOne Integration (renamed) + type: string + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + required: + - integration_type + type: object + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes: + description: The SentinelOne credentials to validate against the external entity source. + properties: + domain: + description: The domain associated with the external entity source. + example: acme.sentinelone.net + type: string + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationTypeSentinelOne" + secrets: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSentinelOneSecrets" + required: + - integration_type + - domain + - secrets + type: object SecurityMonitoringSignal: description: Object description of a security signal. properties: diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 2c283062c8..696d8eef5f 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -37293,6 +37293,27 @@ datadog\_api\_client.v2.model.security\_monitoring\_critical\_assets\_response m :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_crowd\_strike\_integration\_config\_create\_attributes module +----------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_create_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_crowd\_strike\_integration\_config\_update\_attributes module +----------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_update_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_crowd\_strike\_integration\_credentials\_validate\_attributes module +------------------------------------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_credentials_validate_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_dataset\_attributes\_request module --------------------------------------------------------------------------------------- @@ -37552,6 +37573,27 @@ datadog\_api\_client.v2.model.security\_monitoring\_entra\_id\_azure\_app\_regis :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_entra\_id\_integration\_config\_create\_attributes module +------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_create_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_entra\_id\_integration\_config\_update\_attributes module +------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_update_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_entra\_id\_integration\_credentials\_validate\_attributes module +-------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_entra_id_integration_credentials_validate_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_filter module ----------------------------------------------------------------- @@ -37566,6 +37608,27 @@ datadog\_api\_client.v2.model.security\_monitoring\_filter\_action module :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_google\_workspace\_integration\_config\_create\_attributes module +--------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_create_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_google\_workspace\_integration\_config\_update\_attributes module +--------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_update_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_google\_workspace\_integration\_credentials\_validate\_attributes module +---------------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_google_workspace_integration_credentials_validate_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_integration\_activate\_attributes module -------------------------------------------------------------------------------------------- @@ -37622,6 +37685,13 @@ datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_create\ :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_crowd\_strike\_secrets module +------------------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_data module ------------------------------------------------------------------------------------ @@ -37629,6 +37699,27 @@ datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_data mo :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_google\_workspace\_secrets module +---------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_google\_workspace\_service\_account module +------------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_okta\_secrets module +--------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_resource\_type module ---------------------------------------------------------------------------------------------- @@ -37643,10 +37734,10 @@ datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_respons :members: :show-inheritance: -datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_secrets module ---------------------------------------------------------------------------------------- +datadog\_api\_client.v2.model.security\_monitoring\_integration\_config\_sentinel\_one\_secrets module +------------------------------------------------------------------------------------------------------ -.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_config_secrets +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets :members: :show-inheritance: @@ -37720,6 +37811,41 @@ datadog\_api\_client.v2.model.security\_monitoring\_integration\_type module :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_integration\_type\_crowd\_strike module +------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_integration\_type\_entra\_id module +--------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_type_entra_id + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_integration\_type\_google\_workspace module +----------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_integration\_type\_okta module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_type_okta + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_integration\_type\_sentinel\_one module +------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_list\_rules\_response module -------------------------------------------------------------------------------- @@ -37727,6 +37853,27 @@ datadog\_api\_client.v2.model.security\_monitoring\_list\_rules\_response module :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_okta\_integration\_config\_create\_attributes module +-------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_okta_integration_config_create_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_okta\_integration\_config\_update\_attributes module +-------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_okta_integration_config_update_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_okta\_integration\_credentials\_validate\_attributes module +--------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_okta_integration_credentials_validate_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_paginated\_suppressions\_response module -------------------------------------------------------------------------------------------- @@ -38133,6 +38280,27 @@ datadog\_api\_client.v2.model.security\_monitoring\_scheduling\_options module :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_sentinel\_one\_integration\_config\_create\_attributes module +----------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_create_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_sentinel\_one\_integration\_config\_update\_attributes module +----------------------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_update_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_sentinel\_one\_integration\_credentials\_validate\_attributes module +------------------------------------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_credentials_validate_attributes + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_signal module ----------------------------------------------------------------- diff --git a/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.py b/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.py index fe56a9911b..077782aa42 100644 --- a/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.py +++ b/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.py @@ -4,8 +4,8 @@ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi -from datadog_api_client.v2.model.security_monitoring_integration_config_create_attributes import ( - SecurityMonitoringIntegrationConfigCreateAttributes, +from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_create_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes, ) from datadog_api_client.v2.model.security_monitoring_integration_config_create_data import ( SecurityMonitoringIntegrationConfigCreateData, @@ -13,24 +13,37 @@ from datadog_api_client.v2.model.security_monitoring_integration_config_create_request import ( SecurityMonitoringIntegrationConfigCreateRequest, ) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, +) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, +) from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( SecurityMonitoringIntegrationConfigResourceType, ) -from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, -) from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( SecurityMonitoringIntegrationConfigSettings, ) -from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType +from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, +) body = SecurityMonitoringIntegrationConfigCreateRequest( data=SecurityMonitoringIntegrationConfigCreateData( - attributes=SecurityMonitoringIntegrationConfigCreateAttributes( + attributes=SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes( domain="siem-test.com", - integration_type=SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE, + integration_type=SecurityMonitoringIntegrationTypeGoogleWorkspace.GOOGLE_WORKSPACE, name="My GWS Integration", - secrets=SecurityMonitoringIntegrationConfigSecrets([("admin_email", "test@example.com")]), + secrets=SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets( + admin_email="admin@example.com", + service_account_json=SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount( + client_email="svc@my-project.iam.gserviceaccount.com", + private_key="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", + project_id="my-project", + type="service_account", + ), + ), settings=SecurityMonitoringIntegrationConfigSettings([("setting1", "value1")]), ), type=SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG, diff --git a/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.py b/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.py index df7638a4e5..55ce2b21ce 100644 --- a/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.py +++ b/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.py @@ -4,34 +4,47 @@ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_update_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, +) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, +) from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( SecurityMonitoringIntegrationConfigResourceType, ) -from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, -) from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( SecurityMonitoringIntegrationConfigSettings, ) -from datadog_api_client.v2.model.security_monitoring_integration_config_update_attributes import ( - SecurityMonitoringIntegrationConfigUpdateAttributes, -) from datadog_api_client.v2.model.security_monitoring_integration_config_update_data import ( SecurityMonitoringIntegrationConfigUpdateData, ) from datadog_api_client.v2.model.security_monitoring_integration_config_update_request import ( SecurityMonitoringIntegrationConfigUpdateRequest, ) -from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType +from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, +) body = SecurityMonitoringIntegrationConfigUpdateRequest( data=SecurityMonitoringIntegrationConfigUpdateData( - attributes=SecurityMonitoringIntegrationConfigUpdateAttributes( + attributes=SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes( domain="siem-test.com", enabled=True, - integration_type=SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE, + integration_type=SecurityMonitoringIntegrationTypeGoogleWorkspace.GOOGLE_WORKSPACE, name="My GWS Integration (renamed)", - secrets=SecurityMonitoringIntegrationConfigSecrets([("admin_email", "test@example.com")]), + secrets=SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets( + admin_email="admin@example.com", + service_account_json=SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount( + client_email="svc@my-project.iam.gserviceaccount.com", + private_key="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", + project_id="my-project", + type="service_account", + ), + ), settings=SecurityMonitoringIntegrationConfigSettings([("setting1", "value1")]), ), type=SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG, diff --git a/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.py b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.py index 1b5b48f65d..5ecb33b8c3 100644 --- a/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.py +++ b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.py @@ -4,14 +4,17 @@ from datadog_api_client import ApiClient, Configuration from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi -from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( - SecurityMonitoringIntegrationConfigResourceType, +from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_credentials_validate_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, ) -from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, ) -from datadog_api_client.v2.model.security_monitoring_integration_credentials_validate_attributes import ( - SecurityMonitoringIntegrationCredentialsValidateAttributes, +from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( + SecurityMonitoringIntegrationConfigResourceType, ) from datadog_api_client.v2.model.security_monitoring_integration_credentials_validate_data import ( SecurityMonitoringIntegrationCredentialsValidateData, @@ -19,14 +22,24 @@ from datadog_api_client.v2.model.security_monitoring_integration_credentials_validate_request import ( SecurityMonitoringIntegrationCredentialsValidateRequest, ) -from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType +from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, +) body = SecurityMonitoringIntegrationCredentialsValidateRequest( data=SecurityMonitoringIntegrationCredentialsValidateData( - attributes=SecurityMonitoringIntegrationCredentialsValidateAttributes( + attributes=SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes( domain="siem-test.com", - integration_type=SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE, - secrets=SecurityMonitoringIntegrationConfigSecrets([("admin_email", "test@example.com")]), + integration_type=SecurityMonitoringIntegrationTypeGoogleWorkspace.GOOGLE_WORKSPACE, + secrets=SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets( + admin_email="admin@example.com", + service_account_json=SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount( + client_email="svc@my-project.iam.gserviceaccount.com", + private_key="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", + project_id="my-project", + type="service_account", + ), + ), ), type=SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG, ), diff --git a/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_config_create_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_config_create_attributes.py new file mode 100644 index 0000000000..015fbf30c2 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_config_create_attributes.py @@ -0,0 +1,91 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeCrowdStrike,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigCrowdStrikeSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeCrowdStrike, + name: str, + secrets: SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of a CrowdStrike entity context sync configuration to create. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for a CrowdStrike entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeCrowdStrike + + :param name: The display name for the entity context sync configuration. + :type name: str + + :param secrets: Credentials for a CrowdStrike entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigCrowdStrikeSecrets + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.name = name + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_config_update_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_config_update_attributes.py new file mode 100644 index 0000000000..55500d1c49 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_config_update_attributes.py @@ -0,0 +1,102 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "enabled": (bool,), + "integration_type": (SecurityMonitoringIntegrationTypeCrowdStrike,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigCrowdStrikeSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "enabled": "enabled", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + integration_type: SecurityMonitoringIntegrationTypeCrowdStrike, + domain: Union[str, UnsetType] = unset, + enabled: Union[bool, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + secrets: Union[SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, UnsetType] = unset, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + Fields to update on a CrowdStrike entity context sync configuration. + + :param domain: The new domain associated with the external entity source. + :type domain: str, optional + + :param enabled: Whether the entity context sync should be enabled. + :type enabled: bool, optional + + :param integration_type: The source type for a CrowdStrike entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeCrowdStrike + + :param name: The new display name for the entity context sync configuration. + :type name: str, optional + + :param secrets: Credentials for a CrowdStrike entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, optional + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if domain is not unset: + kwargs["domain"] = domain + if enabled is not unset: + kwargs["enabled"] = enabled + if name is not unset: + kwargs["name"] = name + if secrets is not unset: + kwargs["secrets"] = secrets + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.integration_type = integration_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_credentials_validate_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_credentials_validate_attributes.py new file mode 100644 index 0000000000..4a92142ca8 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_crowd_strike_integration_credentials_validate_attributes.py @@ -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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + ) + + +class SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeCrowdStrike,), + "secrets": (SecurityMonitoringIntegrationConfigCrowdStrikeSecrets,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "secrets": "secrets", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeCrowdStrike, + secrets: SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, + **kwargs, + ): + """ + The CrowdStrike credentials to validate against the external entity source. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for a CrowdStrike entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeCrowdStrike + + :param secrets: Credentials for a CrowdStrike entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigCrowdStrikeSecrets + """ + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_config_create_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_config_create_attributes.py new file mode 100644 index 0000000000..d66f59a067 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_config_create_attributes.py @@ -0,0 +1,78 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringEntraIdIntegrationConfigCreateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeEntraId,), + "name": (str,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "name": "name", + "settings": "settings", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeEntraId, + name: str, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of an Entra ID entity context sync configuration to create. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for an Entra ID entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeEntraId + + :param name: The display name for the entity context sync configuration. + :type name: str + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.name = name diff --git a/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_config_update_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_config_update_attributes.py new file mode 100644 index 0000000000..ff34a40a56 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_config_update_attributes.py @@ -0,0 +1,88 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "enabled": (bool,), + "integration_type": (SecurityMonitoringIntegrationTypeEntraId,), + "name": (str,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "enabled": "enabled", + "integration_type": "integration_type", + "name": "name", + "settings": "settings", + } + + def __init__( + self_, + integration_type: SecurityMonitoringIntegrationTypeEntraId, + domain: Union[str, UnsetType] = unset, + enabled: Union[bool, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + Fields to update on an Entra ID entity context sync configuration. + + :param domain: The new domain associated with the external entity source. + :type domain: str, optional + + :param enabled: Whether the entity context sync should be enabled. + :type enabled: bool, optional + + :param integration_type: The source type for an Entra ID entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeEntraId + + :param name: The new display name for the entity context sync configuration. + :type name: str, optional + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if domain is not unset: + kwargs["domain"] = domain + if enabled is not unset: + kwargs["enabled"] = enabled + if name is not unset: + kwargs["name"] = name + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.integration_type = integration_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_credentials_validate_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_credentials_validate_attributes.py new file mode 100644 index 0000000000..bca793d6d2 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_entra_id_integration_credentials_validate_attributes.py @@ -0,0 +1,50 @@ +# 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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, + ) + + +class SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeEntraId,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + } + + def __init__(self_, domain: str, integration_type: SecurityMonitoringIntegrationTypeEntraId, **kwargs): + """ + The Entra ID credentials to validate against the external entity source. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for an Entra ID entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeEntraId + """ + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_config_create_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_config_create_attributes.py new file mode 100644 index 0000000000..815441a050 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_config_create_attributes.py @@ -0,0 +1,91 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeGoogleWorkspace,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace, + name: str, + secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of a Google Workspace entity context sync configuration to create. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for a Google Workspace entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace + + :param name: The display name for the entity context sync configuration. + :type name: str + + :param secrets: Credentials for a Google Workspace entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.name = name + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_config_update_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_config_update_attributes.py new file mode 100644 index 0000000000..8f0b8f3578 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_config_update_attributes.py @@ -0,0 +1,102 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "enabled": (bool,), + "integration_type": (SecurityMonitoringIntegrationTypeGoogleWorkspace,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "enabled": "enabled", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace, + domain: Union[str, UnsetType] = unset, + enabled: Union[bool, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + secrets: Union[SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, UnsetType] = unset, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + Fields to update on a Google Workspace entity context sync configuration. + + :param domain: The new domain associated with the external entity source. + :type domain: str, optional + + :param enabled: Whether the entity context sync should be enabled. + :type enabled: bool, optional + + :param integration_type: The source type for a Google Workspace entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace + + :param name: The new display name for the entity context sync configuration. + :type name: str, optional + + :param secrets: Credentials for a Google Workspace entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, optional + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if domain is not unset: + kwargs["domain"] = domain + if enabled is not unset: + kwargs["enabled"] = enabled + if name is not unset: + kwargs["name"] = name + if secrets is not unset: + kwargs["secrets"] = secrets + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.integration_type = integration_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_credentials_validate_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_credentials_validate_attributes.py new file mode 100644 index 0000000000..1a0a4b7f33 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_google_workspace_integration_credentials_validate_attributes.py @@ -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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + ) + + +class SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeGoogleWorkspace,), + "secrets": (SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "secrets": "secrets", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace, + secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, + **kwargs, + ): + """ + The Google Workspace credentials to validate against the external entity source. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for a Google Workspace entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace + + :param secrets: Credentials for a Google Workspace entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets + """ + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_attributes.py index 998358579f..59a0a9b535 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_attributes.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_attributes.py @@ -3,87 +3,66 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( - ModelNormal, + ModelComposed, cached_property, - unset, - UnsetType, ) -if TYPE_CHECKING: - from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType - from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, - ) - from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( - SecurityMonitoringIntegrationConfigSettings, - ) - - -class SecurityMonitoringIntegrationConfigCreateAttributes(ModelNormal): - @cached_property - def openapi_types(_): - from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType - from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, - ) - from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( - SecurityMonitoringIntegrationConfigSettings, - ) - - return { - "domain": (str,), - "integration_type": (SecurityMonitoringIntegrationType,), - "name": (str,), - "secrets": (SecurityMonitoringIntegrationConfigSecrets,), - "settings": (SecurityMonitoringIntegrationConfigSettings,), - } - - attribute_map = { - "domain": "domain", - "integration_type": "integration_type", - "name": "name", - "secrets": "secrets", - "settings": "settings", - } - - def __init__( - self_, - domain: str, - integration_type: SecurityMonitoringIntegrationType, - name: str, - secrets: Union[SecurityMonitoringIntegrationConfigSecrets, UnsetType] = unset, - settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, - **kwargs, - ): +class SecurityMonitoringIntegrationConfigCreateAttributes(ModelComposed): + def __init__(self, **kwargs): """ The attributes of the entity context sync configuration to create. :param domain: The domain associated with the external entity source. :type domain: str - :param integration_type: The type of external source that provides entities to Cloud SIEM. - :type integration_type: SecurityMonitoringIntegrationType + :param integration_type: The source type for a Google Workspace entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace :param name: The display name for the entity context sync configuration. :type name: str - :param secrets: 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`` ). - :type secrets: SecurityMonitoringIntegrationConfigSecrets, optional + :param secrets: Credentials for a Google Workspace entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. :type settings: SecurityMonitoringIntegrationConfigSettings, optional """ - if secrets is not unset: - kwargs["secrets"] = secrets - if settings is not unset: - kwargs["settings"] = settings super().__init__(kwargs) - self_.domain = domain - self_.integration_type = integration_type - self_.name = name + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_create_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_okta_integration_config_create_attributes import ( + SecurityMonitoringOktaIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_create_attributes import ( + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_create_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_create_attributes import ( + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes, + ) + + return { + "oneOf": [ + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes, + SecurityMonitoringOktaIntegrationConfigCreateAttributes, + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes, + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes, + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes, + ], + } diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_data.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_data.py index 9bc8223130..803d256ac5 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_data.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_create_data.py @@ -3,7 +3,7 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import TYPE_CHECKING +from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( ModelNormal, @@ -18,6 +18,21 @@ from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( SecurityMonitoringIntegrationConfigResourceType, ) + from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_create_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_okta_integration_config_create_attributes import ( + SecurityMonitoringOktaIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_create_attributes import ( + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_create_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_create_attributes import ( + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes, + ) class SecurityMonitoringIntegrationConfigCreateData(ModelNormal): @@ -42,7 +57,14 @@ def openapi_types(_): def __init__( self_, - attributes: SecurityMonitoringIntegrationConfigCreateAttributes, + attributes: Union[ + SecurityMonitoringIntegrationConfigCreateAttributes, + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes, + SecurityMonitoringOktaIntegrationConfigCreateAttributes, + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes, + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes, + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes, + ], type: SecurityMonitoringIntegrationConfigResourceType, **kwargs, ): diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_crowd_strike_secrets.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_crowd_strike_secrets.py new file mode 100644 index 0000000000..85f0986f29 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_crowd_strike_secrets.py @@ -0,0 +1,39 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringIntegrationConfigCrowdStrikeSecrets(ModelNormal): + @cached_property + def openapi_types(_): + return { + "client_id": (str,), + "client_secret": (str,), + } + + attribute_map = { + "client_id": "client_id", + "client_secret": "client_secret", + } + + def __init__(self_, client_id: str, client_secret: str, **kwargs): + """ + Credentials for a CrowdStrike entity context sync. + + :param client_id: The CrowdStrike API client ID. + :type client_id: str + + :param client_secret: The CrowdStrike API client secret. + :type client_secret: str + """ + super().__init__(kwargs) + + self_.client_id = client_id + self_.client_secret = client_secret diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_google_workspace_secrets.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_google_workspace_secrets.py new file mode 100644 index 0000000000..d5f8eb95ef --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_google_workspace_secrets.py @@ -0,0 +1,58 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, + ) + + +class SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, + ) + + return { + "admin_email": (str,), + "service_account_json": (SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount,), + } + + attribute_map = { + "admin_email": "admin_email", + "service_account_json": "service_account_json", + } + + def __init__( + self_, + service_account_json: SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, + admin_email: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Credentials for a Google Workspace entity context sync. + + :param admin_email: The admin email to impersonate for domain-wide delegation. + :type admin_email: str, optional + + :param service_account_json: The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. + :type service_account_json: SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount + """ + if admin_email is not unset: + kwargs["admin_email"] = admin_email + super().__init__(kwargs) + + self_.service_account_json = service_account_json diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_google_workspace_service_account.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_google_workspace_service_account.py new file mode 100644 index 0000000000..e0f9008c95 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_google_workspace_service_account.py @@ -0,0 +1,51 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount(ModelNormal): + @cached_property + def openapi_types(_): + return { + "client_email": (str,), + "private_key": (str,), + "project_id": (str,), + "type": (str,), + } + + attribute_map = { + "client_email": "client_email", + "private_key": "private_key", + "project_id": "project_id", + "type": "type", + } + + def __init__(self_, client_email: str, private_key: str, project_id: str, type: str, **kwargs): + """ + The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. + + :param client_email: The service account client email. + :type client_email: str + + :param private_key: The service account private key. + :type private_key: str + + :param project_id: The Google Cloud project ID that owns the service account. + :type project_id: str + + :param type: The service account type. Must be ``service_account``. + :type type: str + """ + super().__init__(kwargs) + + self_.client_email = client_email + self_.private_key = private_key + self_.project_id = project_id + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_okta_secrets.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_okta_secrets.py new file mode 100644 index 0000000000..050603633f --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_okta_secrets.py @@ -0,0 +1,33 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringIntegrationConfigOktaSecrets(ModelNormal): + @cached_property + def openapi_types(_): + return { + "api_token": (str,), + } + + attribute_map = { + "api_token": "api_token", + } + + def __init__(self_, api_token: str, **kwargs): + """ + Credentials for an Okta entity context sync. + + :param api_token: The Okta API token used to authenticate against the Okta API. + :type api_token: str + """ + super().__init__(kwargs) + + self_.api_token = api_token diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_secrets.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_secrets.py deleted file mode 100644 index 3eccc7ffd6..0000000000 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_config_secrets.py +++ /dev/null @@ -1,18 +0,0 @@ -# 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. -from __future__ import annotations - - -from datadog_api_client.model_utils import ( - ModelNormal, -) - - -class SecurityMonitoringIntegrationConfigSecrets(ModelNormal): - def __init__(self_, **kwargs): - """ - 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`` ). - """ - super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_sentinel_one_secrets.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_sentinel_one_secrets.py new file mode 100644 index 0000000000..5cc24bb20d --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_sentinel_one_secrets.py @@ -0,0 +1,33 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringIntegrationConfigSentinelOneSecrets(ModelNormal): + @cached_property + def openapi_types(_): + return { + "api_token": (str,), + } + + attribute_map = { + "api_token": "api_token", + } + + def __init__(self_, api_token: str, **kwargs): + """ + Credentials for a SentinelOne entity context sync. + + :param api_token: The SentinelOne API token. + :type api_token: str + """ + super().__init__(kwargs) + + self_.api_token = api_token diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_attributes.py index 00385e1d73..b5a015b13d 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_attributes.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_attributes.py @@ -3,67 +3,17 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( - ModelNormal, + ModelComposed, cached_property, - unset, - UnsetType, ) -if TYPE_CHECKING: - from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType - from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, - ) - from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( - SecurityMonitoringIntegrationConfigSettings, - ) - - -class SecurityMonitoringIntegrationConfigUpdateAttributes(ModelNormal): - @cached_property - def openapi_types(_): - from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType - from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, - ) - from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( - SecurityMonitoringIntegrationConfigSettings, - ) - - return { - "domain": (str,), - "enabled": (bool,), - "integration_type": (SecurityMonitoringIntegrationType,), - "name": (str,), - "secrets": (SecurityMonitoringIntegrationConfigSecrets,), - "settings": (SecurityMonitoringIntegrationConfigSettings,), - } - - attribute_map = { - "domain": "domain", - "enabled": "enabled", - "integration_type": "integration_type", - "name": "name", - "secrets": "secrets", - "settings": "settings", - } - - def __init__( - self_, - domain: Union[str, UnsetType] = unset, - enabled: Union[bool, UnsetType] = unset, - integration_type: Union[SecurityMonitoringIntegrationType, UnsetType] = unset, - name: Union[str, UnsetType] = unset, - secrets: Union[SecurityMonitoringIntegrationConfigSecrets, UnsetType] = unset, - settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, - **kwargs, - ): +class SecurityMonitoringIntegrationConfigUpdateAttributes(ModelComposed): + def __init__(self, **kwargs): """ - Fields to update on the entity context sync configuration. All fields are optional. + Fields to update on the entity context sync configuration. All fields other than the integration type are optional. :param domain: The new domain associated with the external entity source. :type domain: str, optional @@ -71,29 +21,51 @@ def __init__( :param enabled: Whether the entity context sync should be enabled. :type enabled: bool, optional - :param integration_type: The type of external source that provides entities to Cloud SIEM. - :type integration_type: SecurityMonitoringIntegrationType, optional + :param integration_type: The source type for a Google Workspace entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace :param name: The new display name for the entity context sync configuration. :type name: str, optional - :param secrets: 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`` ). - :type secrets: SecurityMonitoringIntegrationConfigSecrets, optional + :param secrets: Credentials for a Google Workspace entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, optional :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. :type settings: SecurityMonitoringIntegrationConfigSettings, optional """ - if domain is not unset: - kwargs["domain"] = domain - if enabled is not unset: - kwargs["enabled"] = enabled - if integration_type is not unset: - kwargs["integration_type"] = integration_type - if name is not unset: - kwargs["name"] = name - if secrets is not unset: - kwargs["secrets"] = secrets - if settings is not unset: - kwargs["settings"] = settings super().__init__(kwargs) + + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_update_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_okta_integration_config_update_attributes import ( + SecurityMonitoringOktaIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_update_attributes import ( + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_update_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_update_attributes import ( + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes, + ) + + return { + "oneOf": [ + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes, + SecurityMonitoringOktaIntegrationConfigUpdateAttributes, + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes, + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes, + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes, + ], + } diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_data.py b/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_data.py index 471c472baf..d6688d4fe4 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_data.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_config_update_data.py @@ -3,7 +3,7 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import TYPE_CHECKING +from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( ModelNormal, @@ -18,6 +18,21 @@ from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( SecurityMonitoringIntegrationConfigResourceType, ) + from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_update_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_okta_integration_config_update_attributes import ( + SecurityMonitoringOktaIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_update_attributes import ( + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_update_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_update_attributes import ( + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes, + ) class SecurityMonitoringIntegrationConfigUpdateData(ModelNormal): @@ -42,14 +57,21 @@ def openapi_types(_): def __init__( self_, - attributes: SecurityMonitoringIntegrationConfigUpdateAttributes, + attributes: Union[ + SecurityMonitoringIntegrationConfigUpdateAttributes, + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes, + SecurityMonitoringOktaIntegrationConfigUpdateAttributes, + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes, + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes, + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes, + ], type: SecurityMonitoringIntegrationConfigResourceType, **kwargs, ): """ The entity context sync configuration fields to update. - :param attributes: Fields to update on the entity context sync configuration. All fields are optional. + :param attributes: Fields to update on the entity context sync configuration. All fields other than the integration type are optional. :type attributes: SecurityMonitoringIntegrationConfigUpdateAttributes :param type: The type of the resource. The value should always be ``integration_config``. diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_attributes.py index b8a1aacc42..80e184fe5b 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_attributes.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_attributes.py @@ -3,66 +3,60 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( - ModelNormal, + ModelComposed, cached_property, - unset, - UnsetType, ) -if TYPE_CHECKING: - from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType - from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, - ) - - -class SecurityMonitoringIntegrationCredentialsValidateAttributes(ModelNormal): - @cached_property - def openapi_types(_): - from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType - from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, - ) - - return { - "domain": (str,), - "integration_type": (SecurityMonitoringIntegrationType,), - "secrets": (SecurityMonitoringIntegrationConfigSecrets,), - } - - attribute_map = { - "domain": "domain", - "integration_type": "integration_type", - "secrets": "secrets", - } - - def __init__( - self_, - domain: str, - integration_type: SecurityMonitoringIntegrationType, - secrets: Union[SecurityMonitoringIntegrationConfigSecrets, UnsetType] = unset, - **kwargs, - ): +class SecurityMonitoringIntegrationCredentialsValidateAttributes(ModelComposed): + def __init__(self, **kwargs): """ The credentials to validate against the external entity source. :param domain: The domain associated with the external entity source. :type domain: str - :param integration_type: The type of external source that provides entities to Cloud SIEM. - :type integration_type: SecurityMonitoringIntegrationType + :param integration_type: The source type for a Google Workspace entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeGoogleWorkspace - :param secrets: 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`` ). - :type secrets: SecurityMonitoringIntegrationConfigSecrets, optional + :param secrets: Credentials for a Google Workspace entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets """ - if secrets is not unset: - kwargs["secrets"] = secrets super().__init__(kwargs) - self_.domain = domain - self_.integration_type = integration_type + @cached_property + def _composed_schemas(_): + # we need this here to make our import statements work + # we must store _composed_schemas in here so the code is only run + # when we invoke this method. If we kept this at the class + # level we would get an error because the class level + # code would be run when this module is imported, and these composed + # classes don't exist yet because their module has not finished + # loading + from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_credentials_validate_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_okta_integration_credentials_validate_attributes import ( + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_entra_id_integration_credentials_validate_attributes import ( + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_credentials_validate_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_credentials_validate_attributes import ( + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes, + ) + + return { + "oneOf": [ + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes, + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes, + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes, + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes, + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes, + ], + } diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_data.py b/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_data.py index 52ed1fcf25..e582e889e3 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_data.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_credentials_validate_data.py @@ -3,7 +3,7 @@ # Copyright 2019-Present Datadog, Inc. from __future__ import annotations -from typing import TYPE_CHECKING +from typing import Union, TYPE_CHECKING from datadog_api_client.model_utils import ( ModelNormal, @@ -18,6 +18,21 @@ from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( SecurityMonitoringIntegrationConfigResourceType, ) + from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_credentials_validate_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_okta_integration_credentials_validate_attributes import ( + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_entra_id_integration_credentials_validate_attributes import ( + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_credentials_validate_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes, + ) + from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_credentials_validate_attributes import ( + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes, + ) class SecurityMonitoringIntegrationCredentialsValidateData(ModelNormal): @@ -42,7 +57,14 @@ def openapi_types(_): def __init__( self_, - attributes: SecurityMonitoringIntegrationCredentialsValidateAttributes, + attributes: Union[ + SecurityMonitoringIntegrationCredentialsValidateAttributes, + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes, + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes, + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes, + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes, + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes, + ], type: SecurityMonitoringIntegrationConfigResourceType, **kwargs, ): diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_type.py b/src/datadog_api_client/v2/model/security_monitoring_integration_type.py index 78918d12fc..1cc54fbd36 100644 --- a/src/datadog_api_client/v2/model/security_monitoring_integration_type.py +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_type.py @@ -16,7 +16,7 @@ class SecurityMonitoringIntegrationType(ModelSimple): """ The type of external source that provides entities to Cloud SIEM. - :param value: Must be one of ["GOOGLE_WORKSPACE", "OKTA", "ENTRA_ID"]. + :param value: Must be one of ["GOOGLE_WORKSPACE", "OKTA", "ENTRA_ID", "CROWDSTRIKE", "SENTINELONE"]. :type value: str """ @@ -24,10 +24,14 @@ class SecurityMonitoringIntegrationType(ModelSimple): "GOOGLE_WORKSPACE", "OKTA", "ENTRA_ID", + "CROWDSTRIKE", + "SENTINELONE", } GOOGLE_WORKSPACE: ClassVar["SecurityMonitoringIntegrationType"] OKTA: ClassVar["SecurityMonitoringIntegrationType"] ENTRA_ID: ClassVar["SecurityMonitoringIntegrationType"] + CROWDSTRIKE: ClassVar["SecurityMonitoringIntegrationType"] + SENTINELONE: ClassVar["SecurityMonitoringIntegrationType"] @cached_property def openapi_types(_): @@ -39,3 +43,5 @@ def openapi_types(_): SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE = SecurityMonitoringIntegrationType("GOOGLE_WORKSPACE") SecurityMonitoringIntegrationType.OKTA = SecurityMonitoringIntegrationType("OKTA") SecurityMonitoringIntegrationType.ENTRA_ID = SecurityMonitoringIntegrationType("ENTRA_ID") +SecurityMonitoringIntegrationType.CROWDSTRIKE = SecurityMonitoringIntegrationType("CROWDSTRIKE") +SecurityMonitoringIntegrationType.SENTINELONE = SecurityMonitoringIntegrationType("SENTINELONE") diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_type_crowd_strike.py b/src/datadog_api_client/v2/model/security_monitoring_integration_type_crowd_strike.py new file mode 100644 index 0000000000..a500a4cd90 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_type_crowd_strike.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringIntegrationTypeCrowdStrike(ModelSimple): + """ + The source type for a CrowdStrike entity context sync. + + :param value: If omitted defaults to "CROWDSTRIKE". Must be one of ["CROWDSTRIKE"]. + :type value: str + """ + + allowed_values = { + "CROWDSTRIKE", + } + CROWDSTRIKE: ClassVar["SecurityMonitoringIntegrationTypeCrowdStrike"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringIntegrationTypeCrowdStrike.CROWDSTRIKE = SecurityMonitoringIntegrationTypeCrowdStrike("CROWDSTRIKE") diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_type_entra_id.py b/src/datadog_api_client/v2/model/security_monitoring_integration_type_entra_id.py new file mode 100644 index 0000000000..a77900b6ae --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_type_entra_id.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringIntegrationTypeEntraId(ModelSimple): + """ + The source type for an Entra ID entity context sync. + + :param value: If omitted defaults to "ENTRA_ID". Must be one of ["ENTRA_ID"]. + :type value: str + """ + + allowed_values = { + "ENTRA_ID", + } + ENTRA_ID: ClassVar["SecurityMonitoringIntegrationTypeEntraId"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringIntegrationTypeEntraId.ENTRA_ID = SecurityMonitoringIntegrationTypeEntraId("ENTRA_ID") diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_type_google_workspace.py b/src/datadog_api_client/v2/model/security_monitoring_integration_type_google_workspace.py new file mode 100644 index 0000000000..ca350a53f4 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_type_google_workspace.py @@ -0,0 +1,37 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringIntegrationTypeGoogleWorkspace(ModelSimple): + """ + The source type for a Google Workspace entity context sync. + + :param value: If omitted defaults to "GOOGLE_WORKSPACE". Must be one of ["GOOGLE_WORKSPACE"]. + :type value: str + """ + + allowed_values = { + "GOOGLE_WORKSPACE", + } + GOOGLE_WORKSPACE: ClassVar["SecurityMonitoringIntegrationTypeGoogleWorkspace"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringIntegrationTypeGoogleWorkspace.GOOGLE_WORKSPACE = SecurityMonitoringIntegrationTypeGoogleWorkspace( + "GOOGLE_WORKSPACE" +) diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_type_okta.py b/src/datadog_api_client/v2/model/security_monitoring_integration_type_okta.py new file mode 100644 index 0000000000..d167c043b0 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_type_okta.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringIntegrationTypeOkta(ModelSimple): + """ + The source type for an Okta entity context sync. + + :param value: If omitted defaults to "OKTA". Must be one of ["OKTA"]. + :type value: str + """ + + allowed_values = { + "OKTA", + } + OKTA: ClassVar["SecurityMonitoringIntegrationTypeOkta"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringIntegrationTypeOkta.OKTA = SecurityMonitoringIntegrationTypeOkta("OKTA") diff --git a/src/datadog_api_client/v2/model/security_monitoring_integration_type_sentinel_one.py b/src/datadog_api_client/v2/model/security_monitoring_integration_type_sentinel_one.py new file mode 100644 index 0000000000..524acc302a --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_integration_type_sentinel_one.py @@ -0,0 +1,35 @@ +# 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. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringIntegrationTypeSentinelOne(ModelSimple): + """ + The source type for a SentinelOne entity context sync. + + :param value: If omitted defaults to "SENTINELONE". Must be one of ["SENTINELONE"]. + :type value: str + """ + + allowed_values = { + "SENTINELONE", + } + SENTINELONE: ClassVar["SecurityMonitoringIntegrationTypeSentinelOne"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringIntegrationTypeSentinelOne.SENTINELONE = SecurityMonitoringIntegrationTypeSentinelOne("SENTINELONE") diff --git a/src/datadog_api_client/v2/model/security_monitoring_okta_integration_config_create_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_okta_integration_config_create_attributes.py new file mode 100644 index 0000000000..6f32279c17 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_okta_integration_config_create_attributes.py @@ -0,0 +1,91 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_okta import ( + SecurityMonitoringIntegrationTypeOkta, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringOktaIntegrationConfigCreateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_okta import ( + SecurityMonitoringIntegrationTypeOkta, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeOkta,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigOktaSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeOkta, + name: str, + secrets: SecurityMonitoringIntegrationConfigOktaSecrets, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of an Okta entity context sync configuration to create. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for an Okta entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeOkta + + :param name: The display name for the entity context sync configuration. + :type name: str + + :param secrets: Credentials for an Okta entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigOktaSecrets + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.name = name + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_okta_integration_config_update_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_okta_integration_config_update_attributes.py new file mode 100644 index 0000000000..0a869d308e --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_okta_integration_config_update_attributes.py @@ -0,0 +1,102 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_okta import ( + SecurityMonitoringIntegrationTypeOkta, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringOktaIntegrationConfigUpdateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_okta import ( + SecurityMonitoringIntegrationTypeOkta, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "enabled": (bool,), + "integration_type": (SecurityMonitoringIntegrationTypeOkta,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigOktaSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "enabled": "enabled", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + integration_type: SecurityMonitoringIntegrationTypeOkta, + domain: Union[str, UnsetType] = unset, + enabled: Union[bool, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + secrets: Union[SecurityMonitoringIntegrationConfigOktaSecrets, UnsetType] = unset, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + Fields to update on an Okta entity context sync configuration. + + :param domain: The new domain associated with the external entity source. + :type domain: str, optional + + :param enabled: Whether the entity context sync should be enabled. + :type enabled: bool, optional + + :param integration_type: The source type for an Okta entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeOkta + + :param name: The new display name for the entity context sync configuration. + :type name: str, optional + + :param secrets: Credentials for an Okta entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigOktaSecrets, optional + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if domain is not unset: + kwargs["domain"] = domain + if enabled is not unset: + kwargs["enabled"] = enabled + if name is not unset: + kwargs["name"] = name + if secrets is not unset: + kwargs["secrets"] = secrets + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.integration_type = integration_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_okta_integration_credentials_validate_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_okta_integration_credentials_validate_attributes.py new file mode 100644 index 0000000000..157786b81f --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_okta_integration_credentials_validate_attributes.py @@ -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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_okta import ( + SecurityMonitoringIntegrationTypeOkta, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, + ) + + +class SecurityMonitoringOktaIntegrationCredentialsValidateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_okta import ( + SecurityMonitoringIntegrationTypeOkta, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeOkta,), + "secrets": (SecurityMonitoringIntegrationConfigOktaSecrets,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "secrets": "secrets", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeOkta, + secrets: SecurityMonitoringIntegrationConfigOktaSecrets, + **kwargs, + ): + """ + The Okta credentials to validate against the external entity source. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for an Okta entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeOkta + + :param secrets: Credentials for an Okta entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigOktaSecrets + """ + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_config_create_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_config_create_attributes.py new file mode 100644 index 0000000000..e6bacba5e6 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_config_create_attributes.py @@ -0,0 +1,91 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeSentinelOne,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigSentinelOneSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeSentinelOne, + name: str, + secrets: SecurityMonitoringIntegrationConfigSentinelOneSecrets, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + The attributes of a SentinelOne entity context sync configuration to create. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for a SentinelOne entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeSentinelOne + + :param name: The display name for the entity context sync configuration. + :type name: str + + :param secrets: Credentials for a SentinelOne entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigSentinelOneSecrets + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.name = name + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_config_update_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_config_update_attributes.py new file mode 100644 index 0000000000..9dd20b7840 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_config_update_attributes.py @@ -0,0 +1,102 @@ +# 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. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + +class SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( + SecurityMonitoringIntegrationConfigSettings, + ) + + return { + "domain": (str,), + "enabled": (bool,), + "integration_type": (SecurityMonitoringIntegrationTypeSentinelOne,), + "name": (str,), + "secrets": (SecurityMonitoringIntegrationConfigSentinelOneSecrets,), + "settings": (SecurityMonitoringIntegrationConfigSettings,), + } + + attribute_map = { + "domain": "domain", + "enabled": "enabled", + "integration_type": "integration_type", + "name": "name", + "secrets": "secrets", + "settings": "settings", + } + + def __init__( + self_, + integration_type: SecurityMonitoringIntegrationTypeSentinelOne, + domain: Union[str, UnsetType] = unset, + enabled: Union[bool, UnsetType] = unset, + name: Union[str, UnsetType] = unset, + secrets: Union[SecurityMonitoringIntegrationConfigSentinelOneSecrets, UnsetType] = unset, + settings: Union[SecurityMonitoringIntegrationConfigSettings, UnsetType] = unset, + **kwargs, + ): + """ + Fields to update on a SentinelOne entity context sync configuration. + + :param domain: The new domain associated with the external entity source. + :type domain: str, optional + + :param enabled: Whether the entity context sync should be enabled. + :type enabled: bool, optional + + :param integration_type: The source type for a SentinelOne entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeSentinelOne + + :param name: The new display name for the entity context sync configuration. + :type name: str, optional + + :param secrets: Credentials for a SentinelOne entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigSentinelOneSecrets, optional + + :param settings: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + :type settings: SecurityMonitoringIntegrationConfigSettings, optional + """ + if domain is not unset: + kwargs["domain"] = domain + if enabled is not unset: + kwargs["enabled"] = enabled + if name is not unset: + kwargs["name"] = name + if secrets is not unset: + kwargs["secrets"] = secrets + if settings is not unset: + kwargs["settings"] = settings + super().__init__(kwargs) + + self_.integration_type = integration_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_credentials_validate_attributes.py b/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_credentials_validate_attributes.py new file mode 100644 index 0000000000..3a157abda0 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_sentinel_one_integration_credentials_validate_attributes.py @@ -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. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, + ) + + +class SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, + ) + from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, + ) + + return { + "domain": (str,), + "integration_type": (SecurityMonitoringIntegrationTypeSentinelOne,), + "secrets": (SecurityMonitoringIntegrationConfigSentinelOneSecrets,), + } + + attribute_map = { + "domain": "domain", + "integration_type": "integration_type", + "secrets": "secrets", + } + + def __init__( + self_, + domain: str, + integration_type: SecurityMonitoringIntegrationTypeSentinelOne, + secrets: SecurityMonitoringIntegrationConfigSentinelOneSecrets, + **kwargs, + ): + """ + The SentinelOne credentials to validate against the external entity source. + + :param domain: The domain associated with the external entity source. + :type domain: str + + :param integration_type: The source type for a SentinelOne entity context sync. + :type integration_type: SecurityMonitoringIntegrationTypeSentinelOne + + :param secrets: Credentials for a SentinelOne entity context sync. + :type secrets: SecurityMonitoringIntegrationConfigSentinelOneSecrets + """ + super().__init__(kwargs) + + self_.domain = domain + self_.integration_type = integration_type + self_.secrets = secrets diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 07daae87cb..5cd901ccf1 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -7413,6 +7413,15 @@ from datadog_api_client.v2.model.security_monitoring_critical_assets_response import ( SecurityMonitoringCriticalAssetsResponse, ) +from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_create_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_config_update_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_crowd_strike_integration_credentials_validate_attributes import ( + SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes, +) from datadog_api_client.v2.model.security_monitoring_dataset_attributes_request import ( SecurityMonitoringDatasetAttributesRequest, ) @@ -7498,8 +7507,26 @@ from datadog_api_client.v2.model.security_monitoring_entra_id_azure_app_registrations_response import ( SecurityMonitoringEntraIdAzureAppRegistrationsResponse, ) +from datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_create_attributes import ( + SecurityMonitoringEntraIdIntegrationConfigCreateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_entra_id_integration_config_update_attributes import ( + SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_entra_id_integration_credentials_validate_attributes import ( + SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes, +) from datadog_api_client.v2.model.security_monitoring_filter import SecurityMonitoringFilter from datadog_api_client.v2.model.security_monitoring_filter_action import SecurityMonitoringFilterAction +from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_create_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_config_update_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_google_workspace_integration_credentials_validate_attributes import ( + SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes, +) from datadog_api_client.v2.model.security_monitoring_integration_activate_attributes import ( SecurityMonitoringIntegrationActivateAttributes, ) @@ -7524,17 +7551,29 @@ from datadog_api_client.v2.model.security_monitoring_integration_config_create_request import ( SecurityMonitoringIntegrationConfigCreateRequest, ) +from datadog_api_client.v2.model.security_monitoring_integration_config_crowd_strike_secrets import ( + SecurityMonitoringIntegrationConfigCrowdStrikeSecrets, +) from datadog_api_client.v2.model.security_monitoring_integration_config_data import ( SecurityMonitoringIntegrationConfigData, ) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_secrets import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets, +) +from datadog_api_client.v2.model.security_monitoring_integration_config_google_workspace_service_account import ( + SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount, +) +from datadog_api_client.v2.model.security_monitoring_integration_config_okta_secrets import ( + SecurityMonitoringIntegrationConfigOktaSecrets, +) from datadog_api_client.v2.model.security_monitoring_integration_config_resource_type import ( SecurityMonitoringIntegrationConfigResourceType, ) from datadog_api_client.v2.model.security_monitoring_integration_config_response import ( SecurityMonitoringIntegrationConfigResponse, ) -from datadog_api_client.v2.model.security_monitoring_integration_config_secrets import ( - SecurityMonitoringIntegrationConfigSecrets, +from datadog_api_client.v2.model.security_monitoring_integration_config_sentinel_one_secrets import ( + SecurityMonitoringIntegrationConfigSentinelOneSecrets, ) from datadog_api_client.v2.model.security_monitoring_integration_config_settings import ( SecurityMonitoringIntegrationConfigSettings, @@ -7564,7 +7603,29 @@ SecurityMonitoringIntegrationCredentialsValidateRequest, ) from datadog_api_client.v2.model.security_monitoring_integration_type import SecurityMonitoringIntegrationType +from datadog_api_client.v2.model.security_monitoring_integration_type_crowd_strike import ( + SecurityMonitoringIntegrationTypeCrowdStrike, +) +from datadog_api_client.v2.model.security_monitoring_integration_type_entra_id import ( + SecurityMonitoringIntegrationTypeEntraId, +) +from datadog_api_client.v2.model.security_monitoring_integration_type_google_workspace import ( + SecurityMonitoringIntegrationTypeGoogleWorkspace, +) +from datadog_api_client.v2.model.security_monitoring_integration_type_okta import SecurityMonitoringIntegrationTypeOkta +from datadog_api_client.v2.model.security_monitoring_integration_type_sentinel_one import ( + SecurityMonitoringIntegrationTypeSentinelOne, +) from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse +from datadog_api_client.v2.model.security_monitoring_okta_integration_config_create_attributes import ( + SecurityMonitoringOktaIntegrationConfigCreateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_okta_integration_config_update_attributes import ( + SecurityMonitoringOktaIntegrationConfigUpdateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_okta_integration_credentials_validate_attributes import ( + SecurityMonitoringOktaIntegrationCredentialsValidateAttributes, +) from datadog_api_client.v2.model.security_monitoring_paginated_suppressions_response import ( SecurityMonitoringPaginatedSuppressionsResponse, ) @@ -7682,6 +7743,15 @@ from datadog_api_client.v2.model.security_monitoring_rule_validate_payload import SecurityMonitoringRuleValidatePayload from datadog_api_client.v2.model.security_monitoring_sku import SecurityMonitoringSKU from datadog_api_client.v2.model.security_monitoring_scheduling_options import SecurityMonitoringSchedulingOptions +from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_create_attributes import ( + SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_config_update_attributes import ( + SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes, +) +from datadog_api_client.v2.model.security_monitoring_sentinel_one_integration_credentials_validate_attributes import ( + SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes, +) from datadog_api_client.v2.model.security_monitoring_signal import SecurityMonitoringSignal from datadog_api_client.v2.model.security_monitoring_signal_archive_reason import SecurityMonitoringSignalArchiveReason from datadog_api_client.v2.model.security_monitoring_signal_assignee_update_attributes import ( @@ -15015,6 +15085,9 @@ "SecurityMonitoringCriticalAssetUpdateData", "SecurityMonitoringCriticalAssetUpdateRequest", "SecurityMonitoringCriticalAssetsResponse", + "SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes", + "SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes", + "SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes", "SecurityMonitoringDatasetAttributesRequest", "SecurityMonitoringDatasetAttributesResponse", "SecurityMonitoringDatasetColumn", @@ -15052,8 +15125,14 @@ "SecurityMonitoringEntraIdAzureAppRegistrationsData", "SecurityMonitoringEntraIdAzureAppRegistrationsResourceType", "SecurityMonitoringEntraIdAzureAppRegistrationsResponse", + "SecurityMonitoringEntraIdIntegrationConfigCreateAttributes", + "SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes", + "SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes", "SecurityMonitoringFilter", "SecurityMonitoringFilterAction", + "SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes", + "SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes", + "SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes", "SecurityMonitoringIntegrationActivateAttributes", "SecurityMonitoringIntegrationActivateData", "SecurityMonitoringIntegrationActivateRequest", @@ -15062,10 +15141,14 @@ "SecurityMonitoringIntegrationConfigCreateAttributes", "SecurityMonitoringIntegrationConfigCreateData", "SecurityMonitoringIntegrationConfigCreateRequest", + "SecurityMonitoringIntegrationConfigCrowdStrikeSecrets", "SecurityMonitoringIntegrationConfigData", + "SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets", + "SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount", + "SecurityMonitoringIntegrationConfigOktaSecrets", "SecurityMonitoringIntegrationConfigResourceType", "SecurityMonitoringIntegrationConfigResponse", - "SecurityMonitoringIntegrationConfigSecrets", + "SecurityMonitoringIntegrationConfigSentinelOneSecrets", "SecurityMonitoringIntegrationConfigSettings", "SecurityMonitoringIntegrationConfigState", "SecurityMonitoringIntegrationConfigUpdateAttributes", @@ -15076,7 +15159,15 @@ "SecurityMonitoringIntegrationCredentialsValidateData", "SecurityMonitoringIntegrationCredentialsValidateRequest", "SecurityMonitoringIntegrationType", + "SecurityMonitoringIntegrationTypeCrowdStrike", + "SecurityMonitoringIntegrationTypeEntraId", + "SecurityMonitoringIntegrationTypeGoogleWorkspace", + "SecurityMonitoringIntegrationTypeOkta", + "SecurityMonitoringIntegrationTypeSentinelOne", "SecurityMonitoringListRulesResponse", + "SecurityMonitoringOktaIntegrationConfigCreateAttributes", + "SecurityMonitoringOktaIntegrationConfigUpdateAttributes", + "SecurityMonitoringOktaIntegrationCredentialsValidateAttributes", "SecurityMonitoringPaginatedSuppressionsResponse", "SecurityMonitoringReferenceTable", "SecurityMonitoringRuleAnomalyDetectionOptions", @@ -15136,6 +15227,9 @@ "SecurityMonitoringRuleValidatePayload", "SecurityMonitoringSKU", "SecurityMonitoringSchedulingOptions", + "SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes", + "SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes", + "SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes", "SecurityMonitoringSignal", "SecurityMonitoringSignalArchiveReason", "SecurityMonitoringSignalAssigneeUpdateAttributes", diff --git a/tests/v2/features/security_monitoring.feature b/tests/v2/features/security_monitoring.feature index d81e8c9f2d..c713293f46 100644 --- a/tests/v2/features/security_monitoring.feature +++ b/tests/v2/features/security_monitoring.feature @@ -1024,7 +1024,7 @@ Feature: Security Monitoring Scenario: Create an entity context sync configuration returns "Bad Request" response Given operation "CreateSecurityMonitoringIntegrationConfig" enabled And new "CreateSecurityMonitoringIntegrationConfig" request - And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration", "secrets": {"admin_email": "test@example.com"}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} When the request is sent Then the response status is 400 Bad Request @@ -1032,7 +1032,7 @@ Feature: Security Monitoring Scenario: Create an entity context sync configuration returns "OK" response Given operation "CreateSecurityMonitoringIntegrationConfig" enabled And new "CreateSecurityMonitoringIntegrationConfig" request - And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration", "secrets": {"admin_email": "test@example.com"}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} When the request is sent Then the response status is 200 OK @@ -3476,7 +3476,7 @@ Feature: Security Monitoring Given operation "UpdateSecurityMonitoringIntegrationConfig" enabled And new "UpdateSecurityMonitoringIntegrationConfig" request And request contains "integration_config_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"domain": "siem-test.com", "enabled": true, "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration (renamed)", "secrets": {"admin_email": "test@example.com"}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "enabled": true, "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration (renamed)", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} When the request is sent Then the response status is 400 Bad Request @@ -3485,7 +3485,7 @@ Feature: Security Monitoring Given operation "UpdateSecurityMonitoringIntegrationConfig" enabled And new "UpdateSecurityMonitoringIntegrationConfig" request And request contains "integration_config_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"domain": "siem-test.com", "enabled": true, "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration (renamed)", "secrets": {"admin_email": "test@example.com"}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "enabled": true, "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration (renamed)", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} When the request is sent Then the response status is 404 Not Found @@ -3494,7 +3494,7 @@ Feature: Security Monitoring Given operation "UpdateSecurityMonitoringIntegrationConfig" enabled And new "UpdateSecurityMonitoringIntegrationConfig" request And request contains "integration_config_id" parameter from "REPLACE.ME" - And body with value {"data": {"attributes": {"domain": "siem-test.com", "enabled": true, "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration (renamed)", "secrets": {"admin_email": "test@example.com"}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "enabled": true, "integration_type": "GOOGLE_WORKSPACE", "name": "My GWS Integration (renamed)", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}, "settings": {"setting1": "value1"}}, "type": "integration_config"}} When the request is sent Then the response status is 200 OK @@ -3634,7 +3634,7 @@ Feature: Security Monitoring Scenario: Validate entity context sync credentials returns "Bad Request" response Given operation "ValidateSecurityMonitoringIntegrationCredentials" enabled And new "ValidateSecurityMonitoringIntegrationCredentials" request - And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "secrets": {"admin_email": "test@example.com"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}}, "type": "integration_config"}} When the request is sent Then the response status is 400 Bad Request @@ -3642,6 +3642,6 @@ Feature: Security Monitoring Scenario: Validate entity context sync credentials returns "OK" response Given operation "ValidateSecurityMonitoringIntegrationCredentials" enabled And new "ValidateSecurityMonitoringIntegrationCredentials" request - And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "secrets": {"admin_email": "test@example.com"}}, "type": "integration_config"}} + And body with value {"data": {"attributes": {"domain": "siem-test.com", "integration_type": "GOOGLE_WORKSPACE", "secrets": {"admin_email": "admin@example.com", "service_account_json": {"client_email": "svc@my-project.iam.gserviceaccount.com", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----", "project_id": "my-project", "type": "service_account"}}}, "type": "integration_config"}} When the request is sent Then the response status is 200 OK