From 4386223183cbc0ffa0ee3bc21f6133ef7cbb647f Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Mon, 13 Jul 2026 16:29:49 +0000 Subject: [PATCH] Regenerate client from commit 86bba19 of spec repo --- .generator/schemas/v2/openapi.yaml | 527 ++++++++++++++++-- ...eateSecurityMonitoringIntegrationConfig.rb | 14 +- ...dateSecurityMonitoringIntegrationConfig.rb | 14 +- ...ecurityMonitoringIntegrationCredentials.rb | 14 +- features/v2/security_monitoring.feature | 14 +- lib/datadog_api_client/inflector.rb | 25 + .../v2/api/security_monitoring_api.rb | 2 +- ...ke_integration_config_create_attributes.rb | 196 +++++++ ...ke_integration_config_update_attributes.rb | 173 ++++++ ...gration_credentials_validate_attributes.rb | 165 ++++++ ...id_integration_config_create_attributes.rb | 175 ++++++ ...id_integration_config_update_attributes.rb | 163 ++++++ ...gration_credentials_validate_attributes.rb | 144 +++++ ...ce_integration_config_create_attributes.rb | 196 +++++++ ...ce_integration_config_update_attributes.rb | 173 ++++++ ...gration_credentials_validate_attributes.rb | 165 ++++++ ...ng_integration_config_create_attributes.rb | 188 +------ ...integration_config_crowd_strike_secrets.rb | 144 +++++ ...gration_config_google_workspace_secrets.rb | 133 +++++ ...config_google_workspace_service_account.rb | 186 +++++++ ...itoring_integration_config_okta_secrets.rb | 123 ++++ ...integration_config_sentinel_one_secrets.rb | 123 ++++ ...ng_integration_config_update_attributes.rb | 160 +----- ...nitoring_integration_config_update_data.rb | 2 +- ...gration_credentials_validate_attributes.rb | 157 +----- .../security_monitoring_integration_type.rb | 2 + ...onitoring_integration_type_crowd_strike.rb | 26 + ...ty_monitoring_integration_type_entra_id.rb | 26 + ...oring_integration_type_google_workspace.rb | 26 + ...curity_monitoring_integration_type_okta.rb | 26 + ...onitoring_integration_type_sentinel_one.rb | 26 + ...ta_integration_config_create_attributes.rb | 196 +++++++ ...ta_integration_config_update_attributes.rb | 173 ++++++ ...gration_credentials_validate_attributes.rb | 165 ++++++ ...ne_integration_config_create_attributes.rb | 196 +++++++ ...ne_integration_config_update_attributes.rb | 173 ++++++ ...gration_credentials_validate_attributes.rb | 165 ++++++ 37 files changed, 4071 insertions(+), 505 deletions(-) create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_create_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_update_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_credentials_validate_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_create_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_update_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_credentials_validate_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_create_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_update_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_credentials_validate_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_config_crowd_strike_secrets.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_secrets.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_service_account.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_config_okta_secrets.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_config_sentinel_one_secrets.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_type_crowd_strike.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_type_entra_id.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_type_google_workspace.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_type_okta.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_integration_type_sentinel_one.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_create_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_update_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_okta_integration_credentials_validate_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_create_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_update_attributes.rb create mode 100644 lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_credentials_validate_attributes.rb diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 188cceacbd70..7d5e372cbe72 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/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.rb b/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.rb index 11d69e368d0e..3642c73ae0ab 100644 --- a/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.rb +++ b/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.rb @@ -8,11 +8,19 @@ body = DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigCreateRequest.new({ data: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigCreateData.new({ - attributes: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigCreateAttributes.new({ + attributes: DatadogAPIClient::V2::SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes.new({ domain: "siem-test.com", - integration_type: DatadogAPIClient::V2::SecurityMonitoringIntegrationType::GOOGLE_WORKSPACE, + integration_type: DatadogAPIClient::V2::SecurityMonitoringIntegrationTypeGoogleWorkspace::GOOGLE_WORKSPACE, name: "My GWS Integration", - secrets: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigSecrets.new({}), + secrets: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets.new({ + admin_email: "admin@example.com", + service_account_json: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount.new({ + 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: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigSettings.new({}), }), type: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigResourceType::INTEGRATION_CONFIG, diff --git a/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.rb b/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.rb index 31abcb761a7a..92c6459be2ec 100644 --- a/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.rb +++ b/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.rb @@ -8,12 +8,20 @@ body = DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigUpdateRequest.new({ data: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigUpdateData.new({ - attributes: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigUpdateAttributes.new({ + attributes: DatadogAPIClient::V2::SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes.new({ domain: "siem-test.com", enabled: true, - integration_type: DatadogAPIClient::V2::SecurityMonitoringIntegrationType::GOOGLE_WORKSPACE, + integration_type: DatadogAPIClient::V2::SecurityMonitoringIntegrationTypeGoogleWorkspace::GOOGLE_WORKSPACE, name: "My GWS Integration (renamed)", - secrets: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigSecrets.new({}), + secrets: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets.new({ + admin_email: "admin@example.com", + service_account_json: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount.new({ + 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: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigSettings.new({}), }), type: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigResourceType::INTEGRATION_CONFIG, diff --git a/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.rb b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.rb index 955a901cdd67..1f7173a910f2 100644 --- a/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.rb +++ b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.rb @@ -8,10 +8,18 @@ body = DatadogAPIClient::V2::SecurityMonitoringIntegrationCredentialsValidateRequest.new({ data: DatadogAPIClient::V2::SecurityMonitoringIntegrationCredentialsValidateData.new({ - attributes: DatadogAPIClient::V2::SecurityMonitoringIntegrationCredentialsValidateAttributes.new({ + attributes: DatadogAPIClient::V2::SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes.new({ domain: "siem-test.com", - integration_type: DatadogAPIClient::V2::SecurityMonitoringIntegrationType::GOOGLE_WORKSPACE, - secrets: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigSecrets.new({}), + integration_type: DatadogAPIClient::V2::SecurityMonitoringIntegrationTypeGoogleWorkspace::GOOGLE_WORKSPACE, + secrets: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets.new({ + admin_email: "admin@example.com", + service_account_json: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount.new({ + 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: DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigResourceType::INTEGRATION_CONFIG, }), diff --git a/features/v2/security_monitoring.feature b/features/v2/security_monitoring.feature index d81e8c9f2d3e..c713293f4632 100644 --- a/features/v2/security_monitoring.feature +++ b/features/v2/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 diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index bb489f2e6b16..ac92875669d5 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -6458,6 +6458,9 @@ def overrides "v2.security_monitoring_critical_asset_update_attributes" => "SecurityMonitoringCriticalAssetUpdateAttributes", "v2.security_monitoring_critical_asset_update_data" => "SecurityMonitoringCriticalAssetUpdateData", "v2.security_monitoring_critical_asset_update_request" => "SecurityMonitoringCriticalAssetUpdateRequest", + "v2.security_monitoring_crowd_strike_integration_config_create_attributes" => "SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes", + "v2.security_monitoring_crowd_strike_integration_config_update_attributes" => "SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes", + "v2.security_monitoring_crowd_strike_integration_credentials_validate_attributes" => "SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes", "v2.security_monitoring_dataset_attributes_request" => "SecurityMonitoringDatasetAttributesRequest", "v2.security_monitoring_dataset_attributes_response" => "SecurityMonitoringDatasetAttributesResponse", "v2.security_monitoring_dataset_column" => "SecurityMonitoringDatasetColumn", @@ -6494,8 +6497,14 @@ def overrides "v2.security_monitoring_entra_id_azure_app_registrations_data" => "SecurityMonitoringEntraIdAzureAppRegistrationsData", "v2.security_monitoring_entra_id_azure_app_registrations_resource_type" => "SecurityMonitoringEntraIdAzureAppRegistrationsResourceType", "v2.security_monitoring_entra_id_azure_app_registrations_response" => "SecurityMonitoringEntraIdAzureAppRegistrationsResponse", + "v2.security_monitoring_entra_id_integration_config_create_attributes" => "SecurityMonitoringEntraIdIntegrationConfigCreateAttributes", + "v2.security_monitoring_entra_id_integration_config_update_attributes" => "SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes", + "v2.security_monitoring_entra_id_integration_credentials_validate_attributes" => "SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes", "v2.security_monitoring_filter" => "SecurityMonitoringFilter", "v2.security_monitoring_filter_action" => "SecurityMonitoringFilterAction", + "v2.security_monitoring_google_workspace_integration_config_create_attributes" => "SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes", + "v2.security_monitoring_google_workspace_integration_config_update_attributes" => "SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes", + "v2.security_monitoring_google_workspace_integration_credentials_validate_attributes" => "SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes", "v2.security_monitoring_integration_activate_attributes" => "SecurityMonitoringIntegrationActivateAttributes", "v2.security_monitoring_integration_activate_data" => "SecurityMonitoringIntegrationActivateData", "v2.security_monitoring_integration_activate_request" => "SecurityMonitoringIntegrationActivateRequest", @@ -6504,9 +6513,14 @@ def overrides "v2.security_monitoring_integration_config_create_attributes" => "SecurityMonitoringIntegrationConfigCreateAttributes", "v2.security_monitoring_integration_config_create_data" => "SecurityMonitoringIntegrationConfigCreateData", "v2.security_monitoring_integration_config_create_request" => "SecurityMonitoringIntegrationConfigCreateRequest", + "v2.security_monitoring_integration_config_crowd_strike_secrets" => "SecurityMonitoringIntegrationConfigCrowdStrikeSecrets", "v2.security_monitoring_integration_config_data" => "SecurityMonitoringIntegrationConfigData", + "v2.security_monitoring_integration_config_google_workspace_secrets" => "SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets", + "v2.security_monitoring_integration_config_google_workspace_service_account" => "SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount", + "v2.security_monitoring_integration_config_okta_secrets" => "SecurityMonitoringIntegrationConfigOktaSecrets", "v2.security_monitoring_integration_config_resource_type" => "SecurityMonitoringIntegrationConfigResourceType", "v2.security_monitoring_integration_config_response" => "SecurityMonitoringIntegrationConfigResponse", + "v2.security_monitoring_integration_config_sentinel_one_secrets" => "SecurityMonitoringIntegrationConfigSentinelOneSecrets", "v2.security_monitoring_integration_configs_response" => "SecurityMonitoringIntegrationConfigsResponse", "v2.security_monitoring_integration_config_state" => "SecurityMonitoringIntegrationConfigState", "v2.security_monitoring_integration_config_update_attributes" => "SecurityMonitoringIntegrationConfigUpdateAttributes", @@ -6516,7 +6530,15 @@ def overrides "v2.security_monitoring_integration_credentials_validate_data" => "SecurityMonitoringIntegrationCredentialsValidateData", "v2.security_monitoring_integration_credentials_validate_request" => "SecurityMonitoringIntegrationCredentialsValidateRequest", "v2.security_monitoring_integration_type" => "SecurityMonitoringIntegrationType", + "v2.security_monitoring_integration_type_crowd_strike" => "SecurityMonitoringIntegrationTypeCrowdStrike", + "v2.security_monitoring_integration_type_entra_id" => "SecurityMonitoringIntegrationTypeEntraId", + "v2.security_monitoring_integration_type_google_workspace" => "SecurityMonitoringIntegrationTypeGoogleWorkspace", + "v2.security_monitoring_integration_type_okta" => "SecurityMonitoringIntegrationTypeOkta", + "v2.security_monitoring_integration_type_sentinel_one" => "SecurityMonitoringIntegrationTypeSentinelOne", "v2.security_monitoring_list_rules_response" => "SecurityMonitoringListRulesResponse", + "v2.security_monitoring_okta_integration_config_create_attributes" => "SecurityMonitoringOktaIntegrationConfigCreateAttributes", + "v2.security_monitoring_okta_integration_config_update_attributes" => "SecurityMonitoringOktaIntegrationConfigUpdateAttributes", + "v2.security_monitoring_okta_integration_credentials_validate_attributes" => "SecurityMonitoringOktaIntegrationCredentialsValidateAttributes", "v2.security_monitoring_paginated_suppressions_response" => "SecurityMonitoringPaginatedSuppressionsResponse", "v2.security_monitoring_reference_table" => "SecurityMonitoringReferenceTable", "v2.security_monitoring_rule_anomaly_detection_options" => "SecurityMonitoringRuleAnomalyDetectionOptions", @@ -6575,6 +6597,9 @@ def overrides "v2.security_monitoring_rule_update_payload" => "SecurityMonitoringRuleUpdatePayload", "v2.security_monitoring_rule_validate_payload" => "SecurityMonitoringRuleValidatePayload", "v2.security_monitoring_scheduling_options" => "SecurityMonitoringSchedulingOptions", + "v2.security_monitoring_sentinel_one_integration_config_create_attributes" => "SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes", + "v2.security_monitoring_sentinel_one_integration_config_update_attributes" => "SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes", + "v2.security_monitoring_sentinel_one_integration_credentials_validate_attributes" => "SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes", "v2.security_monitoring_signal" => "SecurityMonitoringSignal", "v2.security_monitoring_signal_archive_reason" => "SecurityMonitoringSignalArchiveReason", "v2.security_monitoring_signal_assignee_update_attributes" => "SecurityMonitoringSignalAssigneeUpdateAttributes", diff --git a/lib/datadog_api_client/v2/api/security_monitoring_api.rb b/lib/datadog_api_client/v2/api/security_monitoring_api.rb index a637030c9288..4b3fcf6433ac 100644 --- a/lib/datadog_api_client/v2/api/security_monitoring_api.rb +++ b/lib/datadog_api_client/v2/api/security_monitoring_api.rb @@ -8872,7 +8872,7 @@ def list_security_monitoring_integration_configs_with_http_info(opts = {}) if @api_client.config.debugging @api_client.config.logger.debug 'Calling API: SecurityMonitoringAPI.list_security_monitoring_integration_configs ...' end - allowable_values = ['GOOGLE_WORKSPACE', 'OKTA', 'ENTRA_ID'] + allowable_values = ['GOOGLE_WORKSPACE', 'OKTA', 'ENTRA_ID', 'CROWDSTRIKE', 'SENTINELONE'] if @api_client.config.client_side_validation && opts[:'filter_integration_type'] && !allowable_values.include?(opts[:'filter_integration_type']) fail ArgumentError, "invalid value for \"filter_integration_type\", must be one of #{allowable_values}" end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_create_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_create_attributes.rb new file mode 100644 index 000000000000..551308078b25 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_create_attributes.rb @@ -0,0 +1,196 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of a CrowdStrike entity context sync configuration to create. + class SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for a CrowdStrike entity context sync. + attr_reader :integration_type + + # The display name for the entity context sync configuration. + attr_reader :name + + # Credentials for a CrowdStrike entity context sync. + attr_reader :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeCrowdStrike', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigCrowdStrikeSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @name.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_update_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_update_attributes.rb new file mode 100644 index 000000000000..55bd364d3447 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_config_update_attributes.rb @@ -0,0 +1,173 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Fields to update on a CrowdStrike entity context sync configuration. + class SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes + include BaseGenericModel + + # The new domain associated with the external entity source. + attr_accessor :domain + + # Whether the entity context sync should be enabled. + attr_accessor :enabled + + # The source type for a CrowdStrike entity context sync. + attr_reader :integration_type + + # The new display name for the entity context sync configuration. + attr_accessor :name + + # Credentials for a CrowdStrike entity context sync. + attr_accessor :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'enabled' => :'enabled', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'enabled' => :'Boolean', + :'integration_type' => :'SecurityMonitoringIntegrationTypeCrowdStrike', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigCrowdStrikeSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @integration_type.nil? + true + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + enabled == o.enabled && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, enabled, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_credentials_validate_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_credentials_validate_attributes.rb new file mode 100644 index 000000000000..efb78fb7103c --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_crowd_strike_integration_credentials_validate_attributes.rb @@ -0,0 +1,165 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The CrowdStrike credentials to validate against the external entity source. + class SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for a CrowdStrike entity context sync. + attr_reader :integration_type + + # Credentials for a CrowdStrike entity context sync. + attr_reader :secrets + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'secrets' => :'secrets' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeCrowdStrike', + :'secrets' => :'SecurityMonitoringIntegrationConfigCrowdStrikeSecrets' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + secrets == o.secrets && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, secrets, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_create_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_create_attributes.rb new file mode 100644 index 000000000000..6b906d7a40f4 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_create_attributes.rb @@ -0,0 +1,175 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of an Entra ID entity context sync configuration to create. + class SecurityMonitoringEntraIdIntegrationConfigCreateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for an Entra ID entity context sync. + attr_reader :integration_type + + # The display name for the entity context sync configuration. + attr_reader :name + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeEntraId', + :'name' => :'String', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringEntraIdIntegrationConfigCreateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @name.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + name == o.name && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, name, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_update_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_update_attributes.rb new file mode 100644 index 000000000000..2869a2af4212 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_config_update_attributes.rb @@ -0,0 +1,163 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Fields to update on an Entra ID entity context sync configuration. + class SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes + include BaseGenericModel + + # The new domain associated with the external entity source. + attr_accessor :domain + + # Whether the entity context sync should be enabled. + attr_accessor :enabled + + # The source type for an Entra ID entity context sync. + attr_reader :integration_type + + # The new display name for the entity context sync configuration. + attr_accessor :name + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'enabled' => :'enabled', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'enabled' => :'Boolean', + :'integration_type' => :'SecurityMonitoringIntegrationTypeEntraId', + :'name' => :'String', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @integration_type.nil? + true + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + enabled == o.enabled && + integration_type == o.integration_type && + name == o.name && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, enabled, integration_type, name, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_credentials_validate_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_credentials_validate_attributes.rb new file mode 100644 index 000000000000..4e42eca7ae1e --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_entra_id_integration_credentials_validate_attributes.rb @@ -0,0 +1,144 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The Entra ID credentials to validate against the external entity source. + class SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for an Entra ID entity context sync. + attr_reader :integration_type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeEntraId' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_create_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_create_attributes.rb new file mode 100644 index 000000000000..0f57bbfe75c3 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_create_attributes.rb @@ -0,0 +1,196 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of a Google Workspace entity context sync configuration to create. + class SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for a Google Workspace entity context sync. + attr_reader :integration_type + + # The display name for the entity context sync configuration. + attr_reader :name + + # Credentials for a Google Workspace entity context sync. + attr_reader :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeGoogleWorkspace', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @name.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_update_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_update_attributes.rb new file mode 100644 index 000000000000..2b6d9ef01ec6 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_config_update_attributes.rb @@ -0,0 +1,173 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Fields to update on a Google Workspace entity context sync configuration. + class SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes + include BaseGenericModel + + # The new domain associated with the external entity source. + attr_accessor :domain + + # Whether the entity context sync should be enabled. + attr_accessor :enabled + + # The source type for a Google Workspace entity context sync. + attr_reader :integration_type + + # The new display name for the entity context sync configuration. + attr_accessor :name + + # Credentials for a Google Workspace entity context sync. + attr_accessor :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'enabled' => :'enabled', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'enabled' => :'Boolean', + :'integration_type' => :'SecurityMonitoringIntegrationTypeGoogleWorkspace', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @integration_type.nil? + true + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + enabled == o.enabled && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, enabled, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_credentials_validate_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_credentials_validate_attributes.rb new file mode 100644 index 000000000000..fccc89c6fc56 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_google_workspace_integration_credentials_validate_attributes.rb @@ -0,0 +1,165 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The Google Workspace credentials to validate against the external entity source. + class SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for a Google Workspace entity context sync. + attr_reader :integration_type + + # Credentials for a Google Workspace entity context sync. + attr_reader :secrets + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'secrets' => :'secrets' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeGoogleWorkspace', + :'secrets' => :'SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + secrets == o.secrets && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, secrets, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_create_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_create_attributes.rb index 09e35069f748..76b39accb1e4 100644 --- a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_create_attributes.rb +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_create_attributes.rb @@ -18,169 +18,33 @@ module DatadogAPIClient::V2 # The attributes of the entity context sync configuration to create. - class SecurityMonitoringIntegrationConfigCreateAttributes - include BaseGenericModel - - # The domain associated with the external entity source. - attr_reader :domain - - # The type of external source that provides entities to Cloud SIEM. - attr_reader :integration_type - - # The display name for the entity context sync configuration. - attr_reader :name - - # 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`). - attr_accessor :secrets - - # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. - attr_accessor :settings - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'domain' => :'domain', - :'integration_type' => :'integration_type', - :'name' => :'name', - :'secrets' => :'secrets', - :'settings' => :'settings' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'domain' => :'String', - :'integration_type' => :'SecurityMonitoringIntegrationType', - :'name' => :'String', - :'secrets' => :'Hash', - :'settings' => :'Hash' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigCreateAttributes` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'domain') - self.domain = attributes[:'domain'] - end - - if attributes.key?(:'integration_type') - self.integration_type = attributes[:'integration_type'] - end - - if attributes.key?(:'name') - self.name = attributes[:'name'] - end - - if attributes.key?(:'secrets') - self.secrets = attributes[:'secrets'] - end - - if attributes.key?(:'settings') - self.settings = attributes[:'settings'] - end - end - - # Check to see if the all the properties in the model are valid - # @return true if the model is valid - # @!visibility private - def valid? - return false if @domain.nil? - return false if @integration_type.nil? - return false if @name.nil? - true - end - - # Custom attribute writer method with validation - # @param domain [Object] Object to be assigned - # @!visibility private - def domain=(domain) - if domain.nil? - fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + module SecurityMonitoringIntegrationConfigCreateAttributes + class << self + include BaseOneOfModel + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'SecurityMonitoringGoogleWorkspaceIntegrationConfigCreateAttributes', + :'SecurityMonitoringOktaIntegrationConfigCreateAttributes', + :'SecurityMonitoringEntraIdIntegrationConfigCreateAttributes', + :'SecurityMonitoringCrowdStrikeIntegrationConfigCreateAttributes', + :'SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes' + ] + end + # Discriminator's property name (OpenAPI v3) + def openapi_discriminator_name + :'integration_type' + end + + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + discriminator_value = data[openapi_discriminator_name] + return nil unless discriminator_value + end - @domain = domain - end - - # Custom attribute writer method with validation - # @param integration_type [Object] Object to be assigned - # @!visibility private - def integration_type=(integration_type) - if integration_type.nil? - fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' - end - @integration_type = integration_type - end - - # Custom attribute writer method with validation - # @param name [Object] Object to be assigned - # @!visibility private - def name=(name) - if name.nil? - fail ArgumentError, 'invalid value for "name", name cannot be nil.' - end - @name = name - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - domain == o.domain && - integration_type == o.integration_type && - name == o.name && - secrets == o.secrets && - settings == o.settings && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [domain, integration_type, name, secrets, settings, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_crowd_strike_secrets.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_crowd_strike_secrets.rb new file mode 100644 index 000000000000..2a3a22691cfa --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_crowd_strike_secrets.rb @@ -0,0 +1,144 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Credentials for a CrowdStrike entity context sync. + class SecurityMonitoringIntegrationConfigCrowdStrikeSecrets + include BaseGenericModel + + # The CrowdStrike API client ID. + attr_reader :client_id + + # The CrowdStrike API client secret. + attr_reader :client_secret + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'client_id' => :'client_id', + :'client_secret' => :'client_secret' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'client_id' => :'String', + :'client_secret' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigCrowdStrikeSecrets` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'client_id') + self.client_id = attributes[:'client_id'] + end + + if attributes.key?(:'client_secret') + self.client_secret = attributes[:'client_secret'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @client_id.nil? + return false if @client_secret.nil? + true + end + + # Custom attribute writer method with validation + # @param client_id [Object] Object to be assigned + # @!visibility private + def client_id=(client_id) + if client_id.nil? + fail ArgumentError, 'invalid value for "client_id", client_id cannot be nil.' + end + @client_id = client_id + end + + # Custom attribute writer method with validation + # @param client_secret [Object] Object to be assigned + # @!visibility private + def client_secret=(client_secret) + if client_secret.nil? + fail ArgumentError, 'invalid value for "client_secret", client_secret cannot be nil.' + end + @client_secret = client_secret + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + client_id == o.client_id && + client_secret == o.client_secret && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [client_id, client_secret, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_secrets.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_secrets.rb new file mode 100644 index 000000000000..76bad9a3b4f6 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_secrets.rb @@ -0,0 +1,133 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Credentials for a Google Workspace entity context sync. + class SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets + include BaseGenericModel + + # The admin email to impersonate for domain-wide delegation. + attr_accessor :admin_email + + # The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. + attr_reader :service_account_json + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'admin_email' => :'admin_email', + :'service_account_json' => :'service_account_json' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'admin_email' => :'String', + :'service_account_json' => :'SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceSecrets` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'admin_email') + self.admin_email = attributes[:'admin_email'] + end + + if attributes.key?(:'service_account_json') + self.service_account_json = attributes[:'service_account_json'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @service_account_json.nil? + true + end + + # Custom attribute writer method with validation + # @param service_account_json [Object] Object to be assigned + # @!visibility private + def service_account_json=(service_account_json) + if service_account_json.nil? + fail ArgumentError, 'invalid value for "service_account_json", service_account_json cannot be nil.' + end + @service_account_json = service_account_json + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + admin_email == o.admin_email && + service_account_json == o.service_account_json && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [admin_email, service_account_json, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_service_account.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_service_account.rb new file mode 100644 index 000000000000..8a7894782471 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_google_workspace_service_account.rb @@ -0,0 +1,186 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The Google Cloud service account JSON used to authenticate against the Google Workspace Admin SDK. Additional keys beyond those documented are preserved. + class SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount + include BaseGenericModel + + # The service account client email. + attr_reader :client_email + + # The service account private key. + attr_reader :private_key + + # The Google Cloud project ID that owns the service account. + attr_reader :project_id + + # The service account type. Must be `service_account`. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'client_email' => :'client_email', + :'private_key' => :'private_key', + :'project_id' => :'project_id', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'client_email' => :'String', + :'private_key' => :'String', + :'project_id' => :'String', + :'type' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigGoogleWorkspaceServiceAccount` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'client_email') + self.client_email = attributes[:'client_email'] + end + + if attributes.key?(:'private_key') + self.private_key = attributes[:'private_key'] + end + + if attributes.key?(:'project_id') + self.project_id = attributes[:'project_id'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @client_email.nil? + return false if @private_key.nil? + return false if @project_id.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param client_email [Object] Object to be assigned + # @!visibility private + def client_email=(client_email) + if client_email.nil? + fail ArgumentError, 'invalid value for "client_email", client_email cannot be nil.' + end + @client_email = client_email + end + + # Custom attribute writer method with validation + # @param private_key [Object] Object to be assigned + # @!visibility private + def private_key=(private_key) + if private_key.nil? + fail ArgumentError, 'invalid value for "private_key", private_key cannot be nil.' + end + @private_key = private_key + end + + # Custom attribute writer method with validation + # @param project_id [Object] Object to be assigned + # @!visibility private + def project_id=(project_id) + if project_id.nil? + fail ArgumentError, 'invalid value for "project_id", project_id cannot be nil.' + end + @project_id = project_id + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + client_email == o.client_email && + private_key == o.private_key && + project_id == o.project_id && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [client_email, private_key, project_id, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_okta_secrets.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_okta_secrets.rb new file mode 100644 index 000000000000..a0770f312514 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_okta_secrets.rb @@ -0,0 +1,123 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Credentials for an Okta entity context sync. + class SecurityMonitoringIntegrationConfigOktaSecrets + include BaseGenericModel + + # The Okta API token used to authenticate against the Okta API. + attr_reader :api_token + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'api_token' => :'api_token' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'api_token' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigOktaSecrets` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'api_token') + self.api_token = attributes[:'api_token'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @api_token.nil? + true + end + + # Custom attribute writer method with validation + # @param api_token [Object] Object to be assigned + # @!visibility private + def api_token=(api_token) + if api_token.nil? + fail ArgumentError, 'invalid value for "api_token", api_token cannot be nil.' + end + @api_token = api_token + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + api_token == o.api_token && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [api_token, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_sentinel_one_secrets.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_sentinel_one_secrets.rb new file mode 100644 index 000000000000..d82161bdf439 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_sentinel_one_secrets.rb @@ -0,0 +1,123 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Credentials for a SentinelOne entity context sync. + class SecurityMonitoringIntegrationConfigSentinelOneSecrets + include BaseGenericModel + + # The SentinelOne API token. + attr_reader :api_token + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'api_token' => :'api_token' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'api_token' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigSentinelOneSecrets` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'api_token') + self.api_token = attributes[:'api_token'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @api_token.nil? + true + end + + # Custom attribute writer method with validation + # @param api_token [Object] Object to be assigned + # @!visibility private + def api_token=(api_token) + if api_token.nil? + fail ArgumentError, 'invalid value for "api_token", api_token cannot be nil.' + end + @api_token = api_token + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + api_token == o.api_token && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [api_token, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_attributes.rb index aec07422c0b9..d23755ffccc6 100644 --- a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_attributes.rb +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_attributes.rb @@ -17,140 +17,34 @@ require 'time' module DatadogAPIClient::V2 - # Fields to update on the entity context sync configuration. All fields are optional. - class SecurityMonitoringIntegrationConfigUpdateAttributes - include BaseGenericModel - - # The new domain associated with the external entity source. - attr_accessor :domain - - # Whether the entity context sync should be enabled. - attr_accessor :enabled - - # The type of external source that provides entities to Cloud SIEM. - attr_accessor :integration_type - - # The new display name for the entity context sync configuration. - attr_accessor :name - - # 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`). - attr_accessor :secrets - - # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. - attr_accessor :settings - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'domain' => :'domain', - :'enabled' => :'enabled', - :'integration_type' => :'integration_type', - :'name' => :'name', - :'secrets' => :'secrets', - :'settings' => :'settings' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'domain' => :'String', - :'enabled' => :'Boolean', - :'integration_type' => :'SecurityMonitoringIntegrationType', - :'name' => :'String', - :'secrets' => :'Hash', - :'settings' => :'Hash' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationConfigUpdateAttributes` initialize method" - end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'domain') - self.domain = attributes[:'domain'] - end - - if attributes.key?(:'enabled') - self.enabled = attributes[:'enabled'] + # Fields to update on the entity context sync configuration. All fields other than the integration type are optional. + module SecurityMonitoringIntegrationConfigUpdateAttributes + class << self + include BaseOneOfModel + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'SecurityMonitoringGoogleWorkspaceIntegrationConfigUpdateAttributes', + :'SecurityMonitoringOktaIntegrationConfigUpdateAttributes', + :'SecurityMonitoringEntraIdIntegrationConfigUpdateAttributes', + :'SecurityMonitoringCrowdStrikeIntegrationConfigUpdateAttributes', + :'SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes' + ] + end + # Discriminator's property name (OpenAPI v3) + def openapi_discriminator_name + :'integration_type' + end + + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + discriminator_value = data[openapi_discriminator_name] + return nil unless discriminator_value + end - - if attributes.key?(:'integration_type') - self.integration_type = attributes[:'integration_type'] - end - - if attributes.key?(:'name') - self.name = attributes[:'name'] - end - - if attributes.key?(:'secrets') - self.secrets = attributes[:'secrets'] - end - - if attributes.key?(:'settings') - self.settings = attributes[:'settings'] - end - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - domain == o.domain && - enabled == o.enabled && - integration_type == o.integration_type && - name == o.name && - secrets == o.secrets && - settings == o.settings && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [domain, enabled, integration_type, name, secrets, settings, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_data.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_data.rb index 4177da3f12fc..13a846937da7 100644 --- a/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_data.rb +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_config_update_data.rb @@ -21,7 +21,7 @@ module DatadogAPIClient::V2 class SecurityMonitoringIntegrationConfigUpdateData include BaseGenericModel - # 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. attr_reader :attributes # The type of the resource. The value should always be `integration_config`. diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_credentials_validate_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_credentials_validate_attributes.rb index e273946c6fda..f1ee6378270a 100644 --- a/lib/datadog_api_client/v2/models/security_monitoring_integration_credentials_validate_attributes.rb +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_credentials_validate_attributes.rb @@ -18,138 +18,33 @@ module DatadogAPIClient::V2 # The credentials to validate against the external entity source. - class SecurityMonitoringIntegrationCredentialsValidateAttributes - include BaseGenericModel - - # The domain associated with the external entity source. - attr_reader :domain - - # The type of external source that provides entities to Cloud SIEM. - attr_reader :integration_type - - # 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`). - attr_accessor :secrets - - attr_accessor :additional_properties - - # Attribute mapping from ruby-style variable name to JSON key. - # @!visibility private - def self.attribute_map - { - :'domain' => :'domain', - :'integration_type' => :'integration_type', - :'secrets' => :'secrets' - } - end - - # Attribute type mapping. - # @!visibility private - def self.openapi_types - { - :'domain' => :'String', - :'integration_type' => :'SecurityMonitoringIntegrationType', - :'secrets' => :'Hash' - } - end - - # Initializes the object - # @param attributes [Hash] Model attributes in the form of hash - # @!visibility private - def initialize(attributes = {}) - if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringIntegrationCredentialsValidateAttributes` initialize method" + module SecurityMonitoringIntegrationCredentialsValidateAttributes + class << self + include BaseOneOfModel + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'SecurityMonitoringGoogleWorkspaceIntegrationCredentialsValidateAttributes', + :'SecurityMonitoringOktaIntegrationCredentialsValidateAttributes', + :'SecurityMonitoringEntraIdIntegrationCredentialsValidateAttributes', + :'SecurityMonitoringCrowdStrikeIntegrationCredentialsValidateAttributes', + :'SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes' + ] + end + # Discriminator's property name (OpenAPI v3) + def openapi_discriminator_name + :'integration_type' + end + + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + discriminator_value = data[openapi_discriminator_name] + return nil unless discriminator_value + end - - self.additional_properties = {} - # check to see if the attribute exists and convert string to symbol for hash key - attributes = attributes.each_with_object({}) { |(k, v), h| - if (!self.class.attribute_map.key?(k.to_sym)) - self.additional_properties[k.to_sym] = v - else - h[k.to_sym] = v - end - } - - if attributes.key?(:'domain') - self.domain = attributes[:'domain'] - end - - if attributes.key?(:'integration_type') - self.integration_type = attributes[:'integration_type'] - end - - if attributes.key?(:'secrets') - self.secrets = attributes[:'secrets'] - end - end - - # Check to see if the all the properties in the model are valid - # @return true if the model is valid - # @!visibility private - def valid? - return false if @domain.nil? - return false if @integration_type.nil? - true - end - - # Custom attribute writer method with validation - # @param domain [Object] Object to be assigned - # @!visibility private - def domain=(domain) - if domain.nil? - fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' - end - @domain = domain - end - - # Custom attribute writer method with validation - # @param integration_type [Object] Object to be assigned - # @!visibility private - def integration_type=(integration_type) - if integration_type.nil? - fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' - end - @integration_type = integration_type - end - - # Returns the object in the form of hash, with additionalProperties support. - # @return [Hash] Returns the object in the form of hash - # @!visibility private - def to_hash - hash = {} - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.include?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - hash[param] = _to_hash(value) - end - self.additional_properties.each_pair do |attr, value| - hash[attr] = value - end - hash - end - - # Checks equality by comparing each attribute. - # @param o [Object] Object to be compared - # @!visibility private - def ==(o) - return true if self.equal?(o) - self.class == o.class && - domain == o.domain && - integration_type == o.integration_type && - secrets == o.secrets && - additional_properties == o.additional_properties - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - # @!visibility private - def hash - [domain, integration_type, secrets, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_type.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_type.rb index 693bf3167b22..8c2802fbdf72 100644 --- a/lib/datadog_api_client/v2/models/security_monitoring_integration_type.rb +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_type.rb @@ -24,5 +24,7 @@ class SecurityMonitoringIntegrationType GOOGLE_WORKSPACE = "GOOGLE_WORKSPACE".freeze OKTA = "OKTA".freeze ENTRA_ID = "ENTRA_ID".freeze + CROWDSTRIKE = "CROWDSTRIKE".freeze + SENTINELONE = "SENTINELONE".freeze end end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_type_crowd_strike.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_crowd_strike.rb new file mode 100644 index 000000000000..1b72e07b901b --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_crowd_strike.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The source type for a CrowdStrike entity context sync. + class SecurityMonitoringIntegrationTypeCrowdStrike + include BaseEnumModel + + CROWDSTRIKE = "CROWDSTRIKE".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_type_entra_id.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_entra_id.rb new file mode 100644 index 000000000000..470397b00cc3 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_entra_id.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The source type for an Entra ID entity context sync. + class SecurityMonitoringIntegrationTypeEntraId + include BaseEnumModel + + ENTRA_ID = "ENTRA_ID".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_type_google_workspace.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_google_workspace.rb new file mode 100644 index 000000000000..b002083433c5 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_google_workspace.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The source type for a Google Workspace entity context sync. + class SecurityMonitoringIntegrationTypeGoogleWorkspace + include BaseEnumModel + + GOOGLE_WORKSPACE = "GOOGLE_WORKSPACE".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_type_okta.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_okta.rb new file mode 100644 index 000000000000..ef4358d46683 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_okta.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The source type for an Okta entity context sync. + class SecurityMonitoringIntegrationTypeOkta + include BaseEnumModel + + OKTA = "OKTA".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_integration_type_sentinel_one.rb b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_sentinel_one.rb new file mode 100644 index 000000000000..260e14b91e06 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_integration_type_sentinel_one.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The source type for a SentinelOne entity context sync. + class SecurityMonitoringIntegrationTypeSentinelOne + include BaseEnumModel + + SENTINELONE = "SENTINELONE".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_create_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_create_attributes.rb new file mode 100644 index 000000000000..5b0108e3f790 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_create_attributes.rb @@ -0,0 +1,196 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of an Okta entity context sync configuration to create. + class SecurityMonitoringOktaIntegrationConfigCreateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for an Okta entity context sync. + attr_reader :integration_type + + # The display name for the entity context sync configuration. + attr_reader :name + + # Credentials for an Okta entity context sync. + attr_reader :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeOkta', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigOktaSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringOktaIntegrationConfigCreateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @name.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_update_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_update_attributes.rb new file mode 100644 index 000000000000..5b10faa22074 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_config_update_attributes.rb @@ -0,0 +1,173 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Fields to update on an Okta entity context sync configuration. + class SecurityMonitoringOktaIntegrationConfigUpdateAttributes + include BaseGenericModel + + # The new domain associated with the external entity source. + attr_accessor :domain + + # Whether the entity context sync should be enabled. + attr_accessor :enabled + + # The source type for an Okta entity context sync. + attr_reader :integration_type + + # The new display name for the entity context sync configuration. + attr_accessor :name + + # Credentials for an Okta entity context sync. + attr_accessor :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'enabled' => :'enabled', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'enabled' => :'Boolean', + :'integration_type' => :'SecurityMonitoringIntegrationTypeOkta', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigOktaSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringOktaIntegrationConfigUpdateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @integration_type.nil? + true + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + enabled == o.enabled && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, enabled, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_credentials_validate_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_credentials_validate_attributes.rb new file mode 100644 index 000000000000..f314eedb2a78 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_okta_integration_credentials_validate_attributes.rb @@ -0,0 +1,165 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The Okta credentials to validate against the external entity source. + class SecurityMonitoringOktaIntegrationCredentialsValidateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for an Okta entity context sync. + attr_reader :integration_type + + # Credentials for an Okta entity context sync. + attr_reader :secrets + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'secrets' => :'secrets' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeOkta', + :'secrets' => :'SecurityMonitoringIntegrationConfigOktaSecrets' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringOktaIntegrationCredentialsValidateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + secrets == o.secrets && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, secrets, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_create_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_create_attributes.rb new file mode 100644 index 000000000000..caa5829f0516 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_create_attributes.rb @@ -0,0 +1,196 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The attributes of a SentinelOne entity context sync configuration to create. + class SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for a SentinelOne entity context sync. + attr_reader :integration_type + + # The display name for the entity context sync configuration. + attr_reader :name + + # Credentials for a SentinelOne entity context sync. + attr_reader :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeSentinelOne', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigSentinelOneSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringSentinelOneIntegrationConfigCreateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @name.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_update_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_update_attributes.rb new file mode 100644 index 000000000000..b313df9bb352 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_config_update_attributes.rb @@ -0,0 +1,173 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Fields to update on a SentinelOne entity context sync configuration. + class SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes + include BaseGenericModel + + # The new domain associated with the external entity source. + attr_accessor :domain + + # Whether the entity context sync should be enabled. + attr_accessor :enabled + + # The source type for a SentinelOne entity context sync. + attr_reader :integration_type + + # The new display name for the entity context sync configuration. + attr_accessor :name + + # Credentials for a SentinelOne entity context sync. + attr_accessor :secrets + + # Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + attr_accessor :settings + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'enabled' => :'enabled', + :'integration_type' => :'integration_type', + :'name' => :'name', + :'secrets' => :'secrets', + :'settings' => :'settings' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'enabled' => :'Boolean', + :'integration_type' => :'SecurityMonitoringIntegrationTypeSentinelOne', + :'name' => :'String', + :'secrets' => :'SecurityMonitoringIntegrationConfigSentinelOneSecrets', + :'settings' => :'Hash' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringSentinelOneIntegrationConfigUpdateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'enabled') + self.enabled = attributes[:'enabled'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + + if attributes.key?(:'settings') + self.settings = attributes[:'settings'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @integration_type.nil? + true + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + enabled == o.enabled && + integration_type == o.integration_type && + name == o.name && + secrets == o.secrets && + settings == o.settings && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, enabled, integration_type, name, secrets, settings, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_credentials_validate_attributes.rb b/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_credentials_validate_attributes.rb new file mode 100644 index 000000000000..ee0dc0acef3c --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_monitoring_sentinel_one_integration_credentials_validate_attributes.rb @@ -0,0 +1,165 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + 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 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The SentinelOne credentials to validate against the external entity source. + class SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes + include BaseGenericModel + + # The domain associated with the external entity source. + attr_reader :domain + + # The source type for a SentinelOne entity context sync. + attr_reader :integration_type + + # Credentials for a SentinelOne entity context sync. + attr_reader :secrets + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'domain' => :'domain', + :'integration_type' => :'integration_type', + :'secrets' => :'secrets' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'domain' => :'String', + :'integration_type' => :'SecurityMonitoringIntegrationTypeSentinelOne', + :'secrets' => :'SecurityMonitoringIntegrationConfigSentinelOneSecrets' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::SecurityMonitoringSentinelOneIntegrationCredentialsValidateAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'domain') + self.domain = attributes[:'domain'] + end + + if attributes.key?(:'integration_type') + self.integration_type = attributes[:'integration_type'] + end + + if attributes.key?(:'secrets') + self.secrets = attributes[:'secrets'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @domain.nil? + return false if @integration_type.nil? + return false if @secrets.nil? + true + end + + # Custom attribute writer method with validation + # @param domain [Object] Object to be assigned + # @!visibility private + def domain=(domain) + if domain.nil? + fail ArgumentError, 'invalid value for "domain", domain cannot be nil.' + end + @domain = domain + end + + # Custom attribute writer method with validation + # @param integration_type [Object] Object to be assigned + # @!visibility private + def integration_type=(integration_type) + if integration_type.nil? + fail ArgumentError, 'invalid value for "integration_type", integration_type cannot be nil.' + end + @integration_type = integration_type + end + + # Custom attribute writer method with validation + # @param secrets [Object] Object to be assigned + # @!visibility private + def secrets=(secrets) + if secrets.nil? + fail ArgumentError, 'invalid value for "secrets", secrets cannot be nil.' + end + @secrets = secrets + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + domain == o.domain && + integration_type == o.integration_type && + secrets == o.secrets && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [domain, integration_type, secrets, additional_properties].hash + end + end +end