From 263a63cdfb2df1f75f8c1d2b3ff5cab62dff22ea Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Tue, 19 May 2026 13:03:21 +0000 Subject: [PATCH] Regenerate client from commit 16b57af of spec repo --- .generator/schemas/v2/openapi.yaml | 1734 ++++++++ ...reateSampleLogGenerationSubscriptions.java | 46 + ...CreateSampleLogGenerationSubscription.java | 42 + ...teSecurityMonitoringIntegrationConfig.java | 46 + ...DeleteSampleLogGenerationSubscription.java | 27 + ...teSecurityMonitoringIntegrationConfig.java | 24 + .../security-monitoring/GetEntityContext.java | 25 + ...etSecurityMonitoringIntegrationConfig.java | 27 + .../GetSignalEntities.java | 25 + .../ListLogFormattingIssues.java | 25 + .../ListSampleLogGenerationSubscriptions.java | 27 + .../ListSecurityFilterVersions.java | 24 + ...tSecurityMonitoringIntegrationConfigs.java | 27 + ...teSecurityMonitoringIntegrationConfig.java | 47 + ...teSecurityMonitoringIntegrationConfig.java | 26 + ...urityMonitoringIntegrationCredentials.java | 43 + .../com/datadog/api/client/ApiClient.java | 14 + .../client/v2/api/SecurityMonitoringApi.java | 3541 +++++++++++++++-- .../client/v2/model/EntityContextEntity.java | 206 + .../model/EntityContextEntityAttributes.java | 158 + .../client/v2/model/EntityContextPage.java | 144 + .../v2/model/EntityContextResponse.java | 189 + .../v2/model/EntityContextResponseMeta.java | 177 + .../v2/model/EntityContextRevision.java | 214 + .../model/LogFormattingIssueAttributes.java | 155 + .../v2/model/LogFormattingIssueData.java | 213 + .../v2/model/LogFormattingIssueReason.java | 62 + .../v2/model/LogFormattingIssueType.java | 57 + .../v2/model/LogFormattingIssuesResponse.java | 156 + ...gGenerationBulkSubscriptionAttributes.java | 192 + ...mpleLogGenerationBulkSubscriptionData.java | 188 + ...LogGenerationBulkSubscriptionItemMeta.java | 178 + ...eLogGenerationBulkSubscriptionRequest.java | 153 + ...GenerationBulkSubscriptionRequestType.java | 63 + ...LogGenerationBulkSubscriptionResponse.java | 161 + ...gGenerationBulkSubscriptionResultItem.java | 249 ++ .../v2/model/SampleLogGenerationDuration.java | 61 + ...leLogGenerationSubscriptionAttributes.java | 270 ++ ...enerationSubscriptionCreateAttributes.java | 183 + ...leLogGenerationSubscriptionCreateData.java | 188 + ...ogGenerationSubscriptionCreateRequest.java | 151 + .../SampleLogGenerationSubscriptionData.java | 215 + ...eLogGenerationSubscriptionRequestType.java | 63 + ...LogGenerationSubscriptionResourceType.java | 63 + ...mpleLogGenerationSubscriptionResponse.java | 149 + ...SampleLogGenerationSubscriptionStatus.java | 82 + ...pleLogGenerationSubscriptionsResponse.java | 194 + ...ogGenerationSubscriptionsResponseMeta.java | 152 + ...ogGenerationSubscriptionsStatusFilter.java | 67 + .../v2/model/SecurityFilterVersion.java | 210 + .../SecurityFilterVersionAttributes.java | 215 + .../v2/model/SecurityFilterVersionEntry.java | 372 ++ .../v2/model/SecurityFilterVersionType.java | 59 + .../model/SecurityFilterVersionsResponse.java | 157 + ...MonitoringIntegrationConfigAttributes.java | 374 ++ ...ringIntegrationConfigCreateAttributes.java | 291 ++ ...MonitoringIntegrationConfigCreateData.java | 189 + ...itoringIntegrationConfigCreateRequest.java | 152 + ...curityMonitoringIntegrationConfigData.java | 216 + ...nitoringIntegrationConfigResourceType.java | 63 + ...tyMonitoringIntegrationConfigResponse.java | 151 + ...urityMonitoringIntegrationConfigState.java | 67 + ...ringIntegrationConfigUpdateAttributes.java | 309 ++ ...MonitoringIntegrationConfigUpdateData.java | 189 + ...itoringIntegrationConfigUpdateRequest.java | 152 + ...yMonitoringIntegrationConfigsResponse.java | 161 + ...egrationCredentialsValidateAttributes.java | 228 ++ ...ingIntegrationCredentialsValidateData.java | 193 + ...IntegrationCredentialsValidateRequest.java | 158 + .../SecurityMonitoringIntegrationType.java | 62 + .../v2/model/SignalEntitiesAttributes.java | 152 + .../client/v2/model/SignalEntitiesData.java | 209 + .../v2/model/SignalEntitiesResponse.java | 145 + .../client/v2/model/SignalEntitiesType.java | 53 + .../client/v2/api/security_monitoring.feature | 235 ++ .../com/datadog/api/client/v2/api/undo.json | 104 + 76 files changed, 15021 insertions(+), 368 deletions(-) create mode 100644 examples/v2/security-monitoring/BulkCreateSampleLogGenerationSubscriptions.java create mode 100644 examples/v2/security-monitoring/CreateSampleLogGenerationSubscription.java create mode 100644 examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.java create mode 100644 examples/v2/security-monitoring/DeleteSampleLogGenerationSubscription.java create mode 100644 examples/v2/security-monitoring/DeleteSecurityMonitoringIntegrationConfig.java create mode 100644 examples/v2/security-monitoring/GetEntityContext.java create mode 100644 examples/v2/security-monitoring/GetSecurityMonitoringIntegrationConfig.java create mode 100644 examples/v2/security-monitoring/GetSignalEntities.java create mode 100644 examples/v2/security-monitoring/ListLogFormattingIssues.java create mode 100644 examples/v2/security-monitoring/ListSampleLogGenerationSubscriptions.java create mode 100644 examples/v2/security-monitoring/ListSecurityFilterVersions.java create mode 100644 examples/v2/security-monitoring/ListSecurityMonitoringIntegrationConfigs.java create mode 100644 examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.java create mode 100644 examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationConfig.java create mode 100644 examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/EntityContextEntity.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/EntityContextEntityAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/EntityContextPage.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/EntityContextResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/EntityContextResponseMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/EntityContextRevision.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueReason.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LogFormattingIssuesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionItemMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequestType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResultItem.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationDuration.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionRequestType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResourceType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionStatus.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponseMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsStatusFilter.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersion.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionEntry.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResourceType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigState.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SignalEntitiesAttributes.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SignalEntitiesData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SignalEntitiesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/SignalEntitiesType.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 4e9c630923b..0e2b4792497 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1451,6 +1451,13 @@ components: required: true schema: type: string + SampleLogGenerationContentPackID: + description: The identifier of the Cloud SIEM content pack to operate on (for example, `aws-cloudtrail`). + in: path + name: content_pack_id + required: true + schema: + type: string SchemaVersion: description: The schema version desired in the response. in: query @@ -1490,6 +1497,13 @@ components: required: true schema: type: string + SecurityMonitoringIntegrationConfigID: + description: The ID of the entity context sync configuration. + in: path + name: integration_config_id + required: true + schema: + type: string SecurityMonitoringRuleID: description: The ID of the rule. in: path @@ -25673,6 +25687,101 @@ components: type: string type: array type: object + EntityContextEntity: + description: A single entity returned by the entity context endpoint. + properties: + attributes: + $ref: "#/components/schemas/EntityContextEntityAttributes" + id: + description: The unique identifier of the entity. + example: user@example.com + type: string + type: + $ref: "#/components/schemas/SecurityMonitoringEntityContextEntityType" + required: + - id + - type + - attributes + type: object + EntityContextEntityAttributes: + description: The attributes of an entity context entry, grouping all the historical revisions of the entity. + properties: + revisions: + description: The historical revisions of the entity, ordered chronologically. + items: + $ref: "#/components/schemas/EntityContextRevision" + type: array + required: + - revisions + type: object + EntityContextPage: + description: Pagination metadata for the entity context response. + properties: + next_token: + description: An opaque token to pass as `page_token` in a subsequent request to retrieve the next page of results. Empty when there are no more results. + example: "" + type: string + required: + - next_token + type: object + EntityContextResponse: + description: Response from the entity context endpoint, containing the matching entities and pagination metadata. + properties: + data: + description: The list of entities matching the query. + items: + $ref: "#/components/schemas/EntityContextEntity" + type: array + meta: + $ref: "#/components/schemas/EntityContextResponseMeta" + required: + - data + - meta + type: object + EntityContextResponseMeta: + description: Metadata returned alongside the entity context response. + properties: + page: + $ref: "#/components/schemas/EntityContextPage" + total_count: + description: The total number of entities matching the query, irrespective of pagination. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - page + - total_count + type: object + EntityContextRevision: + description: A single historical revision of an entity, including the time range during which the revision was observed. + properties: + attributes: + $ref: "#/components/schemas/EntityContextRevisionAttributes" + first_seen_at: + description: The first time the entity was observed at this revision. + example: "2026-04-01T00:00:00Z" + format: date-time + type: string + last_seen_at: + description: The last time the entity was observed at this revision. + example: "2026-05-01T00:00:00Z" + format: date-time + type: string + required: + - attributes + - first_seen_at + - last_seen_at + type: object + EntityContextRevisionAttributes: + additionalProperties: {} + description: The set of attributes recorded for the entity at this revision. The keys depend on the kind of entity. + example: + display_name: Test User + emails: + - user@example.com + principal_id: user@example.com + type: object EntityData: description: Entity data. properties: @@ -43771,6 +43880,61 @@ components: format: date-time type: string type: object + LogFormattingIssueAttributes: + description: Attributes describing why a log source is not properly formatted for Cloud SIEM detection rules. + properties: + reason: + $ref: "#/components/schemas/LogFormattingIssueReason" + required: + - reason + type: object + LogFormattingIssueData: + description: A log source that has formatting issues preventing it from being used by Cloud SIEM detection rules. + properties: + attributes: + $ref: "#/components/schemas/LogFormattingIssueAttributes" + id: + description: The name of the log source that has formatting issues. + example: aws.cloudtrail + type: string + type: + $ref: "#/components/schemas/LogFormattingIssueType" + required: + - id + - type + - attributes + type: object + LogFormattingIssueReason: + description: |- + A machine-readable reason explaining why logs from this source cannot be used by Cloud SIEM detection rules. + `raw_wrapper` indicates the logs are delivered with their content wrapped in a `_raw` attribute (for example, + from a third-party pipeline) so structured fields cannot be extracted. + enum: + - raw_wrapper + example: raw_wrapper + type: string + x-enum-varnames: + - RAW_WRAPPER + LogFormattingIssueType: + default: log_formatting_issues + description: The type of the resource. The value should always be `log_formatting_issues`. + enum: + - log_formatting_issues + example: log_formatting_issues + type: string + x-enum-varnames: + - LOG_FORMATTING_ISSUES + LogFormattingIssuesResponse: + description: Response containing the list of log sources with formatting issues. + properties: + data: + description: The list of log sources with formatting issues. + items: + $ref: "#/components/schemas/LogFormattingIssueData" + type: array + required: + - data + type: object LogType: default: log description: Type of the event. @@ -63819,6 +63983,272 @@ components: example: "report_id" type: string type: object + SampleLogGenerationBulkSubscriptionAttributes: + description: The attributes for creating sample log generation subscriptions for multiple content packs. + properties: + content_pack_ids: + description: The identifiers of the Cloud SIEM content packs to subscribe to. At most five content packs can be requested in a single call. + example: + - aws-cloudtrail + items: + description: A Cloud SIEM content pack identifier. + type: string + maxItems: 5 + type: array + duration: + $ref: "#/components/schemas/SampleLogGenerationDuration" + required: + - content_pack_ids + type: object + SampleLogGenerationBulkSubscriptionData: + description: The bulk subscription request body. + properties: + attributes: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionAttributes" + type: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionRequestType" + required: + - type + - attributes + type: object + SampleLogGenerationBulkSubscriptionItemMeta: + description: Per-item status returned for a bulk subscription request. + properties: + error: + description: A description of the error encountered for this content pack, if the subscription could not be created. + example: content pack does not exist + type: string + status: + description: The HTTP status code that resulted from creating the subscription for this content pack. + example: 200 + format: int32 + maximum: 599 + type: integer + required: + - status + type: object + SampleLogGenerationBulkSubscriptionRequest: + description: Request body to create sample log generation subscriptions for multiple content packs at once. + properties: + data: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionData" + required: + - data + type: object + SampleLogGenerationBulkSubscriptionRequestType: + default: bulk_subscription_requests + description: The type of the resource. The value should always be `bulk_subscription_requests`. + enum: + - bulk_subscription_requests + example: bulk_subscription_requests + type: string + x-enum-varnames: + - BULK_SUBSCRIPTION_REQUESTS + SampleLogGenerationBulkSubscriptionResponse: + description: Response containing the per-content-pack results of a bulk subscription request. + properties: + data: + description: The list of bulk subscription results, one per requested content pack. + items: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionResultItem" + type: array + required: + - data + type: object + SampleLogGenerationBulkSubscriptionResultItem: + description: A single result entry returned by the bulk subscription endpoint. + properties: + attributes: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionAttributes" + id: + description: The unique identifier of the subscription, when one was created. + example: "123" + type: string + meta: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionItemMeta" + type: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionResourceType" + required: + - id + - type + - attributes + - meta + type: object + SampleLogGenerationDuration: + default: 3d + description: How long the subscription should remain active before expiring. + enum: + - 1h + - 1d + - 3d + - 7d + example: 3d + type: string + x-enum-varnames: + - ONE_HOUR + - ONE_DAY + - THREE_DAYS + - SEVEN_DAYS + SampleLogGenerationSubscriptionAttributes: + description: The attributes describing a sample log generation subscription. + properties: + content_pack_id: + description: The identifier of the Cloud SIEM content pack the subscription targets. + example: aws-cloudtrail + type: string + created_at: + description: The time at which the subscription was created. + example: "2026-05-08T20:02:13.77481Z" + format: date-time + type: string + expires_at: + description: The time at which the subscription expires and stops generating logs. + example: "2026-05-11T20:02:13.77481Z" + format: date-time + type: string + is_active: + description: Whether the subscription is currently active and generating logs. + example: true + type: boolean + status: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionStatus" + required: + - content_pack_id + - status + - is_active + - created_at + - expires_at + type: object + SampleLogGenerationSubscriptionCreateAttributes: + description: The attributes for creating a sample log generation subscription. + properties: + content_pack_id: + description: The identifier of the Cloud SIEM content pack to subscribe to. + example: aws-cloudtrail + type: string + duration: + $ref: "#/components/schemas/SampleLogGenerationDuration" + required: + - content_pack_id + type: object + SampleLogGenerationSubscriptionCreateData: + description: The subscription request body. + properties: + attributes: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateAttributes" + type: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionRequestType" + required: + - type + - attributes + type: object + SampleLogGenerationSubscriptionCreateRequest: + description: Request body to create a sample log generation subscription for a single content pack. + properties: + data: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateData" + required: + - data + type: object + SampleLogGenerationSubscriptionData: + description: A sample log generation subscription. + properties: + attributes: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionAttributes" + id: + description: The unique identifier of the subscription. + example: "789" + type: string + type: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionResourceType" + required: + - id + - type + - attributes + type: object + SampleLogGenerationSubscriptionRequestType: + default: subscription_requests + description: The type of the resource. The value should always be `subscription_requests`. + enum: + - subscription_requests + example: subscription_requests + type: string + x-enum-varnames: + - SUBSCRIPTION_REQUESTS + SampleLogGenerationSubscriptionResourceType: + default: subscriptions + description: The type of the resource. The value should always be `subscriptions`. + enum: + - subscriptions + example: subscriptions + type: string + x-enum-varnames: + - SUBSCRIPTIONS + SampleLogGenerationSubscriptionResponse: + description: Response containing a single sample log generation subscription. + properties: + data: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionData" + required: + - data + type: object + SampleLogGenerationSubscriptionStatus: + description: The status of the subscription. + enum: + - subscribed + - renewed + - unsubscribed + - no_active_subscription + - not_available + - active + - expired + example: subscribed + type: string + x-enum-varnames: + - SUBSCRIBED + - RENEWED + - UNSUBSCRIBED + - NO_ACTIVE_SUBSCRIPTION + - NOT_AVAILABLE + - ACTIVE + - EXPIRED + SampleLogGenerationSubscriptionsResponse: + description: Response containing a list of sample log generation subscriptions. + properties: + data: + description: The list of sample log generation subscriptions. + items: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionData" + type: array + meta: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionsResponseMeta" + required: + - data + - meta + type: object + SampleLogGenerationSubscriptionsResponseMeta: + description: Metadata returned alongside a list of sample log generation subscriptions. + properties: + total_subscriptions: + description: The total number of subscriptions matching the request, irrespective of pagination. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - total_subscriptions + type: object + SampleLogGenerationSubscriptionsStatusFilter: + default: active + description: Filter that controls whether to return only active subscriptions or every subscription on record. + enum: + - active + - all + example: active + type: string + x-enum-varnames: + - ACTIVE + - ALL ScaRequest: description: The top-level request object for submitting a Software Composition Analysis (SCA) scan result. properties: @@ -66086,6 +66516,112 @@ components: required: - data type: object + SecurityFilterVersion: + description: A snapshot of all security filters at a specific configuration version. + properties: + attributes: + $ref: "#/components/schemas/SecurityFilterVersionAttributes" + id: + description: The identifier of the configuration version. + example: "1" + type: string + type: + $ref: "#/components/schemas/SecurityFilterVersionType" + required: + - id + - type + - attributes + type: object + SecurityFilterVersionAttributes: + description: The attributes describing a single security filter configuration version. + properties: + date: + description: The Unix timestamp in milliseconds at which this configuration version was applied. + example: 1758177253469 + format: int64 + type: integer + filters: + description: The set of security filters at this configuration version. + items: + $ref: "#/components/schemas/SecurityFilterVersionEntry" + type: array + version: + description: The configuration version number. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - version + - date + - filters + type: object + SecurityFilterVersionEntry: + description: A single security filter as it existed at a given configuration version. + properties: + exclusion_filters: + description: The list of exclusion filters applied in this security filter. + items: + $ref: "#/components/schemas/SecurityFilterExclusionFilterResponse" + type: array + filtered_data_type: + $ref: "#/components/schemas/SecurityFilterFilteredDataType" + id: + description: The ID of the security filter. + example: "123" + type: string + is_builtin: + description: Whether the security filter is the built-in filter. + example: false + type: boolean + is_enabled: + description: Whether the security filter is enabled. + example: true + type: boolean + name: + description: The name of the security filter. + example: Test Security Filter + type: string + query: + description: The query of the security filter. + example: source:test + type: string + version: + description: The version of this security filter. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - id + - name + - version + - query + - is_enabled + - exclusion_filters + - filtered_data_type + - is_builtin + type: object + SecurityFilterVersionType: + default: security_filters_configuration + description: The type of the resource. The value should always be `security_filters_configuration`. + enum: + - security_filters_configuration + example: security_filters_configuration + type: string + x-enum-varnames: + - SECURITY_FILTERS_CONFIGURATION + SecurityFilterVersionsResponse: + description: Response containing the version history of security filters. + properties: + data: + description: A list of historical security filter configurations, ordered from the most recent to the oldest. + items: + $ref: "#/components/schemas/SecurityFilterVersion" + type: array + required: + - data + type: object SecurityFiltersResponse: description: All the available security filters objects. properties: @@ -66622,6 +67158,13 @@ components: $ref: "#/components/schemas/SecurityMonitoringCriticalAsset" type: array type: object + SecurityMonitoringEntityContextEntityType: + default: entity + description: |- + The type of the entity. Reflects the underlying entity kind from the entity context store + (for example, `siem_entity_identity` for identities). Defaults to `entity` when the kind is unknown. + example: siem_entity_identity + type: string SecurityMonitoringFilter: description: The rule's suppression filter. properties: @@ -66640,6 +67183,240 @@ components: x-enum-varnames: - REQUIRE - SUPPRESS + SecurityMonitoringIntegrationConfigAttributes: + description: The attributes of an entity context sync configuration as returned by the API. + properties: + created_at: + description: The time at which the entity context sync configuration was created. + example: "2026-05-01T12:00:00Z" + format: date-time + type: string + domain: + description: The domain associated with the external entity source (for example, the customer's identity provider domain). + example: siem-test.com + type: string + enabled: + description: Whether the sync is enabled and actively ingesting entities into Cloud SIEM. + example: true + type: boolean + integration_type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationType" + modified_at: + description: The time at which the entity context sync configuration was last modified. + example: "2026-05-01T12:00:00Z" + format: date-time + type: string + name: + description: The display name of the entity context sync configuration. + example: My GWS Integration + type: string + settings: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigSettings" + state: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigState" + required: + - enabled + - domain + - integration_type + 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 + - secrets + type: object + SecurityMonitoringIntegrationConfigCreateData: + description: The entity context sync configuration to create. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + required: + - type + - attributes + type: object + SecurityMonitoringIntegrationConfigCreateRequest: + description: Request body to create an entity context sync configuration. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateData" + required: + - data + type: object + SecurityMonitoringIntegrationConfigData: + description: An entity context sync configuration. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigAttributes" + id: + description: The unique identifier of the integration configuration. + example: 11111111-2222-3333-4444-555555555555 + type: string + type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + required: + - id + - type + - attributes + type: object + SecurityMonitoringIntegrationConfigResourceType: + default: integration_config + description: The type of the resource. The value should always be `integration_config`. + enum: + - integration_config + example: integration_config + type: string + x-enum-varnames: + - INTEGRATION_CONFIG + SecurityMonitoringIntegrationConfigResponse: + description: Response containing a single entity context sync configuration. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigData" + 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). + example: + admin_email: test@example.com + type: object + SecurityMonitoringIntegrationConfigSettings: + additionalProperties: {} + description: Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the source type. + example: + setting1: value1 + type: object + SecurityMonitoringIntegrationConfigState: + description: The state of the credentials configured on the entity context sync. + enum: + - valid + - invalid + - initializing + example: valid + type: string + x-enum-varnames: + - VALID + - 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 + SecurityMonitoringIntegrationConfigUpdateData: + description: The entity context sync configuration fields to update. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + required: + - type + - attributes + type: object + SecurityMonitoringIntegrationConfigUpdateRequest: + description: Request body to update an entity context sync configuration. Supports partial updates. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateData" + required: + - data + type: object + SecurityMonitoringIntegrationConfigsResponse: + description: Response containing a list of entity context sync configurations. + properties: + data: + description: The list of integration configurations. + items: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigData" + type: array + required: + - data + 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 + - secrets + type: object + SecurityMonitoringIntegrationCredentialsValidateData: + description: The credentials to validate. + properties: + attributes: + $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateAttributes" + type: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResourceType" + required: + - type + - attributes + type: object + SecurityMonitoringIntegrationCredentialsValidateRequest: + description: Request body to validate credentials against an external entity source before creating a sync configuration. + properties: + data: + $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateData" + required: + - data + type: object + SecurityMonitoringIntegrationType: + description: The type of external source that provides entities to Cloud SIEM. + enum: + - GOOGLE_WORKSPACE + - OKTA + - ENTRA_ID + example: GOOGLE_WORKSPACE + type: string + x-enum-varnames: + - GOOGLE_WORKSPACE + - OKTA + - ENTRA_ID SecurityMonitoringListRulesResponse: description: List of rules. properties: @@ -72052,6 +72829,60 @@ components: description: Included data for shift operations. oneOf: - $ref: "#/components/schemas/ScheduleUser" + SignalEntitiesAttributes: + description: Attributes containing the entities related to the signal. + properties: + identities: + description: The identity entities related to the signal. Each item is a free-form object describing an identity (for example, a user or principal). + example: + - display_name: Test User + principal_id: user@example.com + items: + $ref: "#/components/schemas/SignalEntityIdentity" + type: array + required: + - identities + type: object + SignalEntitiesData: + description: Entities related to a security signal. + properties: + attributes: + $ref: "#/components/schemas/SignalEntitiesAttributes" + id: + description: The signal ID the entities are associated with. + example: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: string + type: + $ref: "#/components/schemas/SignalEntitiesType" + required: + - id + - type + - attributes + type: object + SignalEntitiesResponse: + description: Response containing entities related to a security signal. + properties: + data: + $ref: "#/components/schemas/SignalEntitiesData" + required: + - data + type: object + SignalEntitiesType: + default: entities + description: The type of the resource. The value should always be `entities`. + enum: + - entities + example: entities + type: string + x-enum-varnames: + - ENTITIES + SignalEntityIdentity: + additionalProperties: {} + description: An identity entity related to a signal. The set of attributes is dynamic and depends on the source providing the identity. + example: + display_name: Test User + principal_id: user@example.com + type: object SimpleMonitorUserTemplate: description: A simplified version of a monitor user template. properties: @@ -86375,6 +87206,10 @@ components: incident_settings_read: View Incident Settings. incident_settings_write: Configure Incident Settings. incident_write: Create, view, and manage incidents in Datadog. + integrations_read: View configured integrations and their settings. + logs_modify_indexes: Modify log indexes, filters, exclusion filters, and configurations. + logs_read_index_data: Read indexed log data. + manage_integrations: Install, uninstall, and configure integrations. metrics_read: View custom metrics. monitors_downtime: Set downtimes to suppress alerts from any monitor in an organization. Mute and unmute monitors. The ability to write monitors is not required to set downtimes. monitors_read: View monitors. @@ -86395,6 +87230,7 @@ components: security_monitoring_suppressions_write: Write Rule Suppressions. security_pipelines_read: View Security Pipelines. security_pipelines_write: Create, edit, and delete CSM Security Pipelines. + siem_entities_read: View Cloud SIEM entities. slos_corrections: Apply, edit, and delete SLO status corrections. A user with this permission can make status corrections, even if they do not have permission to edit those SLOs. slos_read: View SLOs and status corrections. slos_write: Create, edit, and delete SLOs. @@ -135404,6 +136240,355 @@ paths: summary: Update a critical asset tags: - Security Monitoring + /api/v2/security_monitoring/configuration/integration_config: + get: + description: |- + List the entity context sync configurations for Cloud SIEM. Each configuration connects Cloud SIEM + to an external source that provides entities (for example, users from an identity provider) for use + in signals and the entity explorer. + operationId: ListSecurityMonitoringIntegrationConfigs + parameters: + - description: Filter the entity context sync configurations by source type. + in: query + name: filter[integration_type] + required: false + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationType" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + created_at: "2026-05-01T12:00:00Z" + domain: siem-test.com + enabled: true + integration_type: GOOGLE_WORKSPACE + modified_at: "2026-05-01T12:00:00Z" + name: My GWS Integration + settings: + setting1: value1 + state: valid + id: 11111111-2222-3333-4444-555555555555 + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigsResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - integrations_read + summary: List entity context sync configurations + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: |- + Create a new entity context sync configuration so Cloud SIEM can ingest entities from an external + source. The credentials provided in `secrets` are validated against the source before the configuration + is stored and never returned in subsequent responses. + operationId: CreateSecurityMonitoringIntegrationConfig + requestBody: + content: + application/json: + examples: + default: + 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 + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigCreateRequest" + description: The definition of the new integration configuration. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2026-05-01T12:00:00Z" + domain: siem-test.com + enabled: true + integration_type: GOOGLE_WORKSPACE + modified_at: "2026-05-01T12:00:00Z" + name: My GWS Integration + settings: + setting1: value1 + id: 11111111-2222-3333-4444-555555555555 + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - manage_integrations + summary: Create an entity context sync configuration + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/configuration/integration_config/validate: + post: + description: |- + Validate a set of credentials against the external entity source before creating a sync configuration. + Returns a 200 status code if the credentials are valid. + operationId: ValidateSecurityMonitoringIntegrationCredentials + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + domain: siem-test.com + integration_type: GOOGLE_WORKSPACE + secrets: + admin_email: test@example.com + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationCredentialsValidateRequest" + description: The credentials to validate. + required: true + responses: + "200": + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - integrations_read + summary: Validate entity context sync credentials + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/configuration/integration_config/{integration_config_id}: + delete: + description: |- + Delete an entity context sync configuration. Cloud SIEM stops ingesting entities from this source, + and the credentials stored for the configuration are removed from the secrets store. + operationId: DeleteSecurityMonitoringIntegrationConfig + parameters: + - $ref: "#/components/parameters/SecurityMonitoringIntegrationConfigID" + responses: + "204": + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - manage_integrations + summary: Delete an entity context sync configuration + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Get the details of a specific entity context sync configuration. + operationId: GetSecurityMonitoringIntegrationConfig + parameters: + - $ref: "#/components/parameters/SecurityMonitoringIntegrationConfigID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2026-05-01T12:00:00Z" + domain: siem-test.com + enabled: true + integration_type: GOOGLE_WORKSPACE + modified_at: "2026-05-01T12:00:00Z" + name: My GWS Integration + settings: + setting1: value1 + state: valid + id: 11111111-2222-3333-4444-555555555555 + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - integrations_read + summary: Get an entity context sync configuration + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + patch: + description: Update an existing entity context sync configuration. Supports partial updates; only the fields provided in the request body are modified. + operationId: UpdateSecurityMonitoringIntegrationConfig + parameters: + - $ref: "#/components/parameters/SecurityMonitoringIntegrationConfigID" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + enabled: false + name: My GWS Integration (renamed) + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigUpdateRequest" + description: The fields to update on the integration configuration. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + created_at: "2026-05-01T12:00:00Z" + domain: siem-test.com + enabled: false + integration_type: GOOGLE_WORKSPACE + modified_at: "2026-05-08T12:00:00Z" + name: My GWS Integration (renamed) + settings: + setting1: value1 + state: valid + id: 11111111-2222-3333-4444-555555555555 + type: integration_config + schema: + $ref: "#/components/schemas/SecurityMonitoringIntegrationConfigResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - manage_integrations + summary: Update an entity context sync configuration + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/configuration/integration_config/{integration_config_id}/validate: + post: + description: |- + Validate the credentials currently stored on an existing entity context sync configuration. + Returns a 200 status code if the credentials are still valid against the external entity source. + operationId: ValidateSecurityMonitoringIntegrationConfig + parameters: + - $ref: "#/components/parameters/SecurityMonitoringIntegrationConfigID" + responses: + "200": + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - integrations_read + summary: Validate an entity context sync configuration + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security_monitoring/configuration/security_filters: get: description: Get the list of configured security filters with their definitions. @@ -135516,6 +136701,53 @@ paths: operator: OR permissions: - security_monitoring_filters_write + /api/v2/security_monitoring/configuration/security_filters/versions: + get: + description: |- + Get the configured security filters at each historical version of the configuration. + Each entry in the response represents the set of all security filters at a given version, + ordered from the most recent version to the oldest. + operationId: ListSecurityFilterVersions + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + date: 1758177253469 + filters: + - exclusion_filters: [] + filtered_data_type: logs + id: "123" + is_builtin: false + is_enabled: true + name: Test Security Filter + query: source:test + version: 1 + version: 1 + id: "1" + type: security_filters_configuration + schema: + $ref: "#/components/schemas/SecurityFilterVersionsResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_read + summary: Get the version history of security filters + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - security_monitoring_filters_read /api/v2/security_monitoring/configuration/security_filters/{security_filter_id}: delete: description: Delete a specific security filter. @@ -136295,6 +137527,177 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/entity_context: + get: + description: |- + Search the Cloud SIEM entity context store for entities that match a query, and return the historical + revisions of each entity in the requested time range. The endpoint can either return revisions across an + interval (`from` / `to`) or the snapshot of each entity at a single point in time (`as_of`); the two modes + are mutually exclusive. + operationId: GetEntityContext + parameters: + - description: A free-text query (for example, an email address or principal ID) used to filter the entities returned. + example: user@example.com + in: query + name: query + required: false + schema: + type: string + - description: |- + The start of the time range to query, as an RFC3339 timestamp or a relative time (for example, `now-7d`). + Defaults to `now-7d`. Ignored when `as_of` is set. + in: query + name: from + required: false + schema: + default: now-7d + example: now-7d + type: string + - description: |- + The end of the time range to query, as an RFC3339 timestamp or a relative time (for example, `now`). + Defaults to `now`. Ignored when `as_of` is set. + in: query + name: to + required: false + schema: + default: now + example: now + type: string + - description: |- + A point in time at which to query the entity revisions, as an RFC3339 timestamp, a Unix timestamp + (in seconds), or a relative time (for example, `now-1d`). When set, `from` and `to` are ignored. + Cannot be combined with custom `from` / `to` values. + example: now-1d + in: query + name: as_of + required: false + schema: + type: string + - description: The maximum number of entities to return. + in: query + name: limit + required: false + schema: + default: 250 + example: 100 + format: int64 + type: integer + - description: An opaque token used to fetch the next page of results, as returned in `meta.page.next_token` of a previous response. + in: query + name: page_token + required: false + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + revisions: + - attributes: + display_name: Test User + emails: + - user@example.com + principal_id: user@example.com + first_seen_at: "2026-04-01T00:00:00Z" + last_seen_at: "2026-05-01T00:00:00Z" + id: user@example.com + type: siem_entity_identity + meta: + page: + next_token: "" + total_count: 1 + schema: + $ref: "#/components/schemas/EntityContextResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - siem_entities_read + summary: Get entity context + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - siem_entities_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/log_formatting_issues: + get: + description: |- + Get the list of log sources whose logs are not properly formatted for Cloud SIEM detection rules in the + requested time range. Each item identifies a log source and the machine-readable reason its logs cannot + be used by detection rules. Primarily used by the Cloud SIEM UI to surface onboarding and pipeline + warnings, but also useful for programmatic health checks. + operationId: ListLogFormattingIssues + parameters: + - description: |- + The start of the time range to inspect, as an RFC3339 timestamp or a relative time (for example, `now-1d`). + Defaults to `now-1d`. + in: query + name: filter[from] + required: false + schema: + default: now-1d + example: now-1d + type: string + - description: |- + The end of the time range to inspect, as an RFC3339 timestamp or a relative time (for example, `now`). + Defaults to `now`. + in: query + name: filter[to] + required: false + schema: + default: now + example: now + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + reason: raw_wrapper + id: aws.cloudtrail + type: log_formatting_issues + schema: + $ref: "#/components/schemas/LogFormattingIssuesResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_read + - logs_read_index_data + summary: Get Cloud SIEM log formatting issues + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - security_monitoring_filters_read + - logs_read_index_data + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security_monitoring/rules: get: description: List rules. @@ -137167,6 +138570,282 @@ paths: - security_monitoring_rules_read x-unstable: |- **Note**: This endpoint is in beta and may be subject to changes. + /api/v2/security_monitoring/sample_log_generation/subscriptions: + get: + description: |- + Get the sample log generation subscriptions for the organization. + Sample log generation injects representative example logs for a given Cloud SIEM content pack into the Logs platform, + which can be used to test detection rules without onboarding the underlying integration first. + + **Availability**: this endpoint is restricted to Cloud SIEM trial organizations on an eligible + pricing model. Other organizations receive a `403 Forbidden` (non-trial orgs) or a `400 Bad Request` + (feature disabled), and legacy pricing tiers receive a response with `status: not_available`. + operationId: ListSampleLogGenerationSubscriptions + parameters: + - description: |- + Filter the subscriptions by status. Use `active` to return only currently active + subscriptions, or `all` to return every subscription including expired ones. + Ignored when `start_timestamp` is provided. Defaults to `active`. + in: query + name: status + required: false + schema: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionsStatusFilter" + - description: |- + The start of the time range, as an RFC3339 timestamp. When provided, the response includes + every subscription that was active at any point in `[start_timestamp, end_timestamp]`, + and the `status` filter is ignored. + example: "2026-05-01T00:00:00Z" + in: query + name: start_timestamp + required: false + schema: + format: date-time + type: string + - description: |- + The end of the time range, as an RFC3339 timestamp. Ignored unless `start_timestamp` is set. + Defaults to the current time when `start_timestamp` is provided. + example: "2026-05-08T00:00:00Z" + in: query + name: end_timestamp + required: false + schema: + format: date-time + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + content_pack_id: aws-cloudtrail + created_at: "2026-05-08T20:02:13.77481Z" + expires_at: "2026-05-11T20:02:13.77481Z" + is_active: true + status: subscribed + id: "999" + type: subscriptions + meta: + total_subscriptions: 1 + schema: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_read + - logs_read_index_data + summary: Get sample log generation subscriptions + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - security_monitoring_filters_read + - logs_read_index_data + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: |- + Subscribe to sample log generation for a Cloud SIEM content pack. Sample logs for the + requested content pack are injected into the Logs platform for the duration of the subscription, + so detection rules can be exercised without onboarding the underlying integration first. + + **Availability**: this endpoint is restricted to Cloud SIEM trial organizations on an + eligible pricing model. Non-trial orgs receive `403 Forbidden`, the feature flag may also reject + requests with `400 Bad Request`, and legacy pricing tiers receive a response with `status: not_available`. + operationId: CreateSampleLogGenerationSubscription + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + content_pack_id: aws-cloudtrail + duration: 3d + type: subscription_requests + schema: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionCreateRequest" + description: The content pack to subscribe to and the desired duration of the subscription. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + content_pack_id: aws-cloudtrail + created_at: "2026-05-08T20:02:13.77481Z" + expires_at: "2026-05-11T20:02:13.77481Z" + is_active: true + status: subscribed + id: "789" + type: subscriptions + schema: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_write + - logs_modify_indexes + summary: Subscribe to sample log generation + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_monitoring_filters_write + - logs_modify_indexes + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/sample_log_generation/subscriptions/bulk: + post: + description: |- + Subscribe to sample log generation for multiple Cloud SIEM content packs in a single call. + Each requested content pack is processed independently; the response includes a per-item + status so partial successes can be inspected. + + **Availability**: this endpoint is restricted to Cloud SIEM trial organizations on an + eligible pricing model. Non-trial orgs receive `403 Forbidden`, the feature flag may also reject + requests with `400 Bad Request`, and legacy pricing tiers receive per-item responses with `status: not_available`. + operationId: BulkCreateSampleLogGenerationSubscriptions + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + content_pack_ids: + - aws-cloudtrail + duration: 3d + type: bulk_subscription_requests + schema: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionRequest" + description: The content packs to subscribe to and the desired duration of the subscriptions. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + content_pack_id: aws-cloudtrail + created_at: "2026-05-08T20:02:13.655716Z" + expires_at: "2026-05-11T20:02:13.655716Z" + is_active: true + status: subscribed + id: "123" + meta: + status: 200 + type: subscriptions + schema: + $ref: "#/components/schemas/SampleLogGenerationBulkSubscriptionResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_write + - logs_modify_indexes + summary: Bulk subscribe to sample log generation + tags: ["Security Monitoring"] + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_monitoring_filters_write + - logs_modify_indexes + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security_monitoring/sample_log_generation/subscriptions/{content_pack_id}: + delete: + description: |- + Unsubscribe from sample log generation for a Cloud SIEM content pack. + After unsubscribing, no more sample logs are generated for the requested content pack. + + **Availability**: this endpoint is restricted to Cloud SIEM trial organizations on an + eligible pricing model. Non-trial orgs receive `403 Forbidden`, the feature flag may also reject + requests with `400 Bad Request`, and legacy pricing tiers receive a response with `status: not_available`. + operationId: DeleteSampleLogGenerationSubscription + parameters: + - $ref: "#/components/parameters/SampleLogGenerationContentPackID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + content_pack_id: aws-cloudtrail + created_at: "2026-05-08T20:02:13.77481Z" + expires_at: "2026-05-08T20:30:00Z" + is_active: false + status: unsubscribed + id: "789" + type: subscriptions + schema: + $ref: "#/components/schemas/SampleLogGenerationSubscriptionResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_filters_write + - logs_modify_indexes + summary: Unsubscribe from sample log generation + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - security_monitoring_filters_write + - logs_modify_indexes + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security_monitoring/signals: get: description: |- @@ -137587,6 +139266,61 @@ paths: operator: OR permissions: - security_monitoring_signals_write + /api/v2/security_monitoring/signals/{signal_id}/entities: + get: + description: Get the list of entities related to a security signal, captured at the signal's timestamp. + operationId: GetSignalEntities + parameters: + - $ref: "#/components/parameters/SignalID" + - description: The maximum number of entities to return. + in: query + name: limit + required: false + schema: + default: 10 + example: 10 + format: int32 + maximum: 1000 + type: integer + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + identities: + - display_name: Test User + principal_id: user@example.com + id: AAAAAWgN8Xwgr1vKDQAAAABBV2dOOFh3ZzZobm1mWXJFYTR0OA + type: entities + schema: + $ref: "#/components/schemas/SignalEntitiesResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - security_monitoring_signals_read + summary: Get entities related to a signal + tags: ["Security Monitoring"] + x-permission: + operator: OR + permissions: + - security_monitoring_signals_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security_monitoring/signals/{signal_id}/incidents: patch: description: |- diff --git a/examples/v2/security-monitoring/BulkCreateSampleLogGenerationSubscriptions.java b/examples/v2/security-monitoring/BulkCreateSampleLogGenerationSubscriptions.java new file mode 100644 index 00000000000..d38edf735a4 --- /dev/null +++ b/examples/v2/security-monitoring/BulkCreateSampleLogGenerationSubscriptions.java @@ -0,0 +1,46 @@ +// Bulk subscribe to sample log generation returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionAttributes; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionData; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionRequest; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionRequestType; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionResponse; +import com.datadog.api.client.v2.model.SampleLogGenerationDuration; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.bulkCreateSampleLogGenerationSubscriptions", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SampleLogGenerationBulkSubscriptionRequest body = + new SampleLogGenerationBulkSubscriptionRequest() + .data( + new SampleLogGenerationBulkSubscriptionData() + .attributes( + new SampleLogGenerationBulkSubscriptionAttributes() + .contentPackIds(Collections.singletonList("aws-cloudtrail")) + .duration(SampleLogGenerationDuration.THREE_DAYS)) + .type( + SampleLogGenerationBulkSubscriptionRequestType.BULK_SUBSCRIPTION_REQUESTS)); + + try { + SampleLogGenerationBulkSubscriptionResponse result = + apiInstance.bulkCreateSampleLogGenerationSubscriptions(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#bulkCreateSampleLogGenerationSubscriptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/CreateSampleLogGenerationSubscription.java b/examples/v2/security-monitoring/CreateSampleLogGenerationSubscription.java new file mode 100644 index 00000000000..c93515331e9 --- /dev/null +++ b/examples/v2/security-monitoring/CreateSampleLogGenerationSubscription.java @@ -0,0 +1,42 @@ +// Subscribe to sample log generation returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SampleLogGenerationDuration; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionCreateAttributes; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionCreateData; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionCreateRequest; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionRequestType; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createSampleLogGenerationSubscription", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SampleLogGenerationSubscriptionCreateRequest body = + new SampleLogGenerationSubscriptionCreateRequest() + .data( + new SampleLogGenerationSubscriptionCreateData() + .attributes( + new SampleLogGenerationSubscriptionCreateAttributes() + .contentPackId("aws-cloudtrail") + .duration(SampleLogGenerationDuration.THREE_DAYS)) + .type(SampleLogGenerationSubscriptionRequestType.SUBSCRIPTION_REQUESTS)); + + try { + SampleLogGenerationSubscriptionResponse result = + apiInstance.createSampleLogGenerationSubscription(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#createSampleLogGenerationSubscription"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.java b/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.java new file mode 100644 index 00000000000..d8bef892ebe --- /dev/null +++ b/examples/v2/security-monitoring/CreateSecurityMonitoringIntegrationConfig.java @@ -0,0 +1,46 @@ +// Create an entity context sync configuration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigCreateAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigCreateData; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigCreateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResourceType; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationType; +import java.util.Map; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createSecurityMonitoringIntegrationConfig", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringIntegrationConfigCreateRequest body = + new SecurityMonitoringIntegrationConfigCreateRequest() + .data( + new SecurityMonitoringIntegrationConfigCreateData() + .attributes( + new SecurityMonitoringIntegrationConfigCreateAttributes() + .domain("siem-test.com") + .integrationType(SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE) + .name("My GWS Integration") + .secrets(Map.ofEntries(Map.entry("admin_email", "test@example.com"))) + .settings(Map.ofEntries(Map.entry("setting1", "value1")))) + .type(SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG)); + + try { + SecurityMonitoringIntegrationConfigResponse result = + apiInstance.createSecurityMonitoringIntegrationConfig(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#createSecurityMonitoringIntegrationConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/DeleteSampleLogGenerationSubscription.java b/examples/v2/security-monitoring/DeleteSampleLogGenerationSubscription.java new file mode 100644 index 00000000000..8388d33d029 --- /dev/null +++ b/examples/v2/security-monitoring/DeleteSampleLogGenerationSubscription.java @@ -0,0 +1,27 @@ +// Unsubscribe from sample log generation returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deleteSampleLogGenerationSubscription", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SampleLogGenerationSubscriptionResponse result = + apiInstance.deleteSampleLogGenerationSubscription("content_pack_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#deleteSampleLogGenerationSubscription"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/DeleteSecurityMonitoringIntegrationConfig.java b/examples/v2/security-monitoring/DeleteSecurityMonitoringIntegrationConfig.java new file mode 100644 index 00000000000..5600752f9d4 --- /dev/null +++ b/examples/v2/security-monitoring/DeleteSecurityMonitoringIntegrationConfig.java @@ -0,0 +1,24 @@ +// Delete an entity context sync configuration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deleteSecurityMonitoringIntegrationConfig", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + apiInstance.deleteSecurityMonitoringIntegrationConfig("integration_config_id"); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#deleteSecurityMonitoringIntegrationConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/GetEntityContext.java b/examples/v2/security-monitoring/GetEntityContext.java new file mode 100644 index 00000000000..34b71ee696b --- /dev/null +++ b/examples/v2/security-monitoring/GetEntityContext.java @@ -0,0 +1,25 @@ +// Get entity context returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.EntityContextResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getEntityContext", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + EntityContextResponse result = apiInstance.getEntityContext(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#getEntityContext"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/GetSecurityMonitoringIntegrationConfig.java b/examples/v2/security-monitoring/GetSecurityMonitoringIntegrationConfig.java new file mode 100644 index 00000000000..0fc61f80896 --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityMonitoringIntegrationConfig.java @@ -0,0 +1,27 @@ +// Get an entity context sync configuration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getSecurityMonitoringIntegrationConfig", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringIntegrationConfigResponse result = + apiInstance.getSecurityMonitoringIntegrationConfig("integration_config_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#getSecurityMonitoringIntegrationConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/GetSignalEntities.java b/examples/v2/security-monitoring/GetSignalEntities.java new file mode 100644 index 00000000000..7fa2f624f36 --- /dev/null +++ b/examples/v2/security-monitoring/GetSignalEntities.java @@ -0,0 +1,25 @@ +// Get entities related to a signal returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SignalEntitiesResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getSignalEntities", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SignalEntitiesResponse result = apiInstance.getSignalEntities("signal_id"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#getSignalEntities"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ListLogFormattingIssues.java b/examples/v2/security-monitoring/ListLogFormattingIssues.java new file mode 100644 index 00000000000..360a0384715 --- /dev/null +++ b/examples/v2/security-monitoring/ListLogFormattingIssues.java @@ -0,0 +1,25 @@ +// Get Cloud SIEM log formatting issues returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.LogFormattingIssuesResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listLogFormattingIssues", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + LogFormattingIssuesResponse result = apiInstance.listLogFormattingIssues(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#listLogFormattingIssues"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ListSampleLogGenerationSubscriptions.java b/examples/v2/security-monitoring/ListSampleLogGenerationSubscriptions.java new file mode 100644 index 00000000000..7c6992efa7c --- /dev/null +++ b/examples/v2/security-monitoring/ListSampleLogGenerationSubscriptions.java @@ -0,0 +1,27 @@ +// Get sample log generation subscriptions returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listSampleLogGenerationSubscriptions", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SampleLogGenerationSubscriptionsResponse result = + apiInstance.listSampleLogGenerationSubscriptions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#listSampleLogGenerationSubscriptions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ListSecurityFilterVersions.java b/examples/v2/security-monitoring/ListSecurityFilterVersions.java new file mode 100644 index 00000000000..77661ca3c15 --- /dev/null +++ b/examples/v2/security-monitoring/ListSecurityFilterVersions.java @@ -0,0 +1,24 @@ +// Get the version history of security filters returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityFilterVersionsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityFilterVersionsResponse result = apiInstance.listSecurityFilterVersions(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#listSecurityFilterVersions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ListSecurityMonitoringIntegrationConfigs.java b/examples/v2/security-monitoring/ListSecurityMonitoringIntegrationConfigs.java new file mode 100644 index 00000000000..a1dab4c41d4 --- /dev/null +++ b/examples/v2/security-monitoring/ListSecurityMonitoringIntegrationConfigs.java @@ -0,0 +1,27 @@ +// List entity context sync configurations returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listSecurityMonitoringIntegrationConfigs", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SecurityMonitoringIntegrationConfigsResponse result = + apiInstance.listSecurityMonitoringIntegrationConfigs(); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#listSecurityMonitoringIntegrationConfigs"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.java b/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.java new file mode 100644 index 00000000000..93fd59484df --- /dev/null +++ b/examples/v2/security-monitoring/UpdateSecurityMonitoringIntegrationConfig.java @@ -0,0 +1,47 @@ +// Update an entity context sync configuration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResourceType; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigUpdateAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigUpdateData; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigUpdateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationType; +import java.util.Map; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.updateSecurityMonitoringIntegrationConfig", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringIntegrationConfigUpdateRequest body = + new SecurityMonitoringIntegrationConfigUpdateRequest() + .data( + new SecurityMonitoringIntegrationConfigUpdateData() + .attributes( + new SecurityMonitoringIntegrationConfigUpdateAttributes() + .domain("siem-test.com") + .enabled(true) + .integrationType(SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE) + .name("My GWS Integration (renamed)") + .secrets(Map.ofEntries(Map.entry("admin_email", "test@example.com"))) + .settings(Map.ofEntries(Map.entry("setting1", "value1")))) + .type(SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG)); + + try { + SecurityMonitoringIntegrationConfigResponse result = + apiInstance.updateSecurityMonitoringIntegrationConfig("integration_config_id", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling SecurityMonitoringApi#updateSecurityMonitoringIntegrationConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationConfig.java b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationConfig.java new file mode 100644 index 00000000000..82b444f03b1 --- /dev/null +++ b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationConfig.java @@ -0,0 +1,26 @@ +// Validate an entity context sync configuration returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.validateSecurityMonitoringIntegrationConfig", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + apiInstance.validateSecurityMonitoringIntegrationConfig("integration_config_id"); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#validateSecurityMonitoringIntegrationConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.java b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.java new file mode 100644 index 00000000000..e06735e4bdc --- /dev/null +++ b/examples/v2/security-monitoring/ValidateSecurityMonitoringIntegrationCredentials.java @@ -0,0 +1,43 @@ +// Validate entity context sync credentials returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResourceType; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationCredentialsValidateAttributes; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationCredentialsValidateData; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationCredentialsValidateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationType; +import java.util.Map; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.validateSecurityMonitoringIntegrationCredentials", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SecurityMonitoringIntegrationCredentialsValidateRequest body = + new SecurityMonitoringIntegrationCredentialsValidateRequest() + .data( + new SecurityMonitoringIntegrationCredentialsValidateData() + .attributes( + new SecurityMonitoringIntegrationCredentialsValidateAttributes() + .domain("siem-test.com") + .integrationType(SecurityMonitoringIntegrationType.GOOGLE_WORKSPACE) + .secrets(Map.ofEntries(Map.entry("admin_email", "test@example.com")))) + .type(SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG)); + + try { + apiInstance.validateSecurityMonitoringIntegrationCredentials(body); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#validateSecurityMonitoringIntegrationCredentials"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 40867b589fa..03e9d7bbe61 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -830,14 +830,20 @@ public class ApiClient { put("v2.getAWSCloudAuthPersonaMapping", false); put("v2.listAWSCloudAuthPersonaMappings", false); put("v2.activateContentPack", false); + put("v2.bulkCreateSampleLogGenerationSubscriptions", false); put("v2.bulkExportSecurityMonitoringTerraformResources", false); put("v2.cancelHistoricalJob", false); put("v2.convertJobResultToSignal", false); put("v2.convertSecurityMonitoringTerraformResource", false); + put("v2.createSampleLogGenerationSubscription", false); + put("v2.createSecurityMonitoringIntegrationConfig", false); put("v2.deactivateContentPack", false); put("v2.deleteHistoricalJob", false); + put("v2.deleteSampleLogGenerationSubscription", false); + put("v2.deleteSecurityMonitoringIntegrationConfig", false); put("v2.exportSecurityMonitoringTerraformResource", false); put("v2.getContentPacksStates", false); + put("v2.getEntityContext", false); put("v2.getFinding", false); put("v2.getHistoricalJob", false); put("v2.getIndicatorOfCompromise", false); @@ -845,18 +851,26 @@ public class ApiClient { put("v2.getSecretsRules", false); put("v2.getSecurityMonitoringHistsignal", false); put("v2.getSecurityMonitoringHistsignalsByJobId", false); + put("v2.getSecurityMonitoringIntegrationConfig", false); + put("v2.getSignalEntities", false); put("v2.listFindings", false); put("v2.listHistoricalJobs", false); put("v2.listIndicatorsOfCompromise", false); + put("v2.listLogFormattingIssues", false); put("v2.listMultipleRulesets", false); + put("v2.listSampleLogGenerationSubscriptions", false); put("v2.listScannedAssetsMetadata", false); put("v2.listSecurityMonitoringHistsignals", false); + put("v2.listSecurityMonitoringIntegrationConfigs", false); put("v2.listVulnerabilities", false); put("v2.listVulnerableAssets", false); put("v2.muteFindings", false); put("v2.muteSecurityFindings", false); put("v2.runHistoricalJob", false); put("v2.searchSecurityMonitoringHistsignals", false); + put("v2.updateSecurityMonitoringIntegrationConfig", false); + put("v2.validateSecurityMonitoringIntegrationConfig", false); + put("v2.validateSecurityMonitoringIntegrationCredentials", false); put("v2.getCodeCoverageBranchSummary", false); put("v2.getCodeCoverageCommitSummary", false); put("v2.getRuleBasedView", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java index b8beced4994..2e33d775ace 100644 --- a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java @@ -19,6 +19,7 @@ import com.datadog.api.client.v2.model.CreateNotificationRuleParameters; import com.datadog.api.client.v2.model.DeleteCustomFrameworkResponse; import com.datadog.api.client.v2.model.DetachCaseRequest; +import com.datadog.api.client.v2.model.EntityContextResponse; import com.datadog.api.client.v2.model.Finding; import com.datadog.api.client.v2.model.FindingCaseResponse; import com.datadog.api.client.v2.model.FindingCaseResponseArray; @@ -43,6 +44,7 @@ import com.datadog.api.client.v2.model.ListSecurityFindingsResponse; import com.datadog.api.client.v2.model.ListVulnerabilitiesResponse; import com.datadog.api.client.v2.model.ListVulnerableAssetsResponse; +import com.datadog.api.client.v2.model.LogFormattingIssuesResponse; import com.datadog.api.client.v2.model.MuteFindingsRequest; import com.datadog.api.client.v2.model.MuteFindingsResponse; import com.datadog.api.client.v2.model.NotificationRuleResponse; @@ -50,11 +52,18 @@ import com.datadog.api.client.v2.model.RunHistoricalJobRequest; import com.datadog.api.client.v2.model.SBOMComponentLicenseType; import com.datadog.api.client.v2.model.SBOMFormat; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionRequest; +import com.datadog.api.client.v2.model.SampleLogGenerationBulkSubscriptionResponse; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionCreateRequest; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionResponse; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionsResponse; +import com.datadog.api.client.v2.model.SampleLogGenerationSubscriptionsStatusFilter; import com.datadog.api.client.v2.model.ScannedAssetsMetadata; import com.datadog.api.client.v2.model.SecretRuleArray; import com.datadog.api.client.v2.model.SecurityFilterCreateRequest; import com.datadog.api.client.v2.model.SecurityFilterResponse; import com.datadog.api.client.v2.model.SecurityFilterUpdateRequest; +import com.datadog.api.client.v2.model.SecurityFilterVersionsResponse; import com.datadog.api.client.v2.model.SecurityFiltersResponse; import com.datadog.api.client.v2.model.SecurityFindingsData; import com.datadog.api.client.v2.model.SecurityFindingsSearchRequest; @@ -67,6 +76,12 @@ import com.datadog.api.client.v2.model.SecurityMonitoringCriticalAssetResponse; import com.datadog.api.client.v2.model.SecurityMonitoringCriticalAssetUpdateRequest; import com.datadog.api.client.v2.model.SecurityMonitoringCriticalAssetsResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigCreateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigUpdateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationConfigsResponse; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationCredentialsValidateRequest; +import com.datadog.api.client.v2.model.SecurityMonitoringIntegrationType; import com.datadog.api.client.v2.model.SecurityMonitoringListRulesResponse; import com.datadog.api.client.v2.model.SecurityMonitoringPaginatedSuppressionsResponse; import com.datadog.api.client.v2.model.SecurityMonitoringRuleBulkDeletePayload; @@ -106,6 +121,7 @@ import com.datadog.api.client.v2.model.SecurityMonitoringTerraformConvertRequest; import com.datadog.api.client.v2.model.SecurityMonitoringTerraformExportResponse; import com.datadog.api.client.v2.model.SecurityMonitoringTerraformResourceType; +import com.datadog.api.client.v2.model.SignalEntitiesResponse; import com.datadog.api.client.v2.model.UpdateCustomFrameworkRequest; import com.datadog.api.client.v2.model.UpdateCustomFrameworkResponse; import com.datadog.api.client.v2.model.UpdateResourceEvaluationFiltersRequest; @@ -609,6 +625,177 @@ public CompletableFuture> attachJiraIssueWithHt new GenericType() {}); } + /** + * Bulk subscribe to sample log generation. + * + *

See {@link #bulkCreateSampleLogGenerationSubscriptionsWithHttpInfo}. + * + * @param body The content packs to subscribe to and the desired duration of the subscriptions. + * (required) + * @return SampleLogGenerationBulkSubscriptionResponse + * @throws ApiException if fails to make API call + */ + public SampleLogGenerationBulkSubscriptionResponse bulkCreateSampleLogGenerationSubscriptions( + SampleLogGenerationBulkSubscriptionRequest body) throws ApiException { + return bulkCreateSampleLogGenerationSubscriptionsWithHttpInfo(body).getData(); + } + + /** + * Bulk subscribe to sample log generation. + * + *

See {@link #bulkCreateSampleLogGenerationSubscriptionsWithHttpInfoAsync}. + * + * @param body The content packs to subscribe to and the desired duration of the subscriptions. + * (required) + * @return CompletableFuture<SampleLogGenerationBulkSubscriptionResponse> + */ + public CompletableFuture + bulkCreateSampleLogGenerationSubscriptionsAsync( + SampleLogGenerationBulkSubscriptionRequest body) { + return bulkCreateSampleLogGenerationSubscriptionsWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Subscribe to sample log generation for multiple Cloud SIEM content packs in a single call. Each + * requested content pack is processed independently; the response includes a per-item status so + * partial successes can be inspected. + * + *

Availability: this endpoint is restricted to Cloud SIEM trial organizations + * on an eligible pricing model. Non-trial orgs receive 403 Forbidden, the feature + * flag may also reject requests with 400 Bad Request, and legacy pricing tiers + * receive per-item responses with status: not_available. + * + * @param body The content packs to subscribe to and the desired duration of the subscriptions. + * (required) + * @return ApiResponse<SampleLogGenerationBulkSubscriptionResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse + bulkCreateSampleLogGenerationSubscriptionsWithHttpInfo( + SampleLogGenerationBulkSubscriptionRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "bulkCreateSampleLogGenerationSubscriptions"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " bulkCreateSampleLogGenerationSubscriptions"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/sample_log_generation/subscriptions/bulk"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.bulkCreateSampleLogGenerationSubscriptions", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Bulk subscribe to sample log generation. + * + *

See {@link #bulkCreateSampleLogGenerationSubscriptionsWithHttpInfo}. + * + * @param body The content packs to subscribe to and the desired duration of the subscriptions. + * (required) + * @return CompletableFuture<ApiResponse<SampleLogGenerationBulkSubscriptionResponse>> + */ + public CompletableFuture> + bulkCreateSampleLogGenerationSubscriptionsWithHttpInfoAsync( + SampleLogGenerationBulkSubscriptionRequest body) { + // Check if unstable operation is enabled + String operationId = "bulkCreateSampleLogGenerationSubscriptions"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " bulkCreateSampleLogGenerationSubscriptions")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/sample_log_generation/subscriptions/bulk"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.bulkCreateSampleLogGenerationSubscriptions", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Bulk delete security monitoring rules. * @@ -2722,6 +2909,177 @@ public CompletableFuture> createJiraIssues new GenericType() {}); } + /** + * Subscribe to sample log generation. + * + *

See {@link #createSampleLogGenerationSubscriptionWithHttpInfo}. + * + * @param body The content pack to subscribe to and the desired duration of the subscription. + * (required) + * @return SampleLogGenerationSubscriptionResponse + * @throws ApiException if fails to make API call + */ + public SampleLogGenerationSubscriptionResponse createSampleLogGenerationSubscription( + SampleLogGenerationSubscriptionCreateRequest body) throws ApiException { + return createSampleLogGenerationSubscriptionWithHttpInfo(body).getData(); + } + + /** + * Subscribe to sample log generation. + * + *

See {@link #createSampleLogGenerationSubscriptionWithHttpInfoAsync}. + * + * @param body The content pack to subscribe to and the desired duration of the subscription. + * (required) + * @return CompletableFuture<SampleLogGenerationSubscriptionResponse> + */ + public CompletableFuture + createSampleLogGenerationSubscriptionAsync( + SampleLogGenerationSubscriptionCreateRequest body) { + return createSampleLogGenerationSubscriptionWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Subscribe to sample log generation for a Cloud SIEM content pack. Sample logs for the requested + * content pack are injected into the Logs platform for the duration of the subscription, so + * detection rules can be exercised without onboarding the underlying integration first. + * + *

Availability: this endpoint is restricted to Cloud SIEM trial organizations + * on an eligible pricing model. Non-trial orgs receive 403 Forbidden, the feature + * flag may also reject requests with 400 Bad Request, and legacy pricing tiers + * receive a response with status: not_available. + * + * @param body The content pack to subscribe to and the desired duration of the subscription. + * (required) + * @return ApiResponse<SampleLogGenerationSubscriptionResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse + createSampleLogGenerationSubscriptionWithHttpInfo( + SampleLogGenerationSubscriptionCreateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createSampleLogGenerationSubscription"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " createSampleLogGenerationSubscription"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/sample_log_generation/subscriptions"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSampleLogGenerationSubscription", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Subscribe to sample log generation. + * + *

See {@link #createSampleLogGenerationSubscriptionWithHttpInfo}. + * + * @param body The content pack to subscribe to and the desired duration of the subscription. + * (required) + * @return CompletableFuture<ApiResponse<SampleLogGenerationSubscriptionResponse>> + */ + public CompletableFuture> + createSampleLogGenerationSubscriptionWithHttpInfoAsync( + SampleLogGenerationSubscriptionCreateRequest body) { + // Check if unstable operation is enabled + String operationId = "createSampleLogGenerationSubscription"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " createSampleLogGenerationSubscription")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/sample_log_generation/subscriptions"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSampleLogGenerationSubscription", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Create a security filter. * @@ -3004,21 +3362,183 @@ public SecurityMonitoringCriticalAssetResponse createSecurityMonitoringCriticalA } /** - * Create a detection rule. + * Create an entity context sync configuration. * - *

See {@link #createSecurityMonitoringRuleWithHttpInfo}. + *

See {@link #createSecurityMonitoringIntegrationConfigWithHttpInfo}. * - * @param body (required) - * @return SecurityMonitoringRuleResponse + * @param body The definition of the new integration configuration. (required) + * @return SecurityMonitoringIntegrationConfigResponse * @throws ApiException if fails to make API call */ - public SecurityMonitoringRuleResponse createSecurityMonitoringRule( - SecurityMonitoringRuleCreatePayload body) throws ApiException { - return createSecurityMonitoringRuleWithHttpInfo(body).getData(); + public SecurityMonitoringIntegrationConfigResponse createSecurityMonitoringIntegrationConfig( + SecurityMonitoringIntegrationConfigCreateRequest body) throws ApiException { + return createSecurityMonitoringIntegrationConfigWithHttpInfo(body).getData(); } /** - * Create a detection rule. + * Create an entity context sync configuration. + * + *

See {@link #createSecurityMonitoringIntegrationConfigWithHttpInfoAsync}. + * + * @param body The definition of the new integration configuration. (required) + * @return CompletableFuture<SecurityMonitoringIntegrationConfigResponse> + */ + public CompletableFuture + createSecurityMonitoringIntegrationConfigAsync( + SecurityMonitoringIntegrationConfigCreateRequest body) { + return createSecurityMonitoringIntegrationConfigWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create a new entity context sync configuration so Cloud SIEM can ingest entities from an + * external source. The credentials provided in secrets are validated against the + * source before the configuration is stored and never returned in subsequent responses. + * + * @param body The definition of the new integration configuration. (required) + * @return ApiResponse<SecurityMonitoringIntegrationConfigResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse + createSecurityMonitoringIntegrationConfigWithHttpInfo( + SecurityMonitoringIntegrationConfigCreateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " createSecurityMonitoringIntegrationConfig"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/integration_config"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create an entity context sync configuration. + * + *

See {@link #createSecurityMonitoringIntegrationConfigWithHttpInfo}. + * + * @param body The definition of the new integration configuration. (required) + * @return CompletableFuture<ApiResponse<SecurityMonitoringIntegrationConfigResponse>> + */ + public CompletableFuture> + createSecurityMonitoringIntegrationConfigWithHttpInfoAsync( + SecurityMonitoringIntegrationConfigCreateRequest body) { + // Check if unstable operation is enabled + String operationId = "createSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " createSecurityMonitoringIntegrationConfig")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/integration_config"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create a detection rule. + * + *

See {@link #createSecurityMonitoringRuleWithHttpInfo}. + * + * @param body (required) + * @return SecurityMonitoringRuleResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringRuleResponse createSecurityMonitoringRule( + SecurityMonitoringRuleCreatePayload body) throws ApiException { + return createSecurityMonitoringRuleWithHttpInfo(body).getData(); + } + + /** + * Create a detection rule. * *

See {@link #createSecurityMonitoringRuleWithHttpInfoAsync}. * @@ -4040,6 +4560,181 @@ public CompletableFuture> deleteHistoricalJobWithHttpInfoAsync null); } + /** + * Unsubscribe from sample log generation. + * + *

See {@link #deleteSampleLogGenerationSubscriptionWithHttpInfo}. + * + * @param contentPackId The identifier of the Cloud SIEM content pack to operate on (for example, + * aws-cloudtrail). (required) + * @return SampleLogGenerationSubscriptionResponse + * @throws ApiException if fails to make API call + */ + public SampleLogGenerationSubscriptionResponse deleteSampleLogGenerationSubscription( + String contentPackId) throws ApiException { + return deleteSampleLogGenerationSubscriptionWithHttpInfo(contentPackId).getData(); + } + + /** + * Unsubscribe from sample log generation. + * + *

See {@link #deleteSampleLogGenerationSubscriptionWithHttpInfoAsync}. + * + * @param contentPackId The identifier of the Cloud SIEM content pack to operate on (for example, + * aws-cloudtrail). (required) + * @return CompletableFuture<SampleLogGenerationSubscriptionResponse> + */ + public CompletableFuture + deleteSampleLogGenerationSubscriptionAsync(String contentPackId) { + return deleteSampleLogGenerationSubscriptionWithHttpInfoAsync(contentPackId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Unsubscribe from sample log generation for a Cloud SIEM content pack. After unsubscribing, no + * more sample logs are generated for the requested content pack. + * + *

Availability: this endpoint is restricted to Cloud SIEM trial organizations + * on an eligible pricing model. Non-trial orgs receive 403 Forbidden, the feature + * flag may also reject requests with 400 Bad Request, and legacy pricing tiers + * receive a response with status: not_available. + * + * @param contentPackId The identifier of the Cloud SIEM content pack to operate on (for example, + * aws-cloudtrail). (required) + * @return ApiResponse<SampleLogGenerationSubscriptionResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse + deleteSampleLogGenerationSubscriptionWithHttpInfo(String contentPackId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteSampleLogGenerationSubscription"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'contentPackId' is set + if (contentPackId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'contentPackId' when calling" + + " deleteSampleLogGenerationSubscription"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/sample_log_generation/subscriptions/{content_pack_id}" + .replaceAll( + "\\{" + "content_pack_id" + "\\}", + apiClient.escapeString(contentPackId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deleteSampleLogGenerationSubscription", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Unsubscribe from sample log generation. + * + *

See {@link #deleteSampleLogGenerationSubscriptionWithHttpInfo}. + * + * @param contentPackId The identifier of the Cloud SIEM content pack to operate on (for example, + * aws-cloudtrail). (required) + * @return CompletableFuture<ApiResponse<SampleLogGenerationSubscriptionResponse>> + */ + public CompletableFuture> + deleteSampleLogGenerationSubscriptionWithHttpInfoAsync(String contentPackId) { + // Check if unstable operation is enabled + String operationId = "deleteSampleLogGenerationSubscription"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'contentPackId' is set + if (contentPackId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'contentPackId' when calling" + + " deleteSampleLogGenerationSubscription")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/sample_log_generation/subscriptions/{content_pack_id}" + .replaceAll( + "\\{" + "content_pack_id" + "\\}", + apiClient.escapeString(contentPackId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deleteSampleLogGenerationSubscription", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Delete a security filter. * @@ -4325,11 +5020,173 @@ public ApiResponse deleteSecurityMonitoringCriticalAssetWithHttpInfo(Strin } /** - * Delete an existing rule. + * Delete an entity context sync configuration. * - *

See {@link #deleteSecurityMonitoringRuleWithHttpInfo}. + *

See {@link #deleteSecurityMonitoringIntegrationConfigWithHttpInfo}. * - * @param ruleId The ID of the rule. (required) + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @throws ApiException if fails to make API call + */ + public void deleteSecurityMonitoringIntegrationConfig(String integrationConfigId) + throws ApiException { + deleteSecurityMonitoringIntegrationConfigWithHttpInfo(integrationConfigId); + } + + /** + * Delete an entity context sync configuration. + * + *

See {@link #deleteSecurityMonitoringIntegrationConfigWithHttpInfoAsync}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return CompletableFuture + */ + public CompletableFuture deleteSecurityMonitoringIntegrationConfigAsync( + String integrationConfigId) { + return deleteSecurityMonitoringIntegrationConfigWithHttpInfoAsync(integrationConfigId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete an entity context sync configuration. Cloud SIEM stops ingesting entities from this + * source, and the credentials stored for the configuration are removed from the secrets store. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 OK -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse deleteSecurityMonitoringIntegrationConfigWithHttpInfo( + String integrationConfigId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " deleteSecurityMonitoringIntegrationConfig"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deleteSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete an entity context sync configuration. + * + *

See {@link #deleteSecurityMonitoringIntegrationConfigWithHttpInfo}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> + deleteSecurityMonitoringIntegrationConfigWithHttpInfoAsync(String integrationConfigId) { + // Check if unstable operation is enabled + String operationId = "deleteSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " deleteSecurityMonitoringIntegrationConfig")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deleteSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete an existing rule. + * + *

See {@link #deleteSecurityMonitoringRuleWithHttpInfo}. + * + * @param ruleId The ID of the rule. (required) * @throws ApiException if fails to make API call */ public void deleteSecurityMonitoringRule(String ruleId) throws ApiException { @@ -6314,46 +7171,112 @@ public ApiResponse getCustomFrameworkWithHttpInfo( new GenericType() {}); } - /** Manage optional parameters to getFinding. */ - public static class GetFindingOptionalParameters { - private Long snapshotTimestamp; + /** Manage optional parameters to getEntityContext. */ + public static class GetEntityContextOptionalParameters { + private String query; + private String from; + private String to; + private String asOf; + private Long limit; + private String pageToken; /** - * Set snapshotTimestamp. + * Set query. * - * @param snapshotTimestamp Return the finding for a given snapshot of time (Unix ms). - * (optional) - * @return GetFindingOptionalParameters + * @param query A free-text query (for example, an email address or principal ID) used to filter + * the entities returned. (optional) + * @return GetEntityContextOptionalParameters */ - public GetFindingOptionalParameters snapshotTimestamp(Long snapshotTimestamp) { - this.snapshotTimestamp = snapshotTimestamp; + public GetEntityContextOptionalParameters query(String query) { + this.query = query; + return this; + } + + /** + * Set from. + * + * @param from The start of the time range to query, as an RFC3339 timestamp or a relative time + * (for example, now-7d). Defaults to now-7d. Ignored when + * as_of is set. (optional, default to "now-7d") + * @return GetEntityContextOptionalParameters + */ + public GetEntityContextOptionalParameters from(String from) { + this.from = from; + return this; + } + + /** + * Set to. + * + * @param to The end of the time range to query, as an RFC3339 timestamp or a relative time (for + * example, now). Defaults to now. Ignored when as_of + * is set. (optional, default to "now") + * @return GetEntityContextOptionalParameters + */ + public GetEntityContextOptionalParameters to(String to) { + this.to = to; + return this; + } + + /** + * Set asOf. + * + * @param asOf A point in time at which to query the entity revisions, as an RFC3339 timestamp, + * a Unix timestamp (in seconds), or a relative time (for example, now-1d). + * When set, from and to are ignored. Cannot be combined with + * custom from / to values. (optional) + * @return GetEntityContextOptionalParameters + */ + public GetEntityContextOptionalParameters asOf(String asOf) { + this.asOf = asOf; + return this; + } + + /** + * Set limit. + * + * @param limit The maximum number of entities to return. (optional, default to 250) + * @return GetEntityContextOptionalParameters + */ + public GetEntityContextOptionalParameters limit(Long limit) { + this.limit = limit; + return this; + } + + /** + * Set pageToken. + * + * @param pageToken An opaque token used to fetch the next page of results, as returned in + * meta.page.next_token of a previous response. (optional) + * @return GetEntityContextOptionalParameters + */ + public GetEntityContextOptionalParameters pageToken(String pageToken) { + this.pageToken = pageToken; return this; } } /** - * Get a finding. + * Get entity context. * - *

See {@link #getFindingWithHttpInfo}. + *

See {@link #getEntityContextWithHttpInfo}. * - * @param findingId The ID of the finding. (required) - * @return GetFindingResponse + * @return EntityContextResponse * @throws ApiException if fails to make API call */ - public GetFindingResponse getFinding(String findingId) throws ApiException { - return getFindingWithHttpInfo(findingId, new GetFindingOptionalParameters()).getData(); + public EntityContextResponse getEntityContext() throws ApiException { + return getEntityContextWithHttpInfo(new GetEntityContextOptionalParameters()).getData(); } /** - * Get a finding. + * Get entity context. * - *

See {@link #getFindingWithHttpInfoAsync}. + *

See {@link #getEntityContextWithHttpInfoAsync}. * - * @param findingId The ID of the finding. (required) - * @return CompletableFuture<GetFindingResponse> + * @return CompletableFuture<EntityContextResponse> */ - public CompletableFuture getFindingAsync(String findingId) { - return getFindingWithHttpInfoAsync(findingId, new GetFindingOptionalParameters()) + public CompletableFuture getEntityContextAsync() { + return getEntityContextWithHttpInfoAsync(new GetEntityContextOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -6361,32 +7284,30 @@ public CompletableFuture getFindingAsync(String findingId) { } /** - * Get a finding. + * Get entity context. * - *

See {@link #getFindingWithHttpInfo}. + *

See {@link #getEntityContextWithHttpInfo}. * - * @param findingId The ID of the finding. (required) * @param parameters Optional parameters for the request. - * @return GetFindingResponse + * @return EntityContextResponse * @throws ApiException if fails to make API call */ - public GetFindingResponse getFinding(String findingId, GetFindingOptionalParameters parameters) + public EntityContextResponse getEntityContext(GetEntityContextOptionalParameters parameters) throws ApiException { - return getFindingWithHttpInfo(findingId, parameters).getData(); + return getEntityContextWithHttpInfo(parameters).getData(); } /** - * Get a finding. + * Get entity context. * - *

See {@link #getFindingWithHttpInfoAsync}. + *

See {@link #getEntityContextWithHttpInfoAsync}. * - * @param findingId The ID of the finding. (required) * @param parameters Optional parameters for the request. - * @return CompletableFuture<GetFindingResponse> + * @return CompletableFuture<EntityContextResponse> */ - public CompletableFuture getFindingAsync( - String findingId, GetFindingOptionalParameters parameters) { - return getFindingWithHttpInfoAsync(findingId, parameters) + public CompletableFuture getEntityContextAsync( + GetEntityContextOptionalParameters parameters) { + return getEntityContextWithHttpInfoAsync(parameters) .thenApply( response -> { return response.getData(); @@ -6394,54 +7315,56 @@ public CompletableFuture getFindingAsync( } /** - * Returns a single finding with message and resource configuration. + * Search the Cloud SIEM entity context store for entities that match a query, and return the + * historical revisions of each entity in the requested time range. The endpoint can either return + * revisions across an interval (from / to) or the snapshot of each + * entity at a single point in time (as_of); the two modes are mutually exclusive. * - * @param findingId The ID of the finding. (required) * @param parameters Optional parameters for the request. - * @return ApiResponse<GetFindingResponse> + * @return ApiResponse<EntityContextResponse> * @throws ApiException if fails to make API call * @http.response.details * * * * - * - * - * - * + * + * + * *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request: The server cannot process the request due to invalid syntax in the request. -
403 Forbidden: Access denied -
404 Not Found: The requested finding cannot be found. -
429 Too many requests: The rate limit set by the API has been exceeded. -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
*/ - public ApiResponse getFindingWithHttpInfo( - String findingId, GetFindingOptionalParameters parameters) throws ApiException { + public ApiResponse getEntityContextWithHttpInfo( + GetEntityContextOptionalParameters parameters) throws ApiException { // Check if unstable operation is enabled - String operationId = "getFinding"; + String operationId = "getEntityContext"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); } Object localVarPostBody = null; - - // verify the required parameter 'findingId' is set - if (findingId == null) { - throw new ApiException( - 400, "Missing the required parameter 'findingId' when calling getFinding"); - } - Long snapshotTimestamp = parameters.snapshotTimestamp; + String query = parameters.query; + String from = parameters.from; + String to = parameters.to; + String asOf = parameters.asOf; + Long limit = parameters.limit; + String pageToken = parameters.pageToken; // create path and map variables - String localVarPath = - "/api/v2/posture_management/findings/{finding_id}" - .replaceAll("\\{" + "finding_id" + "\\}", apiClient.escapeString(findingId.toString())); + String localVarPath = "/api/v2/security_monitoring/entity_context"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll( - apiClient.parameterToPairs("", "snapshot_timestamp", snapshotTimestamp)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "from", from)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "to", to)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "as_of", asOf)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page_token", pageToken)); Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.getFinding", + "v2.SecurityMonitoringApi.getEntityContext", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -6456,52 +7379,264 @@ public ApiResponse getFindingWithHttpInfo( localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get a finding. + * Get entity context. * - *

See {@link #getFindingWithHttpInfo}. + *

See {@link #getEntityContextWithHttpInfo}. * - * @param findingId The ID of the finding. (required) * @param parameters Optional parameters for the request. - * @return CompletableFuture<ApiResponse<GetFindingResponse>> + * @return CompletableFuture<ApiResponse<EntityContextResponse>> */ - public CompletableFuture> getFindingWithHttpInfoAsync( - String findingId, GetFindingOptionalParameters parameters) { + public CompletableFuture> getEntityContextWithHttpInfoAsync( + GetEntityContextOptionalParameters parameters) { // Check if unstable operation is enabled - String operationId = "getFinding"; + String operationId = "getEntityContext"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); return result; } Object localVarPostBody = null; - - // verify the required parameter 'findingId' is set - if (findingId == null) { - CompletableFuture> result = new CompletableFuture<>(); - result.completeExceptionally( - new ApiException( - 400, "Missing the required parameter 'findingId' when calling getFinding")); - return result; - } - Long snapshotTimestamp = parameters.snapshotTimestamp; + String query = parameters.query; + String from = parameters.from; + String to = parameters.to; + String asOf = parameters.asOf; + Long limit = parameters.limit; + String pageToken = parameters.pageToken; // create path and map variables - String localVarPath = - "/api/v2/posture_management/findings/{finding_id}" - .replaceAll("\\{" + "finding_id" + "\\}", apiClient.escapeString(findingId.toString())); + String localVarPath = "/api/v2/security_monitoring/entity_context"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll( - apiClient.parameterToPairs("", "snapshot_timestamp", snapshotTimestamp)); - + localVarQueryParams.addAll(apiClient.parameterToPairs("", "query", query)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "from", from)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "to", to)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "as_of", asOf)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page_token", pageToken)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getEntityContext", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to getFinding. */ + public static class GetFindingOptionalParameters { + private Long snapshotTimestamp; + + /** + * Set snapshotTimestamp. + * + * @param snapshotTimestamp Return the finding for a given snapshot of time (Unix ms). + * (optional) + * @return GetFindingOptionalParameters + */ + public GetFindingOptionalParameters snapshotTimestamp(Long snapshotTimestamp) { + this.snapshotTimestamp = snapshotTimestamp; + return this; + } + } + + /** + * Get a finding. + * + *

See {@link #getFindingWithHttpInfo}. + * + * @param findingId The ID of the finding. (required) + * @return GetFindingResponse + * @throws ApiException if fails to make API call + */ + public GetFindingResponse getFinding(String findingId) throws ApiException { + return getFindingWithHttpInfo(findingId, new GetFindingOptionalParameters()).getData(); + } + + /** + * Get a finding. + * + *

See {@link #getFindingWithHttpInfoAsync}. + * + * @param findingId The ID of the finding. (required) + * @return CompletableFuture<GetFindingResponse> + */ + public CompletableFuture getFindingAsync(String findingId) { + return getFindingWithHttpInfoAsync(findingId, new GetFindingOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get a finding. + * + *

See {@link #getFindingWithHttpInfo}. + * + * @param findingId The ID of the finding. (required) + * @param parameters Optional parameters for the request. + * @return GetFindingResponse + * @throws ApiException if fails to make API call + */ + public GetFindingResponse getFinding(String findingId, GetFindingOptionalParameters parameters) + throws ApiException { + return getFindingWithHttpInfo(findingId, parameters).getData(); + } + + /** + * Get a finding. + * + *

See {@link #getFindingWithHttpInfoAsync}. + * + * @param findingId The ID of the finding. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<GetFindingResponse> + */ + public CompletableFuture getFindingAsync( + String findingId, GetFindingOptionalParameters parameters) { + return getFindingWithHttpInfoAsync(findingId, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Returns a single finding with message and resource configuration. + * + * @param findingId The ID of the finding. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<GetFindingResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request: The server cannot process the request due to invalid syntax in the request. -
403 Forbidden: Access denied -
404 Not Found: The requested finding cannot be found. -
429 Too many requests: The rate limit set by the API has been exceeded. -
+ */ + public ApiResponse getFindingWithHttpInfo( + String findingId, GetFindingOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getFinding"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'findingId' is set + if (findingId == null) { + throw new ApiException( + 400, "Missing the required parameter 'findingId' when calling getFinding"); + } + Long snapshotTimestamp = parameters.snapshotTimestamp; + // create path and map variables + String localVarPath = + "/api/v2/posture_management/findings/{finding_id}" + .replaceAll("\\{" + "finding_id" + "\\}", apiClient.escapeString(findingId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "snapshot_timestamp", snapshotTimestamp)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getFinding", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a finding. + * + *

See {@link #getFindingWithHttpInfo}. + * + * @param findingId The ID of the finding. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<GetFindingResponse>> + */ + public CompletableFuture> getFindingWithHttpInfoAsync( + String findingId, GetFindingOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "getFinding"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'findingId' is set + if (findingId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'findingId' when calling getFinding")); + return result; + } + Long snapshotTimestamp = parameters.snapshotTimestamp; + // create path and map variables + String localVarPath = + "/api/v2/posture_management/findings/{finding_id}" + .replaceAll("\\{" + "finding_id" + "\\}", apiClient.escapeString(findingId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "snapshot_timestamp", snapshotTimestamp)); + Invocation.Builder builder; try { builder = @@ -8570,30 +9705,30 @@ public SecurityMonitoringSignalsListResponse getSecurityMonitoringHistsignalsByJ } /** - * Get a rule's details. + * Get an entity context sync configuration. * - *

See {@link #getSecurityMonitoringRuleWithHttpInfo}. + *

See {@link #getSecurityMonitoringIntegrationConfigWithHttpInfo}. * - * @param ruleId The ID of the rule. (required) - * @return SecurityMonitoringRuleResponse + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return SecurityMonitoringIntegrationConfigResponse * @throws ApiException if fails to make API call */ - public SecurityMonitoringRuleResponse getSecurityMonitoringRule(String ruleId) - throws ApiException { - return getSecurityMonitoringRuleWithHttpInfo(ruleId).getData(); + public SecurityMonitoringIntegrationConfigResponse getSecurityMonitoringIntegrationConfig( + String integrationConfigId) throws ApiException { + return getSecurityMonitoringIntegrationConfigWithHttpInfo(integrationConfigId).getData(); } /** - * Get a rule's details. + * Get an entity context sync configuration. * - *

See {@link #getSecurityMonitoringRuleWithHttpInfoAsync}. + *

See {@link #getSecurityMonitoringIntegrationConfigWithHttpInfoAsync}. * - * @param ruleId The ID of the rule. (required) - * @return CompletableFuture<SecurityMonitoringRuleResponse> + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return CompletableFuture<SecurityMonitoringIntegrationConfigResponse> */ - public CompletableFuture getSecurityMonitoringRuleAsync( - String ruleId) { - return getSecurityMonitoringRuleWithHttpInfoAsync(ruleId) + public CompletableFuture + getSecurityMonitoringIntegrationConfigAsync(String integrationConfigId) { + return getSecurityMonitoringIntegrationConfigWithHttpInfoAsync(integrationConfigId) .thenApply( response -> { return response.getData(); @@ -8601,39 +9736,52 @@ public CompletableFuture getSecurityMonitoringRu } /** - * Get a rule's details. + * Get the details of a specific entity context sync configuration. * - * @param ruleId The ID of the rule. (required) - * @return ApiResponse<SecurityMonitoringRuleResponse> + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return ApiResponse<SecurityMonitoringIntegrationConfigResponse> * @throws ApiException if fails to make API call * @http.response.details * * * * + * * * *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
404 Not Found -
429 Too many requests -
*/ - public ApiResponse getSecurityMonitoringRuleWithHttpInfo( - String ruleId) throws ApiException { + public ApiResponse + getSecurityMonitoringIntegrationConfigWithHttpInfo(String integrationConfigId) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "getSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } Object localVarPostBody = null; - // verify the required parameter 'ruleId' is set - if (ruleId == null) { + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { throw new ApiException( - 400, "Missing the required parameter 'ruleId' when calling getSecurityMonitoringRule"); + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " getSecurityMonitoringIntegrationConfig"); } // create path and map variables String localVarPath = - "/api/v2/security_monitoring/rules/{rule_id}" - .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.getSecurityMonitoringRule", + "v2.SecurityMonitoringApi.getSecurityMonitoringIntegrationConfig", localVarPath, new ArrayList(), localVarHeaderParams, @@ -8648,18 +9796,171 @@ public ApiResponse getSecurityMonitoringRuleWith localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get a rule's details. + * Get an entity context sync configuration. * - *

See {@link #getSecurityMonitoringRuleWithHttpInfo}. + *

See {@link #getSecurityMonitoringIntegrationConfigWithHttpInfo}. * - * @param ruleId The ID of the rule. (required) - * @return CompletableFuture<ApiResponse<SecurityMonitoringRuleResponse>> + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return CompletableFuture<ApiResponse<SecurityMonitoringIntegrationConfigResponse>> */ - public CompletableFuture> + public CompletableFuture> + getSecurityMonitoringIntegrationConfigWithHttpInfoAsync(String integrationConfigId) { + // Check if unstable operation is enabled + String operationId = "getSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " getSecurityMonitoringIntegrationConfig")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a rule's details. + * + *

See {@link #getSecurityMonitoringRuleWithHttpInfo}. + * + * @param ruleId The ID of the rule. (required) + * @return SecurityMonitoringRuleResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringRuleResponse getSecurityMonitoringRule(String ruleId) + throws ApiException { + return getSecurityMonitoringRuleWithHttpInfo(ruleId).getData(); + } + + /** + * Get a rule's details. + * + *

See {@link #getSecurityMonitoringRuleWithHttpInfoAsync}. + * + * @param ruleId The ID of the rule. (required) + * @return CompletableFuture<SecurityMonitoringRuleResponse> + */ + public CompletableFuture getSecurityMonitoringRuleAsync( + String ruleId) { + return getSecurityMonitoringRuleWithHttpInfoAsync(ruleId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get a rule's details. + * + * @param ruleId The ID of the rule. (required) + * @return ApiResponse<SecurityMonitoringRuleResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getSecurityMonitoringRuleWithHttpInfo( + String ruleId) throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + throw new ApiException( + 400, "Missing the required parameter 'ruleId' when calling getSecurityMonitoringRule"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityMonitoringRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a rule's details. + * + *

See {@link #getSecurityMonitoringRuleWithHttpInfo}. + * + * @param ruleId The ID of the rule. (required) + * @return CompletableFuture<ApiResponse<SecurityMonitoringRuleResponse>> + */ + public CompletableFuture> getSecurityMonitoringRuleWithHttpInfoAsync(String ruleId) { Object localVarPostBody = null; @@ -8995,29 +10296,46 @@ public SecurityMonitoringSuppressionResponse getSecurityMonitoringSuppression( new GenericType() {}); } + /** Manage optional parameters to getSignalEntities. */ + public static class GetSignalEntitiesOptionalParameters { + private Integer limit; + + /** + * Set limit. + * + * @param limit The maximum number of entities to return. (optional, default to 10) + * @return GetSignalEntitiesOptionalParameters + */ + public GetSignalEntitiesOptionalParameters limit(Integer limit) { + this.limit = limit; + return this; + } + } + /** - * Get details of a signal-based notification rule. + * Get entities related to a signal. * - *

See {@link #getSignalNotificationRuleWithHttpInfo}. + *

See {@link #getSignalEntitiesWithHttpInfo}. * - * @param id ID of the notification rule. (required) - * @return NotificationRuleResponse + * @param signalId The ID of the signal. (required) + * @return SignalEntitiesResponse * @throws ApiException if fails to make API call */ - public NotificationRuleResponse getSignalNotificationRule(String id) throws ApiException { - return getSignalNotificationRuleWithHttpInfo(id).getData(); + public SignalEntitiesResponse getSignalEntities(String signalId) throws ApiException { + return getSignalEntitiesWithHttpInfo(signalId, new GetSignalEntitiesOptionalParameters()) + .getData(); } /** - * Get details of a signal-based notification rule. + * Get entities related to a signal. * - *

See {@link #getSignalNotificationRuleWithHttpInfoAsync}. + *

See {@link #getSignalEntitiesWithHttpInfoAsync}. * - * @param id ID of the notification rule. (required) - * @return CompletableFuture<NotificationRuleResponse> + * @param signalId The ID of the signal. (required) + * @return CompletableFuture<SignalEntitiesResponse> */ - public CompletableFuture getSignalNotificationRuleAsync(String id) { - return getSignalNotificationRuleWithHttpInfoAsync(id) + public CompletableFuture getSignalEntitiesAsync(String signalId) { + return getSignalEntitiesWithHttpInfoAsync(signalId, new GetSignalEntitiesOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -9025,47 +10343,92 @@ public CompletableFuture getSignalNotificationRuleAsyn } /** - * Get the details of a notification rule for security signals. + * Get entities related to a signal. * - * @param id ID of the notification rule. (required) - * @return ApiResponse<NotificationRuleResponse> + *

See {@link #getSignalEntitiesWithHttpInfo}. + * + * @param signalId The ID of the signal. (required) + * @param parameters Optional parameters for the request. + * @return SignalEntitiesResponse + * @throws ApiException if fails to make API call + */ + public SignalEntitiesResponse getSignalEntities( + String signalId, GetSignalEntitiesOptionalParameters parameters) throws ApiException { + return getSignalEntitiesWithHttpInfo(signalId, parameters).getData(); + } + + /** + * Get entities related to a signal. + * + *

See {@link #getSignalEntitiesWithHttpInfoAsync}. + * + * @param signalId The ID of the signal. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SignalEntitiesResponse> + */ + public CompletableFuture getSignalEntitiesAsync( + String signalId, GetSignalEntitiesOptionalParameters parameters) { + return getSignalEntitiesWithHttpInfoAsync(signalId, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of entities related to a security signal, captured at the signal's timestamp. + * + * @param signalId The ID of the signal. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<SignalEntitiesResponse> * @throws ApiException if fails to make API call * @http.response.details * * * - * + * * - * + * * * *
Response details
Status Code Description Response Headers
200 Notification rule details. -
200 OK -
400 Bad Request -
403 Forbidden -
403 Not Authorized -
404 Not Found -
429 Too many requests -
*/ - public ApiResponse getSignalNotificationRuleWithHttpInfo(String id) - throws ApiException { + public ApiResponse getSignalEntitiesWithHttpInfo( + String signalId, GetSignalEntitiesOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "getSignalEntities"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } Object localVarPostBody = null; - // verify the required parameter 'id' is set - if (id == null) { + // verify the required parameter 'signalId' is set + if (signalId == null) { throw new ApiException( - 400, "Missing the required parameter 'id' when calling getSignalNotificationRule"); + 400, "Missing the required parameter 'signalId' when calling getSignalEntities"); } + Integer limit = parameters.limit; // create path and map variables String localVarPath = - "/api/v2/security/signals/notification_rules/{id}" - .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString())); + "/api/v2/security_monitoring/signals/{signal_id}/entities" + .replaceAll("\\{" + "signal_id" + "\\}", apiClient.escapeString(signalId.toString())); + List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); + Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.getSignalNotificationRule", + "v2.SecurityMonitoringApi.getSignalEntities", localVarPath, - new ArrayList(), + localVarQueryParams, localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); return apiClient.invokeAPI( "GET", builder, @@ -9074,49 +10437,200 @@ public ApiResponse getSignalNotificationRuleWithHttpIn localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get details of a signal-based notification rule. + * Get entities related to a signal. * - *

See {@link #getSignalNotificationRuleWithHttpInfo}. + *

See {@link #getSignalEntitiesWithHttpInfo}. * - * @param id ID of the notification rule. (required) - * @return CompletableFuture<ApiResponse<NotificationRuleResponse>> + * @param signalId The ID of the signal. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SignalEntitiesResponse>> */ - public CompletableFuture> - getSignalNotificationRuleWithHttpInfoAsync(String id) { + public CompletableFuture> getSignalEntitiesWithHttpInfoAsync( + String signalId, GetSignalEntitiesOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "getSignalEntities"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } Object localVarPostBody = null; - // verify the required parameter 'id' is set - if (id == null) { - CompletableFuture> result = new CompletableFuture<>(); + // verify the required parameter 'signalId' is set + if (signalId == null) { + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException( - 400, "Missing the required parameter 'id' when calling getSignalNotificationRule")); + 400, "Missing the required parameter 'signalId' when calling getSignalEntities")); return result; } + Integer limit = parameters.limit; // create path and map variables String localVarPath = - "/api/v2/security/signals/notification_rules/{id}" - .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString())); + "/api/v2/security_monitoring/signals/{signal_id}/entities" + .replaceAll("\\{" + "signal_id" + "\\}", apiClient.escapeString(signalId.toString())); + List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "limit", limit)); + Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.getSignalNotificationRule", + "v2.SecurityMonitoringApi.getSignalEntities", localVarPath, - new ArrayList(), + localVarQueryParams, localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get details of a signal-based notification rule. + * + *

See {@link #getSignalNotificationRuleWithHttpInfo}. + * + * @param id ID of the notification rule. (required) + * @return NotificationRuleResponse + * @throws ApiException if fails to make API call + */ + public NotificationRuleResponse getSignalNotificationRule(String id) throws ApiException { + return getSignalNotificationRuleWithHttpInfo(id).getData(); + } + + /** + * Get details of a signal-based notification rule. + * + *

See {@link #getSignalNotificationRuleWithHttpInfoAsync}. + * + * @param id ID of the notification rule. (required) + * @return CompletableFuture<NotificationRuleResponse> + */ + public CompletableFuture getSignalNotificationRuleAsync(String id) { + return getSignalNotificationRuleWithHttpInfoAsync(id) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the details of a notification rule for security signals. + * + * @param id ID of the notification rule. (required) + * @return ApiResponse<NotificationRuleResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 Notification rule details. -
400 Bad Request -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getSignalNotificationRuleWithHttpInfo(String id) + throws ApiException { + Object localVarPostBody = null; + + // verify the required parameter 'id' is set + if (id == null) { + throw new ApiException( + 400, "Missing the required parameter 'id' when calling getSignalNotificationRule"); + } + // create path and map variables + String localVarPath = + "/api/v2/security/signals/notification_rules/{id}" + .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSignalNotificationRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get details of a signal-based notification rule. + * + *

See {@link #getSignalNotificationRuleWithHttpInfo}. + * + * @param id ID of the notification rule. (required) + * @return CompletableFuture<ApiResponse<NotificationRuleResponse>> + */ + public CompletableFuture> + getSignalNotificationRuleWithHttpInfoAsync(String id) { + Object localVarPostBody = null; + + // verify the required parameter 'id' is set + if (id == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'id' when calling getSignalNotificationRule")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security/signals/notification_rules/{id}" + .replaceAll("\\{" + "id" + "\\}", apiClient.escapeString(id.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSignalNotificationRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -11501,31 +13015,60 @@ public ApiResponse listIndicatorsOfCompromiseWithHttpIn new GenericType() {}); } + /** Manage optional parameters to listLogFormattingIssues. */ + public static class ListLogFormattingIssuesOptionalParameters { + private String filterFrom; + private String filterTo; + + /** + * Set filterFrom. + * + * @param filterFrom The start of the time range to inspect, as an RFC3339 timestamp or a + * relative time (for example, now-1d). Defaults to now-1d. + * (optional, default to "now-1d") + * @return ListLogFormattingIssuesOptionalParameters + */ + public ListLogFormattingIssuesOptionalParameters filterFrom(String filterFrom) { + this.filterFrom = filterFrom; + return this; + } + + /** + * Set filterTo. + * + * @param filterTo The end of the time range to inspect, as an RFC3339 timestamp or a relative + * time (for example, now). Defaults to now. (optional, default to + * "now") + * @return ListLogFormattingIssuesOptionalParameters + */ + public ListLogFormattingIssuesOptionalParameters filterTo(String filterTo) { + this.filterTo = filterTo; + return this; + } + } + /** - * Ruleset get multiple. + * Get Cloud SIEM log formatting issues. * - *

See {@link #listMultipleRulesetsWithHttpInfo}. + *

See {@link #listLogFormattingIssuesWithHttpInfo}. * - * @param body (required) - * @return GetMultipleRulesetsResponse + * @return LogFormattingIssuesResponse * @throws ApiException if fails to make API call */ - public GetMultipleRulesetsResponse listMultipleRulesets(GetMultipleRulesetsRequest body) - throws ApiException { - return listMultipleRulesetsWithHttpInfo(body).getData(); + public LogFormattingIssuesResponse listLogFormattingIssues() throws ApiException { + return listLogFormattingIssuesWithHttpInfo(new ListLogFormattingIssuesOptionalParameters()) + .getData(); } /** - * Ruleset get multiple. + * Get Cloud SIEM log formatting issues. * - *

See {@link #listMultipleRulesetsWithHttpInfoAsync}. + *

See {@link #listLogFormattingIssuesWithHttpInfoAsync}. * - * @param body (required) - * @return CompletableFuture<GetMultipleRulesetsResponse> + * @return CompletableFuture<LogFormattingIssuesResponse> */ - public CompletableFuture listMultipleRulesetsAsync( - GetMultipleRulesetsRequest body) { - return listMultipleRulesetsWithHttpInfoAsync(body) + public CompletableFuture listLogFormattingIssuesAsync() { + return listLogFormattingIssuesWithHttpInfoAsync(new ListLogFormattingIssuesOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -11533,130 +13076,559 @@ public CompletableFuture listMultipleRulesetsAsync( } /** - * Get rules for multiple rulesets in batch. + * Get Cloud SIEM log formatting issues. * - * @param body (required) - * @return ApiResponse<GetMultipleRulesetsResponse> + *

See {@link #listLogFormattingIssuesWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return LogFormattingIssuesResponse + * @throws ApiException if fails to make API call + */ + public LogFormattingIssuesResponse listLogFormattingIssues( + ListLogFormattingIssuesOptionalParameters parameters) throws ApiException { + return listLogFormattingIssuesWithHttpInfo(parameters).getData(); + } + + /** + * Get Cloud SIEM log formatting issues. + * + *

See {@link #listLogFormattingIssuesWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<LogFormattingIssuesResponse> + */ + public CompletableFuture listLogFormattingIssuesAsync( + ListLogFormattingIssuesOptionalParameters parameters) { + return listLogFormattingIssuesWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of log sources whose logs are not properly formatted for Cloud SIEM detection + * rules in the requested time range. Each item identifies a log source and the machine-readable + * reason its logs cannot be used by detection rules. Primarily used by the Cloud SIEM UI to + * surface onboarding and pipeline warnings, but also useful for programmatic health checks. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<LogFormattingIssuesResponse> * @throws ApiException if fails to make API call * @http.response.details * * * * + * * *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
*/ - public ApiResponse listMultipleRulesetsWithHttpInfo( - GetMultipleRulesetsRequest body) throws ApiException { + public ApiResponse listLogFormattingIssuesWithHttpInfo( + ListLogFormattingIssuesOptionalParameters parameters) throws ApiException { // Check if unstable operation is enabled - String operationId = "listMultipleRulesets"; + String operationId = "listLogFormattingIssues"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); } - Object localVarPostBody = body; - - // verify the required parameter 'body' is set - if (body == null) { - throw new ApiException( - 400, "Missing the required parameter 'body' when calling listMultipleRulesets"); - } + Object localVarPostBody = null; + String filterFrom = parameters.filterFrom; + String filterTo = parameters.filterTo; // create path and map variables - String localVarPath = "/api/v2/static-analysis/rulesets"; + String localVarPath = "/api/v2/security_monitoring/log_formatting_issues"; + List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listMultipleRulesets", + "v2.SecurityMonitoringApi.listLogFormattingIssues", localVarPath, - new ArrayList(), + localVarQueryParams, localVarHeaderParams, new HashMap(), new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); return apiClient.invokeAPI( - "POST", + "GET", builder, localVarHeaderParams, - new String[] {"application/json"}, + new String[] {}, localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Ruleset get multiple. + * Get Cloud SIEM log formatting issues. * - *

See {@link #listMultipleRulesetsWithHttpInfo}. + *

See {@link #listLogFormattingIssuesWithHttpInfo}. * - * @param body (required) - * @return CompletableFuture<ApiResponse<GetMultipleRulesetsResponse>> + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<LogFormattingIssuesResponse>> */ - public CompletableFuture> - listMultipleRulesetsWithHttpInfoAsync(GetMultipleRulesetsRequest body) { + public CompletableFuture> + listLogFormattingIssuesWithHttpInfoAsync( + ListLogFormattingIssuesOptionalParameters parameters) { // Check if unstable operation is enabled - String operationId = "listMultipleRulesets"; + String operationId = "listLogFormattingIssues"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); return result; } - Object localVarPostBody = body; - - // verify the required parameter 'body' is set - if (body == null) { - CompletableFuture> result = - new CompletableFuture<>(); - result.completeExceptionally( - new ApiException( - 400, "Missing the required parameter 'body' when calling listMultipleRulesets")); - return result; - } + Object localVarPostBody = null; + String filterFrom = parameters.filterFrom; + String filterTo = parameters.filterTo; // create path and map variables - String localVarPath = "/api/v2/static-analysis/rulesets"; + String localVarPath = "/api/v2/security_monitoring/log_formatting_issues"; + List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listMultipleRulesets", + "v2.SecurityMonitoringApi.listLogFormattingIssues", localVarPath, - new ArrayList(), + localVarQueryParams, localVarHeaderParams, new HashMap(), new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } return apiClient.invokeAPIAsync( - "POST", + "GET", builder, localVarHeaderParams, - new String[] {"application/json"}, + new String[] {}, localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } - /** Manage optional parameters to listScannedAssetsMetadata. */ - public static class ListScannedAssetsMetadataOptionalParameters { - private String pageToken; - private Long pageNumber; - private CloudAssetType filterAssetType; + /** + * Ruleset get multiple. + * + *

See {@link #listMultipleRulesetsWithHttpInfo}. + * + * @param body (required) + * @return GetMultipleRulesetsResponse + * @throws ApiException if fails to make API call + */ + public GetMultipleRulesetsResponse listMultipleRulesets(GetMultipleRulesetsRequest body) + throws ApiException { + return listMultipleRulesetsWithHttpInfo(body).getData(); + } + + /** + * Ruleset get multiple. + * + *

See {@link #listMultipleRulesetsWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture<GetMultipleRulesetsResponse> + */ + public CompletableFuture listMultipleRulesetsAsync( + GetMultipleRulesetsRequest body) { + return listMultipleRulesetsWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get rules for multiple rulesets in batch. + * + * @param body (required) + * @return ApiResponse<GetMultipleRulesetsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
429 Too many requests -
+ */ + public ApiResponse listMultipleRulesetsWithHttpInfo( + GetMultipleRulesetsRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listMultipleRulesets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling listMultipleRulesets"); + } + // create path and map variables + String localVarPath = "/api/v2/static-analysis/rulesets"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listMultipleRulesets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Ruleset get multiple. + * + *

See {@link #listMultipleRulesetsWithHttpInfo}. + * + * @param body (required) + * @return CompletableFuture<ApiResponse<GetMultipleRulesetsResponse>> + */ + public CompletableFuture> + listMultipleRulesetsWithHttpInfoAsync(GetMultipleRulesetsRequest body) { + // Check if unstable operation is enabled + String operationId = "listMultipleRulesets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling listMultipleRulesets")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/static-analysis/rulesets"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listMultipleRulesets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listSampleLogGenerationSubscriptions. */ + public static class ListSampleLogGenerationSubscriptionsOptionalParameters { + private SampleLogGenerationSubscriptionsStatusFilter status; + private OffsetDateTime startTimestamp; + private OffsetDateTime endTimestamp; + + /** + * Set status. + * + * @param status Filter the subscriptions by status. Use active to return only + * currently active subscriptions, or all to return every subscription + * including expired ones. Ignored when start_timestamp is provided. Defaults + * to active. (optional, default to "active") + * @return ListSampleLogGenerationSubscriptionsOptionalParameters + */ + public ListSampleLogGenerationSubscriptionsOptionalParameters status( + SampleLogGenerationSubscriptionsStatusFilter status) { + this.status = status; + return this; + } + + /** + * Set startTimestamp. + * + * @param startTimestamp The start of the time range, as an RFC3339 timestamp. When provided, + * the response includes every subscription that was active at any point in + * [start_timestamp, end_timestamp], and the status filter is ignored. + * (optional) + * @return ListSampleLogGenerationSubscriptionsOptionalParameters + */ + public ListSampleLogGenerationSubscriptionsOptionalParameters startTimestamp( + OffsetDateTime startTimestamp) { + this.startTimestamp = startTimestamp; + return this; + } + + /** + * Set endTimestamp. + * + * @param endTimestamp The end of the time range, as an RFC3339 timestamp. Ignored unless + * start_timestamp is set. Defaults to the current time when start_timestamp + * is provided. (optional) + * @return ListSampleLogGenerationSubscriptionsOptionalParameters + */ + public ListSampleLogGenerationSubscriptionsOptionalParameters endTimestamp( + OffsetDateTime endTimestamp) { + this.endTimestamp = endTimestamp; + return this; + } + } + + /** + * Get sample log generation subscriptions. + * + *

See {@link #listSampleLogGenerationSubscriptionsWithHttpInfo}. + * + * @return SampleLogGenerationSubscriptionsResponse + * @throws ApiException if fails to make API call + */ + public SampleLogGenerationSubscriptionsResponse listSampleLogGenerationSubscriptions() + throws ApiException { + return listSampleLogGenerationSubscriptionsWithHttpInfo( + new ListSampleLogGenerationSubscriptionsOptionalParameters()) + .getData(); + } + + /** + * Get sample log generation subscriptions. + * + *

See {@link #listSampleLogGenerationSubscriptionsWithHttpInfoAsync}. + * + * @return CompletableFuture<SampleLogGenerationSubscriptionsResponse> + */ + public CompletableFuture + listSampleLogGenerationSubscriptionsAsync() { + return listSampleLogGenerationSubscriptionsWithHttpInfoAsync( + new ListSampleLogGenerationSubscriptionsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get sample log generation subscriptions. + * + *

See {@link #listSampleLogGenerationSubscriptionsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return SampleLogGenerationSubscriptionsResponse + * @throws ApiException if fails to make API call + */ + public SampleLogGenerationSubscriptionsResponse listSampleLogGenerationSubscriptions( + ListSampleLogGenerationSubscriptionsOptionalParameters parameters) throws ApiException { + return listSampleLogGenerationSubscriptionsWithHttpInfo(parameters).getData(); + } + + /** + * Get sample log generation subscriptions. + * + *

See {@link #listSampleLogGenerationSubscriptionsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SampleLogGenerationSubscriptionsResponse> + */ + public CompletableFuture + listSampleLogGenerationSubscriptionsAsync( + ListSampleLogGenerationSubscriptionsOptionalParameters parameters) { + return listSampleLogGenerationSubscriptionsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the sample log generation subscriptions for the organization. Sample log generation injects + * representative example logs for a given Cloud SIEM content pack into the Logs platform, which + * can be used to test detection rules without onboarding the underlying integration first. + * + *

Availability: this endpoint is restricted to Cloud SIEM trial organizations + * on an eligible pricing model. Other organizations receive a 403 Forbidden + * (non-trial orgs) or a 400 Bad Request (feature disabled), and legacy pricing tiers + * receive a response with status: not_available. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<SampleLogGenerationSubscriptionsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse + listSampleLogGenerationSubscriptionsWithHttpInfo( + ListSampleLogGenerationSubscriptionsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listSampleLogGenerationSubscriptions"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + SampleLogGenerationSubscriptionsStatusFilter status = parameters.status; + OffsetDateTime startTimestamp = parameters.startTimestamp; + OffsetDateTime endTimestamp = parameters.endTimestamp; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/sample_log_generation/subscriptions"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "status", status)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "start_timestamp", startTimestamp)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "end_timestamp", endTimestamp)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSampleLogGenerationSubscriptions", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get sample log generation subscriptions. + * + *

See {@link #listSampleLogGenerationSubscriptionsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SampleLogGenerationSubscriptionsResponse>> + */ + public CompletableFuture> + listSampleLogGenerationSubscriptionsWithHttpInfoAsync( + ListSampleLogGenerationSubscriptionsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listSampleLogGenerationSubscriptions"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + SampleLogGenerationSubscriptionsStatusFilter status = parameters.status; + OffsetDateTime startTimestamp = parameters.startTimestamp; + OffsetDateTime endTimestamp = parameters.endTimestamp; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/sample_log_generation/subscriptions"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "status", status)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "start_timestamp", startTimestamp)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "end_timestamp", endTimestamp)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSampleLogGenerationSubscriptions", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listScannedAssetsMetadata. */ + public static class ListScannedAssetsMetadataOptionalParameters { + private String pageToken; + private Long pageNumber; + private CloudAssetType filterAssetType; private String filterAssetName; private String filterLastSuccessOrigin; private String filterLastSuccessEnv; @@ -11948,30 +13920,141 @@ public ApiResponse listScannedAssetsMetadataWithHttpInfo( List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[token]", pageToken)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); - localVarQueryParams.addAll( - apiClient.parameterToPairs("", "filter[asset.type]", filterAssetType)); - localVarQueryParams.addAll( - apiClient.parameterToPairs("", "filter[asset.name]", filterAssetName)); - localVarQueryParams.addAll( - apiClient.parameterToPairs("", "filter[last_success.origin]", filterLastSuccessOrigin)); - localVarQueryParams.addAll( - apiClient.parameterToPairs("", "filter[last_success.env]", filterLastSuccessEnv)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[token]", pageToken)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[asset.type]", filterAssetType)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[asset.name]", filterAssetName)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[last_success.origin]", filterLastSuccessOrigin)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[last_success.env]", filterLastSuccessEnv)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listScannedAssetsMetadata", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all security filters. + * + *

See {@link #listSecurityFiltersWithHttpInfo}. + * + * @return SecurityFiltersResponse + * @throws ApiException if fails to make API call + */ + public SecurityFiltersResponse listSecurityFilters() throws ApiException { + return listSecurityFiltersWithHttpInfo().getData(); + } + + /** + * Get all security filters. + * + *

See {@link #listSecurityFiltersWithHttpInfoAsync}. + * + * @return CompletableFuture<SecurityFiltersResponse> + */ + public CompletableFuture listSecurityFiltersAsync() { + return listSecurityFiltersWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of configured security filters with their definitions. + * + * @return ApiResponse<SecurityFiltersResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse listSecurityFiltersWithHttpInfo() + throws ApiException { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityFilters", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all security filters. + * + *

See {@link #listSecurityFiltersWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<SecurityFiltersResponse>> + */ + public CompletableFuture> + listSecurityFiltersWithHttpInfoAsync() { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + + Map localVarHeaderParams = new HashMap(); Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listScannedAssetsMetadata", + "v2.SecurityMonitoringApi.listSecurityFilters", localVarPath, - localVarQueryParams, + new ArrayList(), localVarHeaderParams, new HashMap(), new String[] {"application/json"}, - new String[] {"apiKeyAuth", "appKeyAuth"}); + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -11983,30 +14066,30 @@ public ApiResponse listScannedAssetsMetadataWithHttpInfo( localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get all security filters. + * Get the version history of security filters. * - *

See {@link #listSecurityFiltersWithHttpInfo}. + *

See {@link #listSecurityFilterVersionsWithHttpInfo}. * - * @return SecurityFiltersResponse + * @return SecurityFilterVersionsResponse * @throws ApiException if fails to make API call */ - public SecurityFiltersResponse listSecurityFilters() throws ApiException { - return listSecurityFiltersWithHttpInfo().getData(); + public SecurityFilterVersionsResponse listSecurityFilterVersions() throws ApiException { + return listSecurityFilterVersionsWithHttpInfo().getData(); } /** - * Get all security filters. + * Get the version history of security filters. * - *

See {@link #listSecurityFiltersWithHttpInfoAsync}. + *

See {@link #listSecurityFilterVersionsWithHttpInfoAsync}. * - * @return CompletableFuture<SecurityFiltersResponse> + * @return CompletableFuture<SecurityFilterVersionsResponse> */ - public CompletableFuture listSecurityFiltersAsync() { - return listSecurityFiltersWithHttpInfoAsync() + public CompletableFuture listSecurityFilterVersionsAsync() { + return listSecurityFilterVersionsWithHttpInfoAsync() .thenApply( response -> { return response.getData(); @@ -12014,9 +14097,11 @@ public CompletableFuture listSecurityFiltersAsync() { } /** - * Get the list of configured security filters with their definitions. + * Get the configured security filters at each historical version of the configuration. Each entry + * in the response represents the set of all security filters at a given version, ordered from the + * most recent version to the oldest. * - * @return ApiResponse<SecurityFiltersResponse> + * @return ApiResponse<SecurityFilterVersionsResponse> * @throws ApiException if fails to make API call * @http.response.details * @@ -12027,17 +14112,17 @@ public CompletableFuture listSecurityFiltersAsync() { * *
429 Too many requests -
*/ - public ApiResponse listSecurityFiltersWithHttpInfo() + public ApiResponse listSecurityFilterVersionsWithHttpInfo() throws ApiException { Object localVarPostBody = null; // create path and map variables - String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + String localVarPath = "/api/v2/security_monitoring/configuration/security_filters/versions"; Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityFilters", + "v2.SecurityMonitoringApi.listSecurityFilterVersions", localVarPath, new ArrayList(), localVarHeaderParams, @@ -12052,21 +14137,21 @@ public ApiResponse listSecurityFiltersWithHttpInfo() localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get all security filters. + * Get the version history of security filters. * - *

See {@link #listSecurityFiltersWithHttpInfo}. + *

See {@link #listSecurityFilterVersionsWithHttpInfo}. * - * @return CompletableFuture<ApiResponse<SecurityFiltersResponse>> + * @return CompletableFuture<ApiResponse<SecurityFilterVersionsResponse>> */ - public CompletableFuture> - listSecurityFiltersWithHttpInfoAsync() { + public CompletableFuture> + listSecurityFilterVersionsWithHttpInfoAsync() { Object localVarPostBody = null; // create path and map variables - String localVarPath = "/api/v2/security_monitoring/configuration/security_filters"; + String localVarPath = "/api/v2/security_monitoring/configuration/security_filters/versions"; Map localVarHeaderParams = new HashMap(); @@ -12074,7 +14159,7 @@ public ApiResponse listSecurityFiltersWithHttpInfo() try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityFilters", + "v2.SecurityMonitoringApi.listSecurityFilterVersions", localVarPath, new ArrayList(), localVarHeaderParams, @@ -12082,7 +14167,8 @@ public ApiResponse listSecurityFiltersWithHttpInfo() new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = new CompletableFuture<>(); + CompletableFuture> result = + new CompletableFuture<>(); result.completeExceptionally(ex); return result; } @@ -12094,7 +14180,7 @@ public ApiResponse listSecurityFiltersWithHttpInfo() localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** Manage optional parameters to listSecurityFindings. */ @@ -12550,57 +14636,276 @@ public ListSecurityMonitoringHistsignalsOptionalParameters sort( return this; } - /** - * Set pageCursor. - * - * @param pageCursor A list of results using the cursor provided in the previous query. - * (optional) - * @return ListSecurityMonitoringHistsignalsOptionalParameters - */ - public ListSecurityMonitoringHistsignalsOptionalParameters pageCursor(String pageCursor) { - this.pageCursor = pageCursor; - return this; - } + /** + * Set pageCursor. + * + * @param pageCursor A list of results using the cursor provided in the previous query. + * (optional) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit The maximum number of security signals in the response. (optional, default + * to 10) + * @return ListSecurityMonitoringHistsignalsOptionalParameters + */ + public ListSecurityMonitoringHistsignalsOptionalParameters pageLimit(Integer pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals() + throws ApiException { + return listSecurityMonitoringHistsignalsWithHttpInfo( + new ListSecurityMonitoringHistsignalsOptionalParameters()) + .getData(); + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfoAsync}. + * + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + listSecurityMonitoringHistsignalsAsync() { + return listSecurityMonitoringHistsignalsWithHttpInfoAsync( + new ListSecurityMonitoringHistsignalsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return SecurityMonitoringSignalsListResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + return listSecurityMonitoringHistsignalsWithHttpInfo(parameters).getData(); + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + */ + public CompletableFuture + listSecurityMonitoringHistsignalsAsync( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) { + return listSecurityMonitoringHistsignalsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List hist signals. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<SecurityMonitoringSignalsListResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse + listSecurityMonitoringHistsignalsWithHttpInfo( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listSecurityMonitoringHistsignals"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + String filterQuery = parameters.filterQuery; + OffsetDateTime filterFrom = parameters.filterFrom; + OffsetDateTime filterTo = parameters.filterTo; + SecurityMonitoringSignalsSort sort = parameters.sort; + String pageCursor = parameters.pageCursor; + Integer pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = "/api/v2/siem-historical-detections/histsignals"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityMonitoringHistsignals", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List hist signals. + * + *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<SecurityMonitoringSignalsListResponse>> + */ + public CompletableFuture> + listSecurityMonitoringHistsignalsWithHttpInfoAsync( + ListSecurityMonitoringHistsignalsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listSecurityMonitoringHistsignals"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + String filterQuery = parameters.filterQuery; + OffsetDateTime filterFrom = parameters.filterFrom; + OffsetDateTime filterTo = parameters.filterTo; + SecurityMonitoringSignalsSort sort = parameters.sort; + String pageCursor = parameters.pageCursor; + Integer pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = "/api/v2/siem-historical-detections/histsignals"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityMonitoringHistsignals", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listSecurityMonitoringIntegrationConfigs. */ + public static class ListSecurityMonitoringIntegrationConfigsOptionalParameters { + private SecurityMonitoringIntegrationType filterIntegrationType; /** - * Set pageLimit. + * Set filterIntegrationType. * - * @param pageLimit The maximum number of security signals in the response. (optional, default - * to 10) - * @return ListSecurityMonitoringHistsignalsOptionalParameters + * @param filterIntegrationType Filter the entity context sync configurations by source type. + * (optional) + * @return ListSecurityMonitoringIntegrationConfigsOptionalParameters */ - public ListSecurityMonitoringHistsignalsOptionalParameters pageLimit(Integer pageLimit) { - this.pageLimit = pageLimit; + public ListSecurityMonitoringIntegrationConfigsOptionalParameters filterIntegrationType( + SecurityMonitoringIntegrationType filterIntegrationType) { + this.filterIntegrationType = filterIntegrationType; return this; } } /** - * List hist signals. + * List entity context sync configurations. * - *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + *

See {@link #listSecurityMonitoringIntegrationConfigsWithHttpInfo}. * - * @return SecurityMonitoringSignalsListResponse + * @return SecurityMonitoringIntegrationConfigsResponse * @throws ApiException if fails to make API call */ - public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals() + public SecurityMonitoringIntegrationConfigsResponse listSecurityMonitoringIntegrationConfigs() throws ApiException { - return listSecurityMonitoringHistsignalsWithHttpInfo( - new ListSecurityMonitoringHistsignalsOptionalParameters()) + return listSecurityMonitoringIntegrationConfigsWithHttpInfo( + new ListSecurityMonitoringIntegrationConfigsOptionalParameters()) .getData(); } /** - * List hist signals. + * List entity context sync configurations. * - *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfoAsync}. + *

See {@link #listSecurityMonitoringIntegrationConfigsWithHttpInfoAsync}. * - * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + * @return CompletableFuture<SecurityMonitoringIntegrationConfigsResponse> */ - public CompletableFuture - listSecurityMonitoringHistsignalsAsync() { - return listSecurityMonitoringHistsignalsWithHttpInfoAsync( - new ListSecurityMonitoringHistsignalsOptionalParameters()) + public CompletableFuture + listSecurityMonitoringIntegrationConfigsAsync() { + return listSecurityMonitoringIntegrationConfigsWithHttpInfoAsync( + new ListSecurityMonitoringIntegrationConfigsOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -12608,31 +14913,31 @@ public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals() } /** - * List hist signals. + * List entity context sync configurations. * - *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + *

See {@link #listSecurityMonitoringIntegrationConfigsWithHttpInfo}. * * @param parameters Optional parameters for the request. - * @return SecurityMonitoringSignalsListResponse + * @return SecurityMonitoringIntegrationConfigsResponse * @throws ApiException if fails to make API call */ - public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( - ListSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { - return listSecurityMonitoringHistsignalsWithHttpInfo(parameters).getData(); + public SecurityMonitoringIntegrationConfigsResponse listSecurityMonitoringIntegrationConfigs( + ListSecurityMonitoringIntegrationConfigsOptionalParameters parameters) throws ApiException { + return listSecurityMonitoringIntegrationConfigsWithHttpInfo(parameters).getData(); } /** - * List hist signals. + * List entity context sync configurations. * - *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfoAsync}. + *

See {@link #listSecurityMonitoringIntegrationConfigsWithHttpInfoAsync}. * * @param parameters Optional parameters for the request. - * @return CompletableFuture<SecurityMonitoringSignalsListResponse> + * @return CompletableFuture<SecurityMonitoringIntegrationConfigsResponse> */ - public CompletableFuture - listSecurityMonitoringHistsignalsAsync( - ListSecurityMonitoringHistsignalsOptionalParameters parameters) { - return listSecurityMonitoringHistsignalsWithHttpInfoAsync(parameters) + public CompletableFuture + listSecurityMonitoringIntegrationConfigsAsync( + ListSecurityMonitoringIntegrationConfigsOptionalParameters parameters) { + return listSecurityMonitoringIntegrationConfigsWithHttpInfoAsync(parameters) .thenApply( response -> { return response.getData(); @@ -12640,55 +14945,47 @@ public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( } /** - * List hist signals. + * List the entity context sync configurations for Cloud SIEM. Each configuration connects Cloud + * SIEM to an external source that provides entities (for example, users from an identity + * provider) for use in signals and the entity explorer. * * @param parameters Optional parameters for the request. - * @return ApiResponse<SecurityMonitoringSignalsListResponse> + * @return ApiResponse<SecurityMonitoringIntegrationConfigsResponse> * @throws ApiException if fails to make API call * @http.response.details * * * * - * * - * * *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
*/ - public ApiResponse - listSecurityMonitoringHistsignalsWithHttpInfo( - ListSecurityMonitoringHistsignalsOptionalParameters parameters) throws ApiException { + public ApiResponse + listSecurityMonitoringIntegrationConfigsWithHttpInfo( + ListSecurityMonitoringIntegrationConfigsOptionalParameters parameters) + throws ApiException { // Check if unstable operation is enabled - String operationId = "listSecurityMonitoringHistsignals"; + String operationId = "listSecurityMonitoringIntegrationConfigs"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); } Object localVarPostBody = null; - String filterQuery = parameters.filterQuery; - OffsetDateTime filterFrom = parameters.filterFrom; - OffsetDateTime filterTo = parameters.filterTo; - SecurityMonitoringSignalsSort sort = parameters.sort; - String pageCursor = parameters.pageCursor; - Integer pageLimit = parameters.pageLimit; + SecurityMonitoringIntegrationType filterIntegrationType = parameters.filterIntegrationType; // create path and map variables - String localVarPath = "/api/v2/siem-historical-detections/histsignals"; + String localVarPath = "/api/v2/security_monitoring/configuration/integration_config"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[integration_type]", filterIntegrationType)); Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityMonitoringHistsignals", + "v2.SecurityMonitoringApi.listSecurityMonitoringIntegrationConfigs", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -12703,56 +15000,48 @@ public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * List hist signals. + * List entity context sync configurations. * - *

See {@link #listSecurityMonitoringHistsignalsWithHttpInfo}. + *

See {@link #listSecurityMonitoringIntegrationConfigsWithHttpInfo}. * * @param parameters Optional parameters for the request. - * @return CompletableFuture<ApiResponse<SecurityMonitoringSignalsListResponse>> + * @return + * CompletableFuture<ApiResponse<SecurityMonitoringIntegrationConfigsResponse>> */ - public CompletableFuture> - listSecurityMonitoringHistsignalsWithHttpInfoAsync( - ListSecurityMonitoringHistsignalsOptionalParameters parameters) { + public CompletableFuture> + listSecurityMonitoringIntegrationConfigsWithHttpInfoAsync( + ListSecurityMonitoringIntegrationConfigsOptionalParameters parameters) { // Check if unstable operation is enabled - String operationId = "listSecurityMonitoringHistsignals"; + String operationId = "listSecurityMonitoringIntegrationConfigs"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); return result; } Object localVarPostBody = null; - String filterQuery = parameters.filterQuery; - OffsetDateTime filterFrom = parameters.filterFrom; - OffsetDateTime filterTo = parameters.filterTo; - SecurityMonitoringSignalsSort sort = parameters.sort; - String pageCursor = parameters.pageCursor; - Integer pageLimit = parameters.pageLimit; + SecurityMonitoringIntegrationType filterIntegrationType = parameters.filterIntegrationType; // create path and map variables - String localVarPath = "/api/v2/siem-historical-detections/histsignals"; + String localVarPath = "/api/v2/security_monitoring/configuration/integration_config"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[query]", filterQuery)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[from]", filterFrom)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[to]", filterTo)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "sort", sort)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); - localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[integration_type]", filterIntegrationType)); Invocation.Builder builder; try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityMonitoringHistsignals", + "v2.SecurityMonitoringApi.listSecurityMonitoringIntegrationConfigs", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -12760,7 +15049,7 @@ public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; @@ -12773,7 +15062,7 @@ public SecurityMonitoringSignalsListResponse listSecurityMonitoringHistsignals( localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** Manage optional parameters to listSecurityMonitoringRules. */ @@ -17571,10 +19860,207 @@ public SecurityMonitoringCriticalAssetResponse updateSecurityMonitoringCriticalA } // create path and map variables String localVarPath = - "/api/v2/security_monitoring/configuration/critical_assets/{critical_asset_id}" + "/api/v2/security_monitoring/configuration/critical_assets/{critical_asset_id}" + .replaceAll( + "\\{" + "critical_asset_id" + "\\}", + apiClient.escapeString(criticalAssetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.updateSecurityMonitoringCriticalAsset", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an entity context sync configuration. + * + *

See {@link #updateSecurityMonitoringIntegrationConfigWithHttpInfo}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @param body The fields to update on the integration configuration. (required) + * @return SecurityMonitoringIntegrationConfigResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringIntegrationConfigResponse updateSecurityMonitoringIntegrationConfig( + String integrationConfigId, SecurityMonitoringIntegrationConfigUpdateRequest body) + throws ApiException { + return updateSecurityMonitoringIntegrationConfigWithHttpInfo(integrationConfigId, body) + .getData(); + } + + /** + * Update an entity context sync configuration. + * + *

See {@link #updateSecurityMonitoringIntegrationConfigWithHttpInfoAsync}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @param body The fields to update on the integration configuration. (required) + * @return CompletableFuture<SecurityMonitoringIntegrationConfigResponse> + */ + public CompletableFuture + updateSecurityMonitoringIntegrationConfigAsync( + String integrationConfigId, SecurityMonitoringIntegrationConfigUpdateRequest body) { + return updateSecurityMonitoringIntegrationConfigWithHttpInfoAsync(integrationConfigId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update an existing entity context sync configuration. Supports partial updates; only the fields + * provided in the request body are modified. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @param body The fields to update on the integration configuration. (required) + * @return ApiResponse<SecurityMonitoringIntegrationConfigResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse + updateSecurityMonitoringIntegrationConfigWithHttpInfo( + String integrationConfigId, SecurityMonitoringIntegrationConfigUpdateRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " updateSecurityMonitoringIntegrationConfig"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " updateSecurityMonitoringIntegrationConfig"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.updateSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an entity context sync configuration. + * + *

See {@link #updateSecurityMonitoringIntegrationConfigWithHttpInfo}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @param body The fields to update on the integration configuration. (required) + * @return CompletableFuture<ApiResponse<SecurityMonitoringIntegrationConfigResponse>> + */ + public CompletableFuture> + updateSecurityMonitoringIntegrationConfigWithHttpInfoAsync( + String integrationConfigId, SecurityMonitoringIntegrationConfigUpdateRequest body) { + // Check if unstable operation is enabled + String operationId = "updateSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " updateSecurityMonitoringIntegrationConfig")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " updateSecurityMonitoringIntegrationConfig")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}" .replaceAll( - "\\{" + "critical_asset_id" + "\\}", - apiClient.escapeString(criticalAssetId.toString())); + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); Map localVarHeaderParams = new HashMap(); @@ -17582,7 +20068,7 @@ public SecurityMonitoringCriticalAssetResponse updateSecurityMonitoringCriticalA try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.updateSecurityMonitoringCriticalAsset", + "v2.SecurityMonitoringApi.updateSecurityMonitoringIntegrationConfig", localVarPath, new ArrayList(), localVarHeaderParams, @@ -17590,7 +20076,7 @@ public SecurityMonitoringCriticalAssetResponse updateSecurityMonitoringCriticalA new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); } catch (ApiException ex) { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; @@ -17603,7 +20089,7 @@ public SecurityMonitoringCriticalAssetResponse updateSecurityMonitoringCriticalA localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** @@ -17947,6 +20433,325 @@ public SecurityMonitoringSuppressionResponse updateSecurityMonitoringSuppression new GenericType() {}); } + /** + * Validate an entity context sync configuration. + * + *

See {@link #validateSecurityMonitoringIntegrationConfigWithHttpInfo}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @throws ApiException if fails to make API call + */ + public void validateSecurityMonitoringIntegrationConfig(String integrationConfigId) + throws ApiException { + validateSecurityMonitoringIntegrationConfigWithHttpInfo(integrationConfigId); + } + + /** + * Validate an entity context sync configuration. + * + *

See {@link #validateSecurityMonitoringIntegrationConfigWithHttpInfoAsync}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return CompletableFuture + */ + public CompletableFuture validateSecurityMonitoringIntegrationConfigAsync( + String integrationConfigId) { + return validateSecurityMonitoringIntegrationConfigWithHttpInfoAsync(integrationConfigId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Validate the credentials currently stored on an existing entity context sync configuration. + * Returns a 200 status code if the credentials are still valid against the external entity + * source. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse validateSecurityMonitoringIntegrationConfigWithHttpInfo( + String integrationConfigId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "validateSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " validateSecurityMonitoringIntegrationConfig"); + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}/validate" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.validateSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Validate an entity context sync configuration. + * + *

See {@link #validateSecurityMonitoringIntegrationConfigWithHttpInfo}. + * + * @param integrationConfigId The ID of the entity context sync configuration. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> + validateSecurityMonitoringIntegrationConfigWithHttpInfoAsync(String integrationConfigId) { + // Check if unstable operation is enabled + String operationId = "validateSecurityMonitoringIntegrationConfig"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'integrationConfigId' is set + if (integrationConfigId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'integrationConfigId' when calling" + + " validateSecurityMonitoringIntegrationConfig")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security_monitoring/configuration/integration_config/{integration_config_id}/validate" + .replaceAll( + "\\{" + "integration_config_id" + "\\}", + apiClient.escapeString(integrationConfigId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.validateSecurityMonitoringIntegrationConfig", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Validate entity context sync credentials. + * + *

See {@link #validateSecurityMonitoringIntegrationCredentialsWithHttpInfo}. + * + * @param body The credentials to validate. (required) + * @throws ApiException if fails to make API call + */ + public void validateSecurityMonitoringIntegrationCredentials( + SecurityMonitoringIntegrationCredentialsValidateRequest body) throws ApiException { + validateSecurityMonitoringIntegrationCredentialsWithHttpInfo(body); + } + + /** + * Validate entity context sync credentials. + * + *

See {@link #validateSecurityMonitoringIntegrationCredentialsWithHttpInfoAsync}. + * + * @param body The credentials to validate. (required) + * @return CompletableFuture + */ + public CompletableFuture validateSecurityMonitoringIntegrationCredentialsAsync( + SecurityMonitoringIntegrationCredentialsValidateRequest body) { + return validateSecurityMonitoringIntegrationCredentialsWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Validate a set of credentials against the external entity source before creating a sync + * configuration. Returns a 200 status code if the credentials are valid. + * + * @param body The credentials to validate. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse validateSecurityMonitoringIntegrationCredentialsWithHttpInfo( + SecurityMonitoringIntegrationCredentialsValidateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "validateSecurityMonitoringIntegrationCredentials"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " validateSecurityMonitoringIntegrationCredentials"); + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/integration_config/validate"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.validateSecurityMonitoringIntegrationCredentials", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Validate entity context sync credentials. + * + *

See {@link #validateSecurityMonitoringIntegrationCredentialsWithHttpInfo}. + * + * @param body The credentials to validate. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> + validateSecurityMonitoringIntegrationCredentialsWithHttpInfoAsync( + SecurityMonitoringIntegrationCredentialsValidateRequest body) { + // Check if unstable operation is enabled + String operationId = "validateSecurityMonitoringIntegrationCredentials"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " validateSecurityMonitoringIntegrationCredentials")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/integration_config/validate"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.validateSecurityMonitoringIntegrationCredentials", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + /** * Validate a detection rule. * diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityContextEntity.java b/src/main/java/com/datadog/api/client/v2/model/EntityContextEntity.java new file mode 100644 index 00000000000..fadc8d3f592 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/EntityContextEntity.java @@ -0,0 +1,206 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single entity returned by the entity context endpoint. */ +@JsonPropertyOrder({ + EntityContextEntity.JSON_PROPERTY_ATTRIBUTES, + EntityContextEntity.JSON_PROPERTY_ID, + EntityContextEntity.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class EntityContextEntity { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private EntityContextEntityAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type = "entity"; + + public EntityContextEntity() {} + + @JsonCreator + public EntityContextEntity( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + EntityContextEntityAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) String type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + } + + public EntityContextEntity attributes(EntityContextEntityAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes of an entity context entry, grouping all the historical revisions of the entity. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public EntityContextEntityAttributes getAttributes() { + return attributes; + } + + public void setAttributes(EntityContextEntityAttributes attributes) { + this.attributes = attributes; + } + + public EntityContextEntity id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the entity. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public EntityContextEntity type(String type) { + this.type = type; + return this; + } + + /** + * The type of the entity. Reflects the underlying entity kind from the entity context store (for + * example, siem_entity_identity for identities). Defaults to entity + * when the kind is unknown. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return EntityContextEntity + */ + @JsonAnySetter + public EntityContextEntity putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this EntityContextEntity object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityContextEntity entityContextEntity = (EntityContextEntity) o; + return Objects.equals(this.attributes, entityContextEntity.attributes) + && Objects.equals(this.id, entityContextEntity.id) + && Objects.equals(this.type, entityContextEntity.type) + && Objects.equals(this.additionalProperties, entityContextEntity.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityContextEntity {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityContextEntityAttributes.java b/src/main/java/com/datadog/api/client/v2/model/EntityContextEntityAttributes.java new file mode 100644 index 00000000000..397773090a9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/EntityContextEntityAttributes.java @@ -0,0 +1,158 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * The attributes of an entity context entry, grouping all the historical revisions of the entity. + */ +@JsonPropertyOrder({EntityContextEntityAttributes.JSON_PROPERTY_REVISIONS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class EntityContextEntityAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_REVISIONS = "revisions"; + private List revisions = new ArrayList<>(); + + public EntityContextEntityAttributes() {} + + @JsonCreator + public EntityContextEntityAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_REVISIONS) + List revisions) { + this.revisions = revisions; + } + + public EntityContextEntityAttributes revisions(List revisions) { + this.revisions = revisions; + for (EntityContextRevision item : revisions) { + this.unparsed |= item.unparsed; + } + return this; + } + + public EntityContextEntityAttributes addRevisionsItem(EntityContextRevision revisionsItem) { + this.revisions.add(revisionsItem); + this.unparsed |= revisionsItem.unparsed; + return this; + } + + /** + * The historical revisions of the entity, ordered chronologically. + * + * @return revisions + */ + @JsonProperty(JSON_PROPERTY_REVISIONS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRevisions() { + return revisions; + } + + public void setRevisions(List revisions) { + this.revisions = revisions; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return EntityContextEntityAttributes + */ + @JsonAnySetter + public EntityContextEntityAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this EntityContextEntityAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityContextEntityAttributes entityContextEntityAttributes = (EntityContextEntityAttributes) o; + return Objects.equals(this.revisions, entityContextEntityAttributes.revisions) + && Objects.equals( + this.additionalProperties, entityContextEntityAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(revisions, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityContextEntityAttributes {\n"); + sb.append(" revisions: ").append(toIndentedString(revisions)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityContextPage.java b/src/main/java/com/datadog/api/client/v2/model/EntityContextPage.java new file mode 100644 index 00000000000..48aa3ef25b7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/EntityContextPage.java @@ -0,0 +1,144 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Pagination metadata for the entity context response. */ +@JsonPropertyOrder({EntityContextPage.JSON_PROPERTY_NEXT_TOKEN}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class EntityContextPage { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_NEXT_TOKEN = "next_token"; + private String nextToken; + + public EntityContextPage() {} + + @JsonCreator + public EntityContextPage( + @JsonProperty(required = true, value = JSON_PROPERTY_NEXT_TOKEN) String nextToken) { + this.nextToken = nextToken; + } + + public EntityContextPage nextToken(String nextToken) { + this.nextToken = nextToken; + return this; + } + + /** + * An opaque token to pass as page_token in a subsequent request to retrieve the next + * page of results. Empty when there are no more results. + * + * @return nextToken + */ + @JsonProperty(JSON_PROPERTY_NEXT_TOKEN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getNextToken() { + return nextToken; + } + + public void setNextToken(String nextToken) { + this.nextToken = nextToken; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return EntityContextPage + */ + @JsonAnySetter + public EntityContextPage putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this EntityContextPage object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityContextPage entityContextPage = (EntityContextPage) o; + return Objects.equals(this.nextToken, entityContextPage.nextToken) + && Objects.equals(this.additionalProperties, entityContextPage.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(nextToken, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityContextPage {\n"); + sb.append(" nextToken: ").append(toIndentedString(nextToken)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityContextResponse.java b/src/main/java/com/datadog/api/client/v2/model/EntityContextResponse.java new file mode 100644 index 00000000000..e809dbda2e6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/EntityContextResponse.java @@ -0,0 +1,189 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Response from the entity context endpoint, containing the matching entities and pagination + * metadata. + */ +@JsonPropertyOrder({ + EntityContextResponse.JSON_PROPERTY_DATA, + EntityContextResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class EntityContextResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private EntityContextResponseMeta meta; + + public EntityContextResponse() {} + + @JsonCreator + public EntityContextResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data, + @JsonProperty(required = true, value = JSON_PROPERTY_META) EntityContextResponseMeta meta) { + this.data = data; + this.meta = meta; + this.unparsed |= meta.unparsed; + } + + public EntityContextResponse data(List data) { + this.data = data; + for (EntityContextEntity item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public EntityContextResponse addDataItem(EntityContextEntity dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of entities matching the query. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public EntityContextResponse meta(EntityContextResponseMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Metadata returned alongside the entity context response. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public EntityContextResponseMeta getMeta() { + return meta; + } + + public void setMeta(EntityContextResponseMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return EntityContextResponse + */ + @JsonAnySetter + public EntityContextResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this EntityContextResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityContextResponse entityContextResponse = (EntityContextResponse) o; + return Objects.equals(this.data, entityContextResponse.data) + && Objects.equals(this.meta, entityContextResponse.meta) + && Objects.equals(this.additionalProperties, entityContextResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityContextResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityContextResponseMeta.java b/src/main/java/com/datadog/api/client/v2/model/EntityContextResponseMeta.java new file mode 100644 index 00000000000..89c5b9d0c8b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/EntityContextResponseMeta.java @@ -0,0 +1,177 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Metadata returned alongside the entity context response. */ +@JsonPropertyOrder({ + EntityContextResponseMeta.JSON_PROPERTY_PAGE, + EntityContextResponseMeta.JSON_PROPERTY_TOTAL_COUNT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class EntityContextResponseMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_PAGE = "page"; + private EntityContextPage page; + + public static final String JSON_PROPERTY_TOTAL_COUNT = "total_count"; + private Integer totalCount; + + public EntityContextResponseMeta() {} + + @JsonCreator + public EntityContextResponseMeta( + @JsonProperty(required = true, value = JSON_PROPERTY_PAGE) EntityContextPage page, + @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_COUNT) Integer totalCount) { + this.page = page; + this.unparsed |= page.unparsed; + this.totalCount = totalCount; + } + + public EntityContextResponseMeta page(EntityContextPage page) { + this.page = page; + this.unparsed |= page.unparsed; + return this; + } + + /** + * Pagination metadata for the entity context response. + * + * @return page + */ + @JsonProperty(JSON_PROPERTY_PAGE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public EntityContextPage getPage() { + return page; + } + + public void setPage(EntityContextPage page) { + this.page = page; + } + + public EntityContextResponseMeta totalCount(Integer totalCount) { + this.totalCount = totalCount; + return this; + } + + /** + * The total number of entities matching the query, irrespective of pagination. maximum: + * 2147483647 + * + * @return totalCount + */ + @JsonProperty(JSON_PROPERTY_TOTAL_COUNT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getTotalCount() { + return totalCount; + } + + public void setTotalCount(Integer totalCount) { + this.totalCount = totalCount; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return EntityContextResponseMeta + */ + @JsonAnySetter + public EntityContextResponseMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this EntityContextResponseMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityContextResponseMeta entityContextResponseMeta = (EntityContextResponseMeta) o; + return Objects.equals(this.page, entityContextResponseMeta.page) + && Objects.equals(this.totalCount, entityContextResponseMeta.totalCount) + && Objects.equals( + this.additionalProperties, entityContextResponseMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(page, totalCount, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityContextResponseMeta {\n"); + sb.append(" page: ").append(toIndentedString(page)).append("\n"); + sb.append(" totalCount: ").append(toIndentedString(totalCount)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/EntityContextRevision.java b/src/main/java/com/datadog/api/client/v2/model/EntityContextRevision.java new file mode 100644 index 00000000000..d6f0096cc65 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/EntityContextRevision.java @@ -0,0 +1,214 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * A single historical revision of an entity, including the time range during which the revision was + * observed. + */ +@JsonPropertyOrder({ + EntityContextRevision.JSON_PROPERTY_ATTRIBUTES, + EntityContextRevision.JSON_PROPERTY_FIRST_SEEN_AT, + EntityContextRevision.JSON_PROPERTY_LAST_SEEN_AT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class EntityContextRevision { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private Map attributes = new HashMap(); + + public static final String JSON_PROPERTY_FIRST_SEEN_AT = "first_seen_at"; + private OffsetDateTime firstSeenAt; + + public static final String JSON_PROPERTY_LAST_SEEN_AT = "last_seen_at"; + private OffsetDateTime lastSeenAt; + + public EntityContextRevision() {} + + @JsonCreator + public EntityContextRevision( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + Map attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_FIRST_SEEN_AT) + OffsetDateTime firstSeenAt, + @JsonProperty(required = true, value = JSON_PROPERTY_LAST_SEEN_AT) + OffsetDateTime lastSeenAt) { + this.attributes = attributes; + this.firstSeenAt = firstSeenAt; + this.lastSeenAt = lastSeenAt; + } + + public EntityContextRevision attributes(Map attributes) { + this.attributes = attributes; + return this; + } + + public EntityContextRevision putAttributesItem(String key, Object attributesItem) { + this.attributes.put(key, attributesItem); + return this; + } + + /** + * The set of attributes recorded for the entity at this revision. The keys depend on the kind of + * entity. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } + + public EntityContextRevision firstSeenAt(OffsetDateTime firstSeenAt) { + this.firstSeenAt = firstSeenAt; + return this; + } + + /** + * The first time the entity was observed at this revision. + * + * @return firstSeenAt + */ + @JsonProperty(JSON_PROPERTY_FIRST_SEEN_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getFirstSeenAt() { + return firstSeenAt; + } + + public void setFirstSeenAt(OffsetDateTime firstSeenAt) { + this.firstSeenAt = firstSeenAt; + } + + public EntityContextRevision lastSeenAt(OffsetDateTime lastSeenAt) { + this.lastSeenAt = lastSeenAt; + return this; + } + + /** + * The last time the entity was observed at this revision. + * + * @return lastSeenAt + */ + @JsonProperty(JSON_PROPERTY_LAST_SEEN_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getLastSeenAt() { + return lastSeenAt; + } + + public void setLastSeenAt(OffsetDateTime lastSeenAt) { + this.lastSeenAt = lastSeenAt; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return EntityContextRevision + */ + @JsonAnySetter + public EntityContextRevision putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this EntityContextRevision object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EntityContextRevision entityContextRevision = (EntityContextRevision) o; + return Objects.equals(this.attributes, entityContextRevision.attributes) + && Objects.equals(this.firstSeenAt, entityContextRevision.firstSeenAt) + && Objects.equals(this.lastSeenAt, entityContextRevision.lastSeenAt) + && Objects.equals(this.additionalProperties, entityContextRevision.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, firstSeenAt, lastSeenAt, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EntityContextRevision {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" firstSeenAt: ").append(toIndentedString(firstSeenAt)).append("\n"); + sb.append(" lastSeenAt: ").append(toIndentedString(lastSeenAt)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueAttributes.java b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueAttributes.java new file mode 100644 index 00000000000..5f1b0bdb4ea --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueAttributes.java @@ -0,0 +1,155 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * Attributes describing why a log source is not properly formatted for Cloud SIEM detection rules. + */ +@JsonPropertyOrder({LogFormattingIssueAttributes.JSON_PROPERTY_REASON}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LogFormattingIssueAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_REASON = "reason"; + private LogFormattingIssueReason reason; + + public LogFormattingIssueAttributes() {} + + @JsonCreator + public LogFormattingIssueAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_REASON) + LogFormattingIssueReason reason) { + this.reason = reason; + this.unparsed |= !reason.isValid(); + } + + public LogFormattingIssueAttributes reason(LogFormattingIssueReason reason) { + this.reason = reason; + this.unparsed |= !reason.isValid(); + return this; + } + + /** + * A machine-readable reason explaining why logs from this source cannot be used by Cloud SIEM + * detection rules. raw_wrapper indicates the logs are delivered with their content + * wrapped in a _raw attribute (for example, from a third-party pipeline) so + * structured fields cannot be extracted. + * + * @return reason + */ + @JsonProperty(JSON_PROPERTY_REASON) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LogFormattingIssueReason getReason() { + return reason; + } + + public void setReason(LogFormattingIssueReason reason) { + if (!reason.isValid()) { + this.unparsed = true; + } + this.reason = reason; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LogFormattingIssueAttributes + */ + @JsonAnySetter + public LogFormattingIssueAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LogFormattingIssueAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogFormattingIssueAttributes logFormattingIssueAttributes = (LogFormattingIssueAttributes) o; + return Objects.equals(this.reason, logFormattingIssueAttributes.reason) + && Objects.equals( + this.additionalProperties, logFormattingIssueAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(reason, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogFormattingIssueAttributes {\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueData.java b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueData.java new file mode 100644 index 00000000000..f4668bb267c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueData.java @@ -0,0 +1,213 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * A log source that has formatting issues preventing it from being used by Cloud SIEM detection + * rules. + */ +@JsonPropertyOrder({ + LogFormattingIssueData.JSON_PROPERTY_ATTRIBUTES, + LogFormattingIssueData.JSON_PROPERTY_ID, + LogFormattingIssueData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LogFormattingIssueData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LogFormattingIssueAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LogFormattingIssueType type = LogFormattingIssueType.LOG_FORMATTING_ISSUES; + + public LogFormattingIssueData() {} + + @JsonCreator + public LogFormattingIssueData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LogFormattingIssueAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LogFormattingIssueType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LogFormattingIssueData attributes(LogFormattingIssueAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes describing why a log source is not properly formatted for Cloud SIEM detection + * rules. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LogFormattingIssueAttributes getAttributes() { + return attributes; + } + + public void setAttributes(LogFormattingIssueAttributes attributes) { + this.attributes = attributes; + } + + public LogFormattingIssueData id(String id) { + this.id = id; + return this; + } + + /** + * The name of the log source that has formatting issues. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LogFormattingIssueData type(LogFormattingIssueType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be log_formatting_issues. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LogFormattingIssueType getType() { + return type; + } + + public void setType(LogFormattingIssueType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LogFormattingIssueData + */ + @JsonAnySetter + public LogFormattingIssueData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LogFormattingIssueData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogFormattingIssueData logFormattingIssueData = (LogFormattingIssueData) o; + return Objects.equals(this.attributes, logFormattingIssueData.attributes) + && Objects.equals(this.id, logFormattingIssueData.id) + && Objects.equals(this.type, logFormattingIssueData.type) + && Objects.equals(this.additionalProperties, logFormattingIssueData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogFormattingIssueData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueReason.java b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueReason.java new file mode 100644 index 00000000000..59118e917d5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueReason.java @@ -0,0 +1,62 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * A machine-readable reason explaining why logs from this source cannot be used by Cloud SIEM + * detection rules. raw_wrapper indicates the logs are delivered with their content + * wrapped in a _raw attribute (for example, from a third-party pipeline) so structured + * fields cannot be extracted. + */ +@JsonSerialize(using = LogFormattingIssueReason.LogFormattingIssueReasonSerializer.class) +public class LogFormattingIssueReason extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("raw_wrapper")); + + public static final LogFormattingIssueReason RAW_WRAPPER = + new LogFormattingIssueReason("raw_wrapper"); + + LogFormattingIssueReason(String value) { + super(value, allowedValues); + } + + public static class LogFormattingIssueReasonSerializer + extends StdSerializer { + public LogFormattingIssueReasonSerializer(Class t) { + super(t); + } + + public LogFormattingIssueReasonSerializer() { + this(null); + } + + @Override + public void serialize( + LogFormattingIssueReason value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LogFormattingIssueReason fromValue(String value) { + return new LogFormattingIssueReason(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueType.java b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueType.java new file mode 100644 index 00000000000..7f187115d04 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssueType.java @@ -0,0 +1,57 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of the resource. The value should always be log_formatting_issues. */ +@JsonSerialize(using = LogFormattingIssueType.LogFormattingIssueTypeSerializer.class) +public class LogFormattingIssueType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("log_formatting_issues")); + + public static final LogFormattingIssueType LOG_FORMATTING_ISSUES = + new LogFormattingIssueType("log_formatting_issues"); + + LogFormattingIssueType(String value) { + super(value, allowedValues); + } + + public static class LogFormattingIssueTypeSerializer + extends StdSerializer { + public LogFormattingIssueTypeSerializer(Class t) { + super(t); + } + + public LogFormattingIssueTypeSerializer() { + this(null); + } + + @Override + public void serialize( + LogFormattingIssueType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LogFormattingIssueType fromValue(String value) { + return new LogFormattingIssueType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssuesResponse.java b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssuesResponse.java new file mode 100644 index 00000000000..97e79226ced --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LogFormattingIssuesResponse.java @@ -0,0 +1,156 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing the list of log sources with formatting issues. */ +@JsonPropertyOrder({LogFormattingIssuesResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LogFormattingIssuesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public LogFormattingIssuesResponse() {} + + @JsonCreator + public LogFormattingIssuesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public LogFormattingIssuesResponse data(List data) { + this.data = data; + for (LogFormattingIssueData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LogFormattingIssuesResponse addDataItem(LogFormattingIssueData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of log sources with formatting issues. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LogFormattingIssuesResponse + */ + @JsonAnySetter + public LogFormattingIssuesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LogFormattingIssuesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LogFormattingIssuesResponse logFormattingIssuesResponse = (LogFormattingIssuesResponse) o; + return Objects.equals(this.data, logFormattingIssuesResponse.data) + && Objects.equals( + this.additionalProperties, logFormattingIssuesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LogFormattingIssuesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionAttributes.java new file mode 100644 index 00000000000..6adc7b2a62a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionAttributes.java @@ -0,0 +1,192 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The attributes for creating sample log generation subscriptions for multiple content packs. */ +@JsonPropertyOrder({ + SampleLogGenerationBulkSubscriptionAttributes.JSON_PROPERTY_CONTENT_PACK_IDS, + SampleLogGenerationBulkSubscriptionAttributes.JSON_PROPERTY_DURATION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationBulkSubscriptionAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CONTENT_PACK_IDS = "content_pack_ids"; + private List contentPackIds = new ArrayList<>(); + + public static final String JSON_PROPERTY_DURATION = "duration"; + private SampleLogGenerationDuration duration = SampleLogGenerationDuration.THREE_DAYS; + + public SampleLogGenerationBulkSubscriptionAttributes() {} + + @JsonCreator + public SampleLogGenerationBulkSubscriptionAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_CONTENT_PACK_IDS) + List contentPackIds) { + this.contentPackIds = contentPackIds; + } + + public SampleLogGenerationBulkSubscriptionAttributes contentPackIds(List contentPackIds) { + this.contentPackIds = contentPackIds; + return this; + } + + public SampleLogGenerationBulkSubscriptionAttributes addContentPackIdsItem( + String contentPackIdsItem) { + this.contentPackIds.add(contentPackIdsItem); + return this; + } + + /** + * The identifiers of the Cloud SIEM content packs to subscribe to. At most five content packs can + * be requested in a single call. + * + * @return contentPackIds + */ + @JsonProperty(JSON_PROPERTY_CONTENT_PACK_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getContentPackIds() { + return contentPackIds; + } + + public void setContentPackIds(List contentPackIds) { + this.contentPackIds = contentPackIds; + } + + public SampleLogGenerationBulkSubscriptionAttributes duration( + SampleLogGenerationDuration duration) { + this.duration = duration; + this.unparsed |= !duration.isValid(); + return this; + } + + /** + * How long the subscription should remain active before expiring. + * + * @return duration + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DURATION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SampleLogGenerationDuration getDuration() { + return duration; + } + + public void setDuration(SampleLogGenerationDuration duration) { + if (!duration.isValid()) { + this.unparsed = true; + } + this.duration = duration; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationBulkSubscriptionAttributes + */ + @JsonAnySetter + public SampleLogGenerationBulkSubscriptionAttributes putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationBulkSubscriptionAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationBulkSubscriptionAttributes sampleLogGenerationBulkSubscriptionAttributes = + (SampleLogGenerationBulkSubscriptionAttributes) o; + return Objects.equals( + this.contentPackIds, sampleLogGenerationBulkSubscriptionAttributes.contentPackIds) + && Objects.equals(this.duration, sampleLogGenerationBulkSubscriptionAttributes.duration) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationBulkSubscriptionAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(contentPackIds, duration, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationBulkSubscriptionAttributes {\n"); + sb.append(" contentPackIds: ").append(toIndentedString(contentPackIds)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionData.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionData.java new file mode 100644 index 00000000000..b33bac2dde0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionData.java @@ -0,0 +1,188 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The bulk subscription request body. */ +@JsonPropertyOrder({ + SampleLogGenerationBulkSubscriptionData.JSON_PROPERTY_ATTRIBUTES, + SampleLogGenerationBulkSubscriptionData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationBulkSubscriptionData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SampleLogGenerationBulkSubscriptionAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SampleLogGenerationBulkSubscriptionRequestType type = + SampleLogGenerationBulkSubscriptionRequestType.BULK_SUBSCRIPTION_REQUESTS; + + public SampleLogGenerationBulkSubscriptionData() {} + + @JsonCreator + public SampleLogGenerationBulkSubscriptionData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SampleLogGenerationBulkSubscriptionAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SampleLogGenerationBulkSubscriptionRequestType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SampleLogGenerationBulkSubscriptionData attributes( + SampleLogGenerationBulkSubscriptionAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes for creating sample log generation subscriptions for multiple content packs. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationBulkSubscriptionAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SampleLogGenerationBulkSubscriptionAttributes attributes) { + this.attributes = attributes; + } + + public SampleLogGenerationBulkSubscriptionData type( + SampleLogGenerationBulkSubscriptionRequestType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be bulk_subscription_requests. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationBulkSubscriptionRequestType getType() { + return type; + } + + public void setType(SampleLogGenerationBulkSubscriptionRequestType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationBulkSubscriptionData + */ + @JsonAnySetter + public SampleLogGenerationBulkSubscriptionData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationBulkSubscriptionData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationBulkSubscriptionData sampleLogGenerationBulkSubscriptionData = + (SampleLogGenerationBulkSubscriptionData) o; + return Objects.equals(this.attributes, sampleLogGenerationBulkSubscriptionData.attributes) + && Objects.equals(this.type, sampleLogGenerationBulkSubscriptionData.type) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationBulkSubscriptionData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationBulkSubscriptionData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionItemMeta.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionItemMeta.java new file mode 100644 index 00000000000..d8fe6debd04 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionItemMeta.java @@ -0,0 +1,178 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Per-item status returned for a bulk subscription request. */ +@JsonPropertyOrder({ + SampleLogGenerationBulkSubscriptionItemMeta.JSON_PROPERTY_ERROR, + SampleLogGenerationBulkSubscriptionItemMeta.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationBulkSubscriptionItemMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ERROR = "error"; + private String error; + + public static final String JSON_PROPERTY_STATUS = "status"; + private Integer status; + + public SampleLogGenerationBulkSubscriptionItemMeta() {} + + @JsonCreator + public SampleLogGenerationBulkSubscriptionItemMeta( + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) Integer status) { + this.status = status; + } + + public SampleLogGenerationBulkSubscriptionItemMeta error(String error) { + this.error = error; + return this; + } + + /** + * A description of the error encountered for this content pack, if the subscription could not be + * created. + * + * @return error + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ERROR) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getError() { + return error; + } + + public void setError(String error) { + this.error = error; + } + + public SampleLogGenerationBulkSubscriptionItemMeta status(Integer status) { + this.status = status; + return this; + } + + /** + * The HTTP status code that resulted from creating the subscription for this content pack. + * maximum: 599 + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationBulkSubscriptionItemMeta + */ + @JsonAnySetter + public SampleLogGenerationBulkSubscriptionItemMeta putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationBulkSubscriptionItemMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationBulkSubscriptionItemMeta sampleLogGenerationBulkSubscriptionItemMeta = + (SampleLogGenerationBulkSubscriptionItemMeta) o; + return Objects.equals(this.error, sampleLogGenerationBulkSubscriptionItemMeta.error) + && Objects.equals(this.status, sampleLogGenerationBulkSubscriptionItemMeta.status) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationBulkSubscriptionItemMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(error, status, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationBulkSubscriptionItemMeta {\n"); + sb.append(" error: ").append(toIndentedString(error)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequest.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequest.java new file mode 100644 index 00000000000..ea2548eac81 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequest.java @@ -0,0 +1,153 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * Request body to create sample log generation subscriptions for multiple content packs at once. + */ +@JsonPropertyOrder({SampleLogGenerationBulkSubscriptionRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationBulkSubscriptionRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SampleLogGenerationBulkSubscriptionData data; + + public SampleLogGenerationBulkSubscriptionRequest() {} + + @JsonCreator + public SampleLogGenerationBulkSubscriptionRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SampleLogGenerationBulkSubscriptionData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SampleLogGenerationBulkSubscriptionRequest data( + SampleLogGenerationBulkSubscriptionData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The bulk subscription request body. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationBulkSubscriptionData getData() { + return data; + } + + public void setData(SampleLogGenerationBulkSubscriptionData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationBulkSubscriptionRequest + */ + @JsonAnySetter + public SampleLogGenerationBulkSubscriptionRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationBulkSubscriptionRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationBulkSubscriptionRequest sampleLogGenerationBulkSubscriptionRequest = + (SampleLogGenerationBulkSubscriptionRequest) o; + return Objects.equals(this.data, sampleLogGenerationBulkSubscriptionRequest.data) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationBulkSubscriptionRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationBulkSubscriptionRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequestType.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequestType.java new file mode 100644 index 00000000000..089db3bf36a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionRequestType.java @@ -0,0 +1,63 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of the resource. The value should always be bulk_subscription_requests. */ +@JsonSerialize( + using = + SampleLogGenerationBulkSubscriptionRequestType + .SampleLogGenerationBulkSubscriptionRequestTypeSerializer.class) +public class SampleLogGenerationBulkSubscriptionRequestType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("bulk_subscription_requests")); + + public static final SampleLogGenerationBulkSubscriptionRequestType BULK_SUBSCRIPTION_REQUESTS = + new SampleLogGenerationBulkSubscriptionRequestType("bulk_subscription_requests"); + + SampleLogGenerationBulkSubscriptionRequestType(String value) { + super(value, allowedValues); + } + + public static class SampleLogGenerationBulkSubscriptionRequestTypeSerializer + extends StdSerializer { + public SampleLogGenerationBulkSubscriptionRequestTypeSerializer( + Class t) { + super(t); + } + + public SampleLogGenerationBulkSubscriptionRequestTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SampleLogGenerationBulkSubscriptionRequestType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SampleLogGenerationBulkSubscriptionRequestType fromValue(String value) { + return new SampleLogGenerationBulkSubscriptionRequestType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResponse.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResponse.java new file mode 100644 index 00000000000..ccb2d9ff63f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResponse.java @@ -0,0 +1,161 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing the per-content-pack results of a bulk subscription request. */ +@JsonPropertyOrder({SampleLogGenerationBulkSubscriptionResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationBulkSubscriptionResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public SampleLogGenerationBulkSubscriptionResponse() {} + + @JsonCreator + public SampleLogGenerationBulkSubscriptionResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public SampleLogGenerationBulkSubscriptionResponse data( + List data) { + this.data = data; + for (SampleLogGenerationBulkSubscriptionResultItem item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SampleLogGenerationBulkSubscriptionResponse addDataItem( + SampleLogGenerationBulkSubscriptionResultItem dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of bulk subscription results, one per requested content pack. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationBulkSubscriptionResponse + */ + @JsonAnySetter + public SampleLogGenerationBulkSubscriptionResponse putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationBulkSubscriptionResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationBulkSubscriptionResponse sampleLogGenerationBulkSubscriptionResponse = + (SampleLogGenerationBulkSubscriptionResponse) o; + return Objects.equals(this.data, sampleLogGenerationBulkSubscriptionResponse.data) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationBulkSubscriptionResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationBulkSubscriptionResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResultItem.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResultItem.java new file mode 100644 index 00000000000..23e7d06bb5d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationBulkSubscriptionResultItem.java @@ -0,0 +1,249 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single result entry returned by the bulk subscription endpoint. */ +@JsonPropertyOrder({ + SampleLogGenerationBulkSubscriptionResultItem.JSON_PROPERTY_ATTRIBUTES, + SampleLogGenerationBulkSubscriptionResultItem.JSON_PROPERTY_ID, + SampleLogGenerationBulkSubscriptionResultItem.JSON_PROPERTY_META, + SampleLogGenerationBulkSubscriptionResultItem.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationBulkSubscriptionResultItem { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SampleLogGenerationSubscriptionAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_META = "meta"; + private SampleLogGenerationBulkSubscriptionItemMeta meta; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SampleLogGenerationSubscriptionResourceType type = + SampleLogGenerationSubscriptionResourceType.SUBSCRIPTIONS; + + public SampleLogGenerationBulkSubscriptionResultItem() {} + + @JsonCreator + public SampleLogGenerationBulkSubscriptionResultItem( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SampleLogGenerationSubscriptionAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_META) + SampleLogGenerationBulkSubscriptionItemMeta meta, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SampleLogGenerationSubscriptionResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.meta = meta; + this.unparsed |= meta.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SampleLogGenerationBulkSubscriptionResultItem attributes( + SampleLogGenerationSubscriptionAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes describing a sample log generation subscription. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SampleLogGenerationSubscriptionAttributes attributes) { + this.attributes = attributes; + } + + public SampleLogGenerationBulkSubscriptionResultItem id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the subscription, when one was created. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SampleLogGenerationBulkSubscriptionResultItem meta( + SampleLogGenerationBulkSubscriptionItemMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Per-item status returned for a bulk subscription request. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationBulkSubscriptionItemMeta getMeta() { + return meta; + } + + public void setMeta(SampleLogGenerationBulkSubscriptionItemMeta meta) { + this.meta = meta; + } + + public SampleLogGenerationBulkSubscriptionResultItem type( + SampleLogGenerationSubscriptionResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be subscriptions. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionResourceType getType() { + return type; + } + + public void setType(SampleLogGenerationSubscriptionResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationBulkSubscriptionResultItem + */ + @JsonAnySetter + public SampleLogGenerationBulkSubscriptionResultItem putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationBulkSubscriptionResultItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationBulkSubscriptionResultItem sampleLogGenerationBulkSubscriptionResultItem = + (SampleLogGenerationBulkSubscriptionResultItem) o; + return Objects.equals(this.attributes, sampleLogGenerationBulkSubscriptionResultItem.attributes) + && Objects.equals(this.id, sampleLogGenerationBulkSubscriptionResultItem.id) + && Objects.equals(this.meta, sampleLogGenerationBulkSubscriptionResultItem.meta) + && Objects.equals(this.type, sampleLogGenerationBulkSubscriptionResultItem.type) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationBulkSubscriptionResultItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, meta, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationBulkSubscriptionResultItem {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationDuration.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationDuration.java new file mode 100644 index 00000000000..a0f191db78d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationDuration.java @@ -0,0 +1,61 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** How long the subscription should remain active before expiring. */ +@JsonSerialize(using = SampleLogGenerationDuration.SampleLogGenerationDurationSerializer.class) +public class SampleLogGenerationDuration extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("1h", "1d", "3d", "7d")); + + public static final SampleLogGenerationDuration ONE_HOUR = new SampleLogGenerationDuration("1h"); + public static final SampleLogGenerationDuration ONE_DAY = new SampleLogGenerationDuration("1d"); + public static final SampleLogGenerationDuration THREE_DAYS = + new SampleLogGenerationDuration("3d"); + public static final SampleLogGenerationDuration SEVEN_DAYS = + new SampleLogGenerationDuration("7d"); + + SampleLogGenerationDuration(String value) { + super(value, allowedValues); + } + + public static class SampleLogGenerationDurationSerializer + extends StdSerializer { + public SampleLogGenerationDurationSerializer(Class t) { + super(t); + } + + public SampleLogGenerationDurationSerializer() { + this(null); + } + + @Override + public void serialize( + SampleLogGenerationDuration value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SampleLogGenerationDuration fromValue(String value) { + return new SampleLogGenerationDuration(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionAttributes.java new file mode 100644 index 00000000000..13a66bf08c7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionAttributes.java @@ -0,0 +1,270 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The attributes describing a sample log generation subscription. */ +@JsonPropertyOrder({ + SampleLogGenerationSubscriptionAttributes.JSON_PROPERTY_CONTENT_PACK_ID, + SampleLogGenerationSubscriptionAttributes.JSON_PROPERTY_CREATED_AT, + SampleLogGenerationSubscriptionAttributes.JSON_PROPERTY_EXPIRES_AT, + SampleLogGenerationSubscriptionAttributes.JSON_PROPERTY_IS_ACTIVE, + SampleLogGenerationSubscriptionAttributes.JSON_PROPERTY_STATUS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CONTENT_PACK_ID = "content_pack_id"; + private String contentPackId; + + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_EXPIRES_AT = "expires_at"; + private OffsetDateTime expiresAt; + + public static final String JSON_PROPERTY_IS_ACTIVE = "is_active"; + private Boolean isActive; + + public static final String JSON_PROPERTY_STATUS = "status"; + private SampleLogGenerationSubscriptionStatus status; + + public SampleLogGenerationSubscriptionAttributes() {} + + @JsonCreator + public SampleLogGenerationSubscriptionAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_CONTENT_PACK_ID) String contentPackId, + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_AT) OffsetDateTime createdAt, + @JsonProperty(required = true, value = JSON_PROPERTY_EXPIRES_AT) OffsetDateTime expiresAt, + @JsonProperty(required = true, value = JSON_PROPERTY_IS_ACTIVE) Boolean isActive, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) + SampleLogGenerationSubscriptionStatus status) { + this.contentPackId = contentPackId; + this.createdAt = createdAt; + this.expiresAt = expiresAt; + this.isActive = isActive; + this.status = status; + this.unparsed |= !status.isValid(); + } + + public SampleLogGenerationSubscriptionAttributes contentPackId(String contentPackId) { + this.contentPackId = contentPackId; + return this; + } + + /** + * The identifier of the Cloud SIEM content pack the subscription targets. + * + * @return contentPackId + */ + @JsonProperty(JSON_PROPERTY_CONTENT_PACK_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getContentPackId() { + return contentPackId; + } + + public void setContentPackId(String contentPackId) { + this.contentPackId = contentPackId; + } + + public SampleLogGenerationSubscriptionAttributes createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * The time at which the subscription was created. + * + * @return createdAt + */ + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public SampleLogGenerationSubscriptionAttributes expiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + /** + * The time at which the subscription expires and stops generating logs. + * + * @return expiresAt + */ + @JsonProperty(JSON_PROPERTY_EXPIRES_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getExpiresAt() { + return expiresAt; + } + + public void setExpiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + } + + public SampleLogGenerationSubscriptionAttributes isActive(Boolean isActive) { + this.isActive = isActive; + return this; + } + + /** + * Whether the subscription is currently active and generating logs. + * + * @return isActive + */ + @JsonProperty(JSON_PROPERTY_IS_ACTIVE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsActive() { + return isActive; + } + + public void setIsActive(Boolean isActive) { + this.isActive = isActive; + } + + public SampleLogGenerationSubscriptionAttributes status( + SampleLogGenerationSubscriptionStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); + return this; + } + + /** + * The status of the subscription. + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionStatus getStatus() { + return status; + } + + public void setStatus(SampleLogGenerationSubscriptionStatus status) { + if (!status.isValid()) { + this.unparsed = true; + } + this.status = status; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionAttributes + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionAttributes sampleLogGenerationSubscriptionAttributes = + (SampleLogGenerationSubscriptionAttributes) o; + return Objects.equals( + this.contentPackId, sampleLogGenerationSubscriptionAttributes.contentPackId) + && Objects.equals(this.createdAt, sampleLogGenerationSubscriptionAttributes.createdAt) + && Objects.equals(this.expiresAt, sampleLogGenerationSubscriptionAttributes.expiresAt) + && Objects.equals(this.isActive, sampleLogGenerationSubscriptionAttributes.isActive) + && Objects.equals(this.status, sampleLogGenerationSubscriptionAttributes.status) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + contentPackId, createdAt, expiresAt, isActive, status, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionAttributes {\n"); + sb.append(" contentPackId: ").append(toIndentedString(contentPackId)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" expiresAt: ").append(toIndentedString(expiresAt)).append("\n"); + sb.append(" isActive: ").append(toIndentedString(isActive)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateAttributes.java new file mode 100644 index 00000000000..620388ce881 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateAttributes.java @@ -0,0 +1,183 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The attributes for creating a sample log generation subscription. */ +@JsonPropertyOrder({ + SampleLogGenerationSubscriptionCreateAttributes.JSON_PROPERTY_CONTENT_PACK_ID, + SampleLogGenerationSubscriptionCreateAttributes.JSON_PROPERTY_DURATION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionCreateAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CONTENT_PACK_ID = "content_pack_id"; + private String contentPackId; + + public static final String JSON_PROPERTY_DURATION = "duration"; + private SampleLogGenerationDuration duration = SampleLogGenerationDuration.THREE_DAYS; + + public SampleLogGenerationSubscriptionCreateAttributes() {} + + @JsonCreator + public SampleLogGenerationSubscriptionCreateAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_CONTENT_PACK_ID) String contentPackId) { + this.contentPackId = contentPackId; + } + + public SampleLogGenerationSubscriptionCreateAttributes contentPackId(String contentPackId) { + this.contentPackId = contentPackId; + return this; + } + + /** + * The identifier of the Cloud SIEM content pack to subscribe to. + * + * @return contentPackId + */ + @JsonProperty(JSON_PROPERTY_CONTENT_PACK_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getContentPackId() { + return contentPackId; + } + + public void setContentPackId(String contentPackId) { + this.contentPackId = contentPackId; + } + + public SampleLogGenerationSubscriptionCreateAttributes duration( + SampleLogGenerationDuration duration) { + this.duration = duration; + this.unparsed |= !duration.isValid(); + return this; + } + + /** + * How long the subscription should remain active before expiring. + * + * @return duration + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DURATION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SampleLogGenerationDuration getDuration() { + return duration; + } + + public void setDuration(SampleLogGenerationDuration duration) { + if (!duration.isValid()) { + this.unparsed = true; + } + this.duration = duration; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionCreateAttributes + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionCreateAttributes putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionCreateAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionCreateAttributes + sampleLogGenerationSubscriptionCreateAttributes = + (SampleLogGenerationSubscriptionCreateAttributes) o; + return Objects.equals( + this.contentPackId, sampleLogGenerationSubscriptionCreateAttributes.contentPackId) + && Objects.equals(this.duration, sampleLogGenerationSubscriptionCreateAttributes.duration) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionCreateAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(contentPackId, duration, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionCreateAttributes {\n"); + sb.append(" contentPackId: ").append(toIndentedString(contentPackId)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateData.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateData.java new file mode 100644 index 00000000000..137f2f47e14 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateData.java @@ -0,0 +1,188 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The subscription request body. */ +@JsonPropertyOrder({ + SampleLogGenerationSubscriptionCreateData.JSON_PROPERTY_ATTRIBUTES, + SampleLogGenerationSubscriptionCreateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionCreateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SampleLogGenerationSubscriptionCreateAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SampleLogGenerationSubscriptionRequestType type = + SampleLogGenerationSubscriptionRequestType.SUBSCRIPTION_REQUESTS; + + public SampleLogGenerationSubscriptionCreateData() {} + + @JsonCreator + public SampleLogGenerationSubscriptionCreateData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SampleLogGenerationSubscriptionCreateAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SampleLogGenerationSubscriptionRequestType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SampleLogGenerationSubscriptionCreateData attributes( + SampleLogGenerationSubscriptionCreateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes for creating a sample log generation subscription. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionCreateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SampleLogGenerationSubscriptionCreateAttributes attributes) { + this.attributes = attributes; + } + + public SampleLogGenerationSubscriptionCreateData type( + SampleLogGenerationSubscriptionRequestType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be subscription_requests. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionRequestType getType() { + return type; + } + + public void setType(SampleLogGenerationSubscriptionRequestType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionCreateData + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionCreateData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionCreateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionCreateData sampleLogGenerationSubscriptionCreateData = + (SampleLogGenerationSubscriptionCreateData) o; + return Objects.equals(this.attributes, sampleLogGenerationSubscriptionCreateData.attributes) + && Objects.equals(this.type, sampleLogGenerationSubscriptionCreateData.type) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionCreateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionCreateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateRequest.java new file mode 100644 index 00000000000..a93a574bb6f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionCreateRequest.java @@ -0,0 +1,151 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request body to create a sample log generation subscription for a single content pack. */ +@JsonPropertyOrder({SampleLogGenerationSubscriptionCreateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionCreateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SampleLogGenerationSubscriptionCreateData data; + + public SampleLogGenerationSubscriptionCreateRequest() {} + + @JsonCreator + public SampleLogGenerationSubscriptionCreateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SampleLogGenerationSubscriptionCreateData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SampleLogGenerationSubscriptionCreateRequest data( + SampleLogGenerationSubscriptionCreateData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The subscription request body. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionCreateData getData() { + return data; + } + + public void setData(SampleLogGenerationSubscriptionCreateData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionCreateRequest + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionCreateRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionCreateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionCreateRequest sampleLogGenerationSubscriptionCreateRequest = + (SampleLogGenerationSubscriptionCreateRequest) o; + return Objects.equals(this.data, sampleLogGenerationSubscriptionCreateRequest.data) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionCreateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionCreateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionData.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionData.java new file mode 100644 index 00000000000..00320360bd0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionData.java @@ -0,0 +1,215 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A sample log generation subscription. */ +@JsonPropertyOrder({ + SampleLogGenerationSubscriptionData.JSON_PROPERTY_ATTRIBUTES, + SampleLogGenerationSubscriptionData.JSON_PROPERTY_ID, + SampleLogGenerationSubscriptionData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SampleLogGenerationSubscriptionAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SampleLogGenerationSubscriptionResourceType type = + SampleLogGenerationSubscriptionResourceType.SUBSCRIPTIONS; + + public SampleLogGenerationSubscriptionData() {} + + @JsonCreator + public SampleLogGenerationSubscriptionData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SampleLogGenerationSubscriptionAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SampleLogGenerationSubscriptionResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SampleLogGenerationSubscriptionData attributes( + SampleLogGenerationSubscriptionAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes describing a sample log generation subscription. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SampleLogGenerationSubscriptionAttributes attributes) { + this.attributes = attributes; + } + + public SampleLogGenerationSubscriptionData id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the subscription. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SampleLogGenerationSubscriptionData type( + SampleLogGenerationSubscriptionResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be subscriptions. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionResourceType getType() { + return type; + } + + public void setType(SampleLogGenerationSubscriptionResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionData + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionData sampleLogGenerationSubscriptionData = + (SampleLogGenerationSubscriptionData) o; + return Objects.equals(this.attributes, sampleLogGenerationSubscriptionData.attributes) + && Objects.equals(this.id, sampleLogGenerationSubscriptionData.id) + && Objects.equals(this.type, sampleLogGenerationSubscriptionData.type) + && Objects.equals( + this.additionalProperties, sampleLogGenerationSubscriptionData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionRequestType.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionRequestType.java new file mode 100644 index 00000000000..69af79ff744 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionRequestType.java @@ -0,0 +1,63 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of the resource. The value should always be subscription_requests. */ +@JsonSerialize( + using = + SampleLogGenerationSubscriptionRequestType + .SampleLogGenerationSubscriptionRequestTypeSerializer.class) +public class SampleLogGenerationSubscriptionRequestType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("subscription_requests")); + + public static final SampleLogGenerationSubscriptionRequestType SUBSCRIPTION_REQUESTS = + new SampleLogGenerationSubscriptionRequestType("subscription_requests"); + + SampleLogGenerationSubscriptionRequestType(String value) { + super(value, allowedValues); + } + + public static class SampleLogGenerationSubscriptionRequestTypeSerializer + extends StdSerializer { + public SampleLogGenerationSubscriptionRequestTypeSerializer( + Class t) { + super(t); + } + + public SampleLogGenerationSubscriptionRequestTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SampleLogGenerationSubscriptionRequestType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SampleLogGenerationSubscriptionRequestType fromValue(String value) { + return new SampleLogGenerationSubscriptionRequestType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResourceType.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResourceType.java new file mode 100644 index 00000000000..8c727d16325 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResourceType.java @@ -0,0 +1,63 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of the resource. The value should always be subscriptions. */ +@JsonSerialize( + using = + SampleLogGenerationSubscriptionResourceType + .SampleLogGenerationSubscriptionResourceTypeSerializer.class) +public class SampleLogGenerationSubscriptionResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("subscriptions")); + + public static final SampleLogGenerationSubscriptionResourceType SUBSCRIPTIONS = + new SampleLogGenerationSubscriptionResourceType("subscriptions"); + + SampleLogGenerationSubscriptionResourceType(String value) { + super(value, allowedValues); + } + + public static class SampleLogGenerationSubscriptionResourceTypeSerializer + extends StdSerializer { + public SampleLogGenerationSubscriptionResourceTypeSerializer( + Class t) { + super(t); + } + + public SampleLogGenerationSubscriptionResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SampleLogGenerationSubscriptionResourceType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SampleLogGenerationSubscriptionResourceType fromValue(String value) { + return new SampleLogGenerationSubscriptionResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResponse.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResponse.java new file mode 100644 index 00000000000..b61dfa94fcb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionResponse.java @@ -0,0 +1,149 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing a single sample log generation subscription. */ +@JsonPropertyOrder({SampleLogGenerationSubscriptionResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SampleLogGenerationSubscriptionData data; + + public SampleLogGenerationSubscriptionResponse() {} + + @JsonCreator + public SampleLogGenerationSubscriptionResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SampleLogGenerationSubscriptionData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SampleLogGenerationSubscriptionResponse data(SampleLogGenerationSubscriptionData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * A sample log generation subscription. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionData getData() { + return data; + } + + public void setData(SampleLogGenerationSubscriptionData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionResponse + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionResponse sampleLogGenerationSubscriptionResponse = + (SampleLogGenerationSubscriptionResponse) o; + return Objects.equals(this.data, sampleLogGenerationSubscriptionResponse.data) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionStatus.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionStatus.java new file mode 100644 index 00000000000..0701780caf1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionStatus.java @@ -0,0 +1,82 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The status of the subscription. */ +@JsonSerialize( + using = + SampleLogGenerationSubscriptionStatus.SampleLogGenerationSubscriptionStatusSerializer.class) +public class SampleLogGenerationSubscriptionStatus extends ModelEnum { + + private static final Set allowedValues = + new HashSet( + Arrays.asList( + "subscribed", + "renewed", + "unsubscribed", + "no_active_subscription", + "not_available", + "active", + "expired")); + + public static final SampleLogGenerationSubscriptionStatus SUBSCRIBED = + new SampleLogGenerationSubscriptionStatus("subscribed"); + public static final SampleLogGenerationSubscriptionStatus RENEWED = + new SampleLogGenerationSubscriptionStatus("renewed"); + public static final SampleLogGenerationSubscriptionStatus UNSUBSCRIBED = + new SampleLogGenerationSubscriptionStatus("unsubscribed"); + public static final SampleLogGenerationSubscriptionStatus NO_ACTIVE_SUBSCRIPTION = + new SampleLogGenerationSubscriptionStatus("no_active_subscription"); + public static final SampleLogGenerationSubscriptionStatus NOT_AVAILABLE = + new SampleLogGenerationSubscriptionStatus("not_available"); + public static final SampleLogGenerationSubscriptionStatus ACTIVE = + new SampleLogGenerationSubscriptionStatus("active"); + public static final SampleLogGenerationSubscriptionStatus EXPIRED = + new SampleLogGenerationSubscriptionStatus("expired"); + + SampleLogGenerationSubscriptionStatus(String value) { + super(value, allowedValues); + } + + public static class SampleLogGenerationSubscriptionStatusSerializer + extends StdSerializer { + public SampleLogGenerationSubscriptionStatusSerializer( + Class t) { + super(t); + } + + public SampleLogGenerationSubscriptionStatusSerializer() { + this(null); + } + + @Override + public void serialize( + SampleLogGenerationSubscriptionStatus value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SampleLogGenerationSubscriptionStatus fromValue(String value) { + return new SampleLogGenerationSubscriptionStatus(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponse.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponse.java new file mode 100644 index 00000000000..99258fc39f0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponse.java @@ -0,0 +1,194 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing a list of sample log generation subscriptions. */ +@JsonPropertyOrder({ + SampleLogGenerationSubscriptionsResponse.JSON_PROPERTY_DATA, + SampleLogGenerationSubscriptionsResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private SampleLogGenerationSubscriptionsResponseMeta meta; + + public SampleLogGenerationSubscriptionsResponse() {} + + @JsonCreator + public SampleLogGenerationSubscriptionsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data, + @JsonProperty(required = true, value = JSON_PROPERTY_META) + SampleLogGenerationSubscriptionsResponseMeta meta) { + this.data = data; + this.meta = meta; + this.unparsed |= meta.unparsed; + } + + public SampleLogGenerationSubscriptionsResponse data( + List data) { + this.data = data; + for (SampleLogGenerationSubscriptionData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SampleLogGenerationSubscriptionsResponse addDataItem( + SampleLogGenerationSubscriptionData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of sample log generation subscriptions. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public SampleLogGenerationSubscriptionsResponse meta( + SampleLogGenerationSubscriptionsResponseMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Metadata returned alongside a list of sample log generation subscriptions. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SampleLogGenerationSubscriptionsResponseMeta getMeta() { + return meta; + } + + public void setMeta(SampleLogGenerationSubscriptionsResponseMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionsResponse + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionsResponse sampleLogGenerationSubscriptionsResponse = + (SampleLogGenerationSubscriptionsResponse) o; + return Objects.equals(this.data, sampleLogGenerationSubscriptionsResponse.data) + && Objects.equals(this.meta, sampleLogGenerationSubscriptionsResponse.meta) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponseMeta.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponseMeta.java new file mode 100644 index 00000000000..f131c31cacb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsResponseMeta.java @@ -0,0 +1,152 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Metadata returned alongside a list of sample log generation subscriptions. */ +@JsonPropertyOrder({SampleLogGenerationSubscriptionsResponseMeta.JSON_PROPERTY_TOTAL_SUBSCRIPTIONS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SampleLogGenerationSubscriptionsResponseMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TOTAL_SUBSCRIPTIONS = "total_subscriptions"; + private Integer totalSubscriptions; + + public SampleLogGenerationSubscriptionsResponseMeta() {} + + @JsonCreator + public SampleLogGenerationSubscriptionsResponseMeta( + @JsonProperty(required = true, value = JSON_PROPERTY_TOTAL_SUBSCRIPTIONS) + Integer totalSubscriptions) { + this.totalSubscriptions = totalSubscriptions; + } + + public SampleLogGenerationSubscriptionsResponseMeta totalSubscriptions( + Integer totalSubscriptions) { + this.totalSubscriptions = totalSubscriptions; + return this; + } + + /** + * The total number of subscriptions matching the request, irrespective of pagination. maximum: + * 2147483647 + * + * @return totalSubscriptions + */ + @JsonProperty(JSON_PROPERTY_TOTAL_SUBSCRIPTIONS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getTotalSubscriptions() { + return totalSubscriptions; + } + + public void setTotalSubscriptions(Integer totalSubscriptions) { + this.totalSubscriptions = totalSubscriptions; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SampleLogGenerationSubscriptionsResponseMeta + */ + @JsonAnySetter + public SampleLogGenerationSubscriptionsResponseMeta putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SampleLogGenerationSubscriptionsResponseMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SampleLogGenerationSubscriptionsResponseMeta sampleLogGenerationSubscriptionsResponseMeta = + (SampleLogGenerationSubscriptionsResponseMeta) o; + return Objects.equals( + this.totalSubscriptions, + sampleLogGenerationSubscriptionsResponseMeta.totalSubscriptions) + && Objects.equals( + this.additionalProperties, + sampleLogGenerationSubscriptionsResponseMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(totalSubscriptions, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SampleLogGenerationSubscriptionsResponseMeta {\n"); + sb.append(" totalSubscriptions: ").append(toIndentedString(totalSubscriptions)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsStatusFilter.java b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsStatusFilter.java new file mode 100644 index 00000000000..54b21e09035 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SampleLogGenerationSubscriptionsStatusFilter.java @@ -0,0 +1,67 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * Filter that controls whether to return only active subscriptions or every subscription on record. + */ +@JsonSerialize( + using = + SampleLogGenerationSubscriptionsStatusFilter + .SampleLogGenerationSubscriptionsStatusFilterSerializer.class) +public class SampleLogGenerationSubscriptionsStatusFilter extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("active", "all")); + + public static final SampleLogGenerationSubscriptionsStatusFilter ACTIVE = + new SampleLogGenerationSubscriptionsStatusFilter("active"); + public static final SampleLogGenerationSubscriptionsStatusFilter ALL = + new SampleLogGenerationSubscriptionsStatusFilter("all"); + + SampleLogGenerationSubscriptionsStatusFilter(String value) { + super(value, allowedValues); + } + + public static class SampleLogGenerationSubscriptionsStatusFilterSerializer + extends StdSerializer { + public SampleLogGenerationSubscriptionsStatusFilterSerializer( + Class t) { + super(t); + } + + public SampleLogGenerationSubscriptionsStatusFilterSerializer() { + this(null); + } + + @Override + public void serialize( + SampleLogGenerationSubscriptionsStatusFilter value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SampleLogGenerationSubscriptionsStatusFilter fromValue(String value) { + return new SampleLogGenerationSubscriptionsStatusFilter(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersion.java b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersion.java new file mode 100644 index 00000000000..e996b6c4cab --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersion.java @@ -0,0 +1,210 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A snapshot of all security filters at a specific configuration version. */ +@JsonPropertyOrder({ + SecurityFilterVersion.JSON_PROPERTY_ATTRIBUTES, + SecurityFilterVersion.JSON_PROPERTY_ID, + SecurityFilterVersion.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityFilterVersion { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityFilterVersionAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityFilterVersionType type = SecurityFilterVersionType.SECURITY_FILTERS_CONFIGURATION; + + public SecurityFilterVersion() {} + + @JsonCreator + public SecurityFilterVersion( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityFilterVersionAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SecurityFilterVersionType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityFilterVersion attributes(SecurityFilterVersionAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes describing a single security filter configuration version. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityFilterVersionAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityFilterVersionAttributes attributes) { + this.attributes = attributes; + } + + public SecurityFilterVersion id(String id) { + this.id = id; + return this; + } + + /** + * The identifier of the configuration version. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SecurityFilterVersion type(SecurityFilterVersionType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be security_filters_configuration + * . + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityFilterVersionType getType() { + return type; + } + + public void setType(SecurityFilterVersionType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityFilterVersion + */ + @JsonAnySetter + public SecurityFilterVersion putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityFilterVersion object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityFilterVersion securityFilterVersion = (SecurityFilterVersion) o; + return Objects.equals(this.attributes, securityFilterVersion.attributes) + && Objects.equals(this.id, securityFilterVersion.id) + && Objects.equals(this.type, securityFilterVersion.type) + && Objects.equals(this.additionalProperties, securityFilterVersion.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityFilterVersion {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionAttributes.java new file mode 100644 index 00000000000..7971da3dec3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionAttributes.java @@ -0,0 +1,215 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The attributes describing a single security filter configuration version. */ +@JsonPropertyOrder({ + SecurityFilterVersionAttributes.JSON_PROPERTY_DATE, + SecurityFilterVersionAttributes.JSON_PROPERTY_FILTERS, + SecurityFilterVersionAttributes.JSON_PROPERTY_VERSION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityFilterVersionAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATE = "date"; + private Long date; + + public static final String JSON_PROPERTY_FILTERS = "filters"; + private List filters = new ArrayList<>(); + + public static final String JSON_PROPERTY_VERSION = "version"; + private Integer version; + + public SecurityFilterVersionAttributes() {} + + @JsonCreator + public SecurityFilterVersionAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_DATE) Long date, + @JsonProperty(required = true, value = JSON_PROPERTY_FILTERS) + List filters, + @JsonProperty(required = true, value = JSON_PROPERTY_VERSION) Integer version) { + this.date = date; + this.filters = filters; + this.version = version; + } + + public SecurityFilterVersionAttributes date(Long date) { + this.date = date; + return this; + } + + /** + * The Unix timestamp in milliseconds at which this configuration version was applied. + * + * @return date + */ + @JsonProperty(JSON_PROPERTY_DATE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getDate() { + return date; + } + + public void setDate(Long date) { + this.date = date; + } + + public SecurityFilterVersionAttributes filters(List filters) { + this.filters = filters; + for (SecurityFilterVersionEntry item : filters) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityFilterVersionAttributes addFiltersItem(SecurityFilterVersionEntry filtersItem) { + this.filters.add(filtersItem); + this.unparsed |= filtersItem.unparsed; + return this; + } + + /** + * The set of security filters at this configuration version. + * + * @return filters + */ + @JsonProperty(JSON_PROPERTY_FILTERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getFilters() { + return filters; + } + + public void setFilters(List filters) { + this.filters = filters; + } + + public SecurityFilterVersionAttributes version(Integer version) { + this.version = version; + return this; + } + + /** + * The configuration version number. maximum: 2147483647 + * + * @return version + */ + @JsonProperty(JSON_PROPERTY_VERSION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityFilterVersionAttributes + */ + @JsonAnySetter + public SecurityFilterVersionAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityFilterVersionAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityFilterVersionAttributes securityFilterVersionAttributes = + (SecurityFilterVersionAttributes) o; + return Objects.equals(this.date, securityFilterVersionAttributes.date) + && Objects.equals(this.filters, securityFilterVersionAttributes.filters) + && Objects.equals(this.version, securityFilterVersionAttributes.version) + && Objects.equals( + this.additionalProperties, securityFilterVersionAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(date, filters, version, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityFilterVersionAttributes {\n"); + sb.append(" date: ").append(toIndentedString(date)).append("\n"); + sb.append(" filters: ").append(toIndentedString(filters)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionEntry.java b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionEntry.java new file mode 100644 index 00000000000..71e35bf6af7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionEntry.java @@ -0,0 +1,372 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** A single security filter as it existed at a given configuration version. */ +@JsonPropertyOrder({ + SecurityFilterVersionEntry.JSON_PROPERTY_EXCLUSION_FILTERS, + SecurityFilterVersionEntry.JSON_PROPERTY_FILTERED_DATA_TYPE, + SecurityFilterVersionEntry.JSON_PROPERTY_ID, + SecurityFilterVersionEntry.JSON_PROPERTY_IS_BUILTIN, + SecurityFilterVersionEntry.JSON_PROPERTY_IS_ENABLED, + SecurityFilterVersionEntry.JSON_PROPERTY_NAME, + SecurityFilterVersionEntry.JSON_PROPERTY_QUERY, + SecurityFilterVersionEntry.JSON_PROPERTY_VERSION +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityFilterVersionEntry { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_EXCLUSION_FILTERS = "exclusion_filters"; + private List exclusionFilters = new ArrayList<>(); + + public static final String JSON_PROPERTY_FILTERED_DATA_TYPE = "filtered_data_type"; + private SecurityFilterFilteredDataType filteredDataType; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_IS_BUILTIN = "is_builtin"; + private Boolean isBuiltin; + + public static final String JSON_PROPERTY_IS_ENABLED = "is_enabled"; + private Boolean isEnabled; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_QUERY = "query"; + private String query; + + public static final String JSON_PROPERTY_VERSION = "version"; + private Integer version; + + public SecurityFilterVersionEntry() {} + + @JsonCreator + public SecurityFilterVersionEntry( + @JsonProperty(required = true, value = JSON_PROPERTY_EXCLUSION_FILTERS) + List exclusionFilters, + @JsonProperty(required = true, value = JSON_PROPERTY_FILTERED_DATA_TYPE) + SecurityFilterFilteredDataType filteredDataType, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_IS_BUILTIN) Boolean isBuiltin, + @JsonProperty(required = true, value = JSON_PROPERTY_IS_ENABLED) Boolean isEnabled, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_QUERY) String query, + @JsonProperty(required = true, value = JSON_PROPERTY_VERSION) Integer version) { + this.exclusionFilters = exclusionFilters; + this.filteredDataType = filteredDataType; + this.unparsed |= !filteredDataType.isValid(); + this.id = id; + this.isBuiltin = isBuiltin; + this.isEnabled = isEnabled; + this.name = name; + this.query = query; + this.version = version; + } + + public SecurityFilterVersionEntry exclusionFilters( + List exclusionFilters) { + this.exclusionFilters = exclusionFilters; + for (SecurityFilterExclusionFilterResponse item : exclusionFilters) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityFilterVersionEntry addExclusionFiltersItem( + SecurityFilterExclusionFilterResponse exclusionFiltersItem) { + this.exclusionFilters.add(exclusionFiltersItem); + this.unparsed |= exclusionFiltersItem.unparsed; + return this; + } + + /** + * The list of exclusion filters applied in this security filter. + * + * @return exclusionFilters + */ + @JsonProperty(JSON_PROPERTY_EXCLUSION_FILTERS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getExclusionFilters() { + return exclusionFilters; + } + + public void setExclusionFilters(List exclusionFilters) { + this.exclusionFilters = exclusionFilters; + } + + public SecurityFilterVersionEntry filteredDataType( + SecurityFilterFilteredDataType filteredDataType) { + this.filteredDataType = filteredDataType; + this.unparsed |= !filteredDataType.isValid(); + return this; + } + + /** + * The filtered data type. + * + * @return filteredDataType + */ + @JsonProperty(JSON_PROPERTY_FILTERED_DATA_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityFilterFilteredDataType getFilteredDataType() { + return filteredDataType; + } + + public void setFilteredDataType(SecurityFilterFilteredDataType filteredDataType) { + if (!filteredDataType.isValid()) { + this.unparsed = true; + } + this.filteredDataType = filteredDataType; + } + + public SecurityFilterVersionEntry id(String id) { + this.id = id; + return this; + } + + /** + * The ID of the security filter. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SecurityFilterVersionEntry isBuiltin(Boolean isBuiltin) { + this.isBuiltin = isBuiltin; + return this; + } + + /** + * Whether the security filter is the built-in filter. + * + * @return isBuiltin + */ + @JsonProperty(JSON_PROPERTY_IS_BUILTIN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsBuiltin() { + return isBuiltin; + } + + public void setIsBuiltin(Boolean isBuiltin) { + this.isBuiltin = isBuiltin; + } + + public SecurityFilterVersionEntry isEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + return this; + } + + /** + * Whether the security filter is enabled. + * + * @return isEnabled + */ + @JsonProperty(JSON_PROPERTY_IS_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getIsEnabled() { + return isEnabled; + } + + public void setIsEnabled(Boolean isEnabled) { + this.isEnabled = isEnabled; + } + + public SecurityFilterVersionEntry name(String name) { + this.name = name; + return this; + } + + /** + * The name of the security filter. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SecurityFilterVersionEntry query(String query) { + this.query = query; + return this; + } + + /** + * The query of the security filter. + * + * @return query + */ + @JsonProperty(JSON_PROPERTY_QUERY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public SecurityFilterVersionEntry version(Integer version) { + this.version = version; + return this; + } + + /** + * The version of this security filter. maximum: 2147483647 + * + * @return version + */ + @JsonProperty(JSON_PROPERTY_VERSION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityFilterVersionEntry + */ + @JsonAnySetter + public SecurityFilterVersionEntry putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityFilterVersionEntry object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityFilterVersionEntry securityFilterVersionEntry = (SecurityFilterVersionEntry) o; + return Objects.equals(this.exclusionFilters, securityFilterVersionEntry.exclusionFilters) + && Objects.equals(this.filteredDataType, securityFilterVersionEntry.filteredDataType) + && Objects.equals(this.id, securityFilterVersionEntry.id) + && Objects.equals(this.isBuiltin, securityFilterVersionEntry.isBuiltin) + && Objects.equals(this.isEnabled, securityFilterVersionEntry.isEnabled) + && Objects.equals(this.name, securityFilterVersionEntry.name) + && Objects.equals(this.query, securityFilterVersionEntry.query) + && Objects.equals(this.version, securityFilterVersionEntry.version) + && Objects.equals( + this.additionalProperties, securityFilterVersionEntry.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + exclusionFilters, + filteredDataType, + id, + isBuiltin, + isEnabled, + name, + query, + version, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityFilterVersionEntry {\n"); + sb.append(" exclusionFilters: ").append(toIndentedString(exclusionFilters)).append("\n"); + sb.append(" filteredDataType: ").append(toIndentedString(filteredDataType)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" isBuiltin: ").append(toIndentedString(isBuiltin)).append("\n"); + sb.append(" isEnabled: ").append(toIndentedString(isEnabled)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" query: ").append(toIndentedString(query)).append("\n"); + sb.append(" version: ").append(toIndentedString(version)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionType.java new file mode 100644 index 00000000000..3c7f9546cbd --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionType.java @@ -0,0 +1,59 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The type of the resource. The value should always be security_filters_configuration. + */ +@JsonSerialize(using = SecurityFilterVersionType.SecurityFilterVersionTypeSerializer.class) +public class SecurityFilterVersionType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("security_filters_configuration")); + + public static final SecurityFilterVersionType SECURITY_FILTERS_CONFIGURATION = + new SecurityFilterVersionType("security_filters_configuration"); + + SecurityFilterVersionType(String value) { + super(value, allowedValues); + } + + public static class SecurityFilterVersionTypeSerializer + extends StdSerializer { + public SecurityFilterVersionTypeSerializer(Class t) { + super(t); + } + + public SecurityFilterVersionTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityFilterVersionType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityFilterVersionType fromValue(String value) { + return new SecurityFilterVersionType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionsResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionsResponse.java new file mode 100644 index 00000000000..0a8c9a47e33 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityFilterVersionsResponse.java @@ -0,0 +1,157 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing the version history of security filters. */ +@JsonPropertyOrder({SecurityFilterVersionsResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityFilterVersionsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public SecurityFilterVersionsResponse() {} + + @JsonCreator + public SecurityFilterVersionsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) { + this.data = data; + } + + public SecurityFilterVersionsResponse data(List data) { + this.data = data; + for (SecurityFilterVersion item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityFilterVersionsResponse addDataItem(SecurityFilterVersion dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * A list of historical security filter configurations, ordered from the most recent to the + * oldest. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityFilterVersionsResponse + */ + @JsonAnySetter + public SecurityFilterVersionsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityFilterVersionsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityFilterVersionsResponse securityFilterVersionsResponse = + (SecurityFilterVersionsResponse) o; + return Objects.equals(this.data, securityFilterVersionsResponse.data) + && Objects.equals( + this.additionalProperties, securityFilterVersionsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityFilterVersionsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigAttributes.java new file mode 100644 index 00000000000..cb946121c49 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigAttributes.java @@ -0,0 +1,374 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The attributes of an entity context sync configuration as returned by the API. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_CREATED_AT, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_DOMAIN, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_ENABLED, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_INTEGRATION_TYPE, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_MODIFIED_AT, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_NAME, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_SETTINGS, + SecurityMonitoringIntegrationConfigAttributes.JSON_PROPERTY_STATE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_DOMAIN = "domain"; + private String domain; + + public static final String JSON_PROPERTY_ENABLED = "enabled"; + private Boolean enabled; + + public static final String JSON_PROPERTY_INTEGRATION_TYPE = "integration_type"; + private SecurityMonitoringIntegrationType integrationType; + + public static final String JSON_PROPERTY_MODIFIED_AT = "modified_at"; + private OffsetDateTime modifiedAt; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_SETTINGS = "settings"; + private Map settings = null; + + public static final String JSON_PROPERTY_STATE = "state"; + private SecurityMonitoringIntegrationConfigState state; + + public SecurityMonitoringIntegrationConfigAttributes() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_DOMAIN) String domain, + @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled, + @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_TYPE) + SecurityMonitoringIntegrationType integrationType) { + this.domain = domain; + this.enabled = enabled; + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + } + + public SecurityMonitoringIntegrationConfigAttributes createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * The time at which the entity context sync configuration was created. + * + * @return createdAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public SecurityMonitoringIntegrationConfigAttributes domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain associated with the external entity source (for example, the customer's identity + * provider domain). + * + * @return domain + */ + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SecurityMonitoringIntegrationConfigAttributes enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the sync is enabled and actively ingesting entities into Cloud SIEM. + * + * @return enabled + */ + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public SecurityMonitoringIntegrationConfigAttributes integrationType( + SecurityMonitoringIntegrationType integrationType) { + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + return this; + } + + /** + * The type of external source that provides entities to Cloud SIEM. + * + * @return integrationType + */ + @JsonProperty(JSON_PROPERTY_INTEGRATION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationType getIntegrationType() { + return integrationType; + } + + public void setIntegrationType(SecurityMonitoringIntegrationType integrationType) { + if (!integrationType.isValid()) { + this.unparsed = true; + } + this.integrationType = integrationType; + } + + public SecurityMonitoringIntegrationConfigAttributes modifiedAt(OffsetDateTime modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + /** + * The time at which the entity context sync configuration was last modified. + * + * @return modifiedAt + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MODIFIED_AT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public OffsetDateTime getModifiedAt() { + return modifiedAt; + } + + public void setModifiedAt(OffsetDateTime modifiedAt) { + this.modifiedAt = modifiedAt; + } + + public SecurityMonitoringIntegrationConfigAttributes name(String name) { + this.name = name; + return this; + } + + /** + * The display name of the entity context sync configuration. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SecurityMonitoringIntegrationConfigAttributes settings(Map settings) { + this.settings = settings; + return this; + } + + public SecurityMonitoringIntegrationConfigAttributes putSettingsItem( + String key, Object settingsItem) { + if (this.settings == null) { + this.settings = new HashMap<>(); + } + this.settings.put(key, settingsItem); + return this; + } + + /** + * Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the + * source type. + * + * @return settings + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTINGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getSettings() { + return settings; + } + + public void setSettings(Map settings) { + this.settings = settings; + } + + public SecurityMonitoringIntegrationConfigAttributes state( + SecurityMonitoringIntegrationConfigState state) { + this.state = state; + this.unparsed |= !state.isValid(); + return this; + } + + /** + * The state of the credentials configured on the entity context sync. + * + * @return state + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringIntegrationConfigState getState() { + return state; + } + + public void setState(SecurityMonitoringIntegrationConfigState state) { + if (!state.isValid()) { + this.unparsed = true; + } + this.state = state; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigAttributes + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigAttributes putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigAttributes securityMonitoringIntegrationConfigAttributes = + (SecurityMonitoringIntegrationConfigAttributes) o; + return Objects.equals(this.createdAt, securityMonitoringIntegrationConfigAttributes.createdAt) + && Objects.equals(this.domain, securityMonitoringIntegrationConfigAttributes.domain) + && Objects.equals(this.enabled, securityMonitoringIntegrationConfigAttributes.enabled) + && Objects.equals( + this.integrationType, securityMonitoringIntegrationConfigAttributes.integrationType) + && Objects.equals(this.modifiedAt, securityMonitoringIntegrationConfigAttributes.modifiedAt) + && Objects.equals(this.name, securityMonitoringIntegrationConfigAttributes.name) + && Objects.equals(this.settings, securityMonitoringIntegrationConfigAttributes.settings) + && Objects.equals(this.state, securityMonitoringIntegrationConfigAttributes.state) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + createdAt, + domain, + enabled, + integrationType, + modifiedAt, + name, + settings, + state, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigAttributes {\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" integrationType: ").append(toIndentedString(integrationType)).append("\n"); + sb.append(" modifiedAt: ").append(toIndentedString(modifiedAt)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" settings: ").append(toIndentedString(settings)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java new file mode 100644 index 00000000000..3b3afb7df96 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateAttributes.java @@ -0,0 +1,291 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The attributes of the entity context sync configuration to create. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationConfigCreateAttributes.JSON_PROPERTY_DOMAIN, + SecurityMonitoringIntegrationConfigCreateAttributes.JSON_PROPERTY_INTEGRATION_TYPE, + SecurityMonitoringIntegrationConfigCreateAttributes.JSON_PROPERTY_NAME, + SecurityMonitoringIntegrationConfigCreateAttributes.JSON_PROPERTY_SECRETS, + SecurityMonitoringIntegrationConfigCreateAttributes.JSON_PROPERTY_SETTINGS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigCreateAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DOMAIN = "domain"; + private String domain; + + public static final String JSON_PROPERTY_INTEGRATION_TYPE = "integration_type"; + private SecurityMonitoringIntegrationType integrationType; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_SECRETS = "secrets"; + private Map secrets = new HashMap(); + + public static final String JSON_PROPERTY_SETTINGS = "settings"; + private Map settings = null; + + public SecurityMonitoringIntegrationConfigCreateAttributes() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigCreateAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_DOMAIN) String domain, + @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_TYPE) + SecurityMonitoringIntegrationType integrationType, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_SECRETS) Map secrets) { + this.domain = domain; + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + this.name = name; + this.secrets = secrets; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain associated with the external entity source. + * + * @return domain + */ + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes integrationType( + SecurityMonitoringIntegrationType integrationType) { + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + return this; + } + + /** + * The type of external source that provides entities to Cloud SIEM. + * + * @return integrationType + */ + @JsonProperty(JSON_PROPERTY_INTEGRATION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationType getIntegrationType() { + return integrationType; + } + + public void setIntegrationType(SecurityMonitoringIntegrationType integrationType) { + if (!integrationType.isValid()) { + this.unparsed = true; + } + this.integrationType = integrationType; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes name(String name) { + this.name = name; + return this; + } + + /** + * The display name for the entity context sync configuration. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes secrets(Map secrets) { + this.secrets = secrets; + return this; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes putSecretsItem( + String key, Object secretsItem) { + this.secrets.put(key, secretsItem); + return this; + } + + /** + * The secrets used to authenticate against the external entity source. The accepted keys depend + * on the source type (for example, admin_email for Google Workspace). + * + * @return secrets + */ + @JsonProperty(JSON_PROPERTY_SECRETS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getSecrets() { + return secrets; + } + + public void setSecrets(Map secrets) { + this.secrets = secrets; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes settings( + Map settings) { + this.settings = settings; + return this; + } + + public SecurityMonitoringIntegrationConfigCreateAttributes putSettingsItem( + String key, Object settingsItem) { + if (this.settings == null) { + this.settings = new HashMap<>(); + } + this.settings.put(key, settingsItem); + return this; + } + + /** + * Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the + * source type. + * + * @return settings + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTINGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getSettings() { + return settings; + } + + public void setSettings(Map settings) { + this.settings = settings; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigCreateAttributes + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigCreateAttributes putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this SecurityMonitoringIntegrationConfigCreateAttributes object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigCreateAttributes + securityMonitoringIntegrationConfigCreateAttributes = + (SecurityMonitoringIntegrationConfigCreateAttributes) o; + return Objects.equals(this.domain, securityMonitoringIntegrationConfigCreateAttributes.domain) + && Objects.equals( + this.integrationType, + securityMonitoringIntegrationConfigCreateAttributes.integrationType) + && Objects.equals(this.name, securityMonitoringIntegrationConfigCreateAttributes.name) + && Objects.equals(this.secrets, securityMonitoringIntegrationConfigCreateAttributes.secrets) + && Objects.equals( + this.settings, securityMonitoringIntegrationConfigCreateAttributes.settings) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigCreateAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(domain, integrationType, name, secrets, settings, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigCreateAttributes {\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" integrationType: ").append(toIndentedString(integrationType)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" secrets: ").append(toIndentedString(secrets)).append("\n"); + sb.append(" settings: ").append(toIndentedString(settings)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateData.java new file mode 100644 index 00000000000..6e225dcc3bb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateData.java @@ -0,0 +1,189 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The entity context sync configuration to create. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationConfigCreateData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringIntegrationConfigCreateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigCreateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringIntegrationConfigCreateAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringIntegrationConfigResourceType type = + SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG; + + public SecurityMonitoringIntegrationConfigCreateData() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigCreateData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringIntegrationConfigCreateAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringIntegrationConfigResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringIntegrationConfigCreateData attributes( + SecurityMonitoringIntegrationConfigCreateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes of the entity context sync configuration to create. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigCreateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringIntegrationConfigCreateAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringIntegrationConfigCreateData type( + SecurityMonitoringIntegrationConfigResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be integration_config. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigResourceType getType() { + return type; + } + + public void setType(SecurityMonitoringIntegrationConfigResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigCreateData + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigCreateData putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigCreateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigCreateData securityMonitoringIntegrationConfigCreateData = + (SecurityMonitoringIntegrationConfigCreateData) o; + return Objects.equals(this.attributes, securityMonitoringIntegrationConfigCreateData.attributes) + && Objects.equals(this.type, securityMonitoringIntegrationConfigCreateData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigCreateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigCreateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateRequest.java new file mode 100644 index 00000000000..edaebcedd93 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigCreateRequest.java @@ -0,0 +1,152 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request body to create an entity context sync configuration. */ +@JsonPropertyOrder({SecurityMonitoringIntegrationConfigCreateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigCreateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringIntegrationConfigCreateData data; + + public SecurityMonitoringIntegrationConfigCreateRequest() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigCreateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringIntegrationConfigCreateData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringIntegrationConfigCreateRequest data( + SecurityMonitoringIntegrationConfigCreateData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The entity context sync configuration to create. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigCreateData getData() { + return data; + } + + public void setData(SecurityMonitoringIntegrationConfigCreateData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigCreateRequest + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigCreateRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigCreateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigCreateRequest + securityMonitoringIntegrationConfigCreateRequest = + (SecurityMonitoringIntegrationConfigCreateRequest) o; + return Objects.equals(this.data, securityMonitoringIntegrationConfigCreateRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigCreateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigCreateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigData.java new file mode 100644 index 00000000000..560be089322 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigData.java @@ -0,0 +1,216 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** An entity context sync configuration. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationConfigData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringIntegrationConfigData.JSON_PROPERTY_ID, + SecurityMonitoringIntegrationConfigData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringIntegrationConfigAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringIntegrationConfigResourceType type = + SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG; + + public SecurityMonitoringIntegrationConfigData() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringIntegrationConfigAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringIntegrationConfigResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringIntegrationConfigData attributes( + SecurityMonitoringIntegrationConfigAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The attributes of an entity context sync configuration as returned by the API. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringIntegrationConfigAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringIntegrationConfigData id(String id) { + this.id = id; + return this; + } + + /** + * The unique identifier of the integration configuration. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SecurityMonitoringIntegrationConfigData type( + SecurityMonitoringIntegrationConfigResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be integration_config. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigResourceType getType() { + return type; + } + + public void setType(SecurityMonitoringIntegrationConfigResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigData + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigData securityMonitoringIntegrationConfigData = + (SecurityMonitoringIntegrationConfigData) o; + return Objects.equals(this.attributes, securityMonitoringIntegrationConfigData.attributes) + && Objects.equals(this.id, securityMonitoringIntegrationConfigData.id) + && Objects.equals(this.type, securityMonitoringIntegrationConfigData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResourceType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResourceType.java new file mode 100644 index 00000000000..15b0cfee42e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResourceType.java @@ -0,0 +1,63 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of the resource. The value should always be integration_config. */ +@JsonSerialize( + using = + SecurityMonitoringIntegrationConfigResourceType + .SecurityMonitoringIntegrationConfigResourceTypeSerializer.class) +public class SecurityMonitoringIntegrationConfigResourceType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("integration_config")); + + public static final SecurityMonitoringIntegrationConfigResourceType INTEGRATION_CONFIG = + new SecurityMonitoringIntegrationConfigResourceType("integration_config"); + + SecurityMonitoringIntegrationConfigResourceType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringIntegrationConfigResourceTypeSerializer + extends StdSerializer { + public SecurityMonitoringIntegrationConfigResourceTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringIntegrationConfigResourceTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringIntegrationConfigResourceType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringIntegrationConfigResourceType fromValue(String value) { + return new SecurityMonitoringIntegrationConfigResourceType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResponse.java new file mode 100644 index 00000000000..b5f418e44c8 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigResponse.java @@ -0,0 +1,151 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing a single entity context sync configuration. */ +@JsonPropertyOrder({SecurityMonitoringIntegrationConfigResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringIntegrationConfigData data; + + public SecurityMonitoringIntegrationConfigResponse() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringIntegrationConfigData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringIntegrationConfigResponse data( + SecurityMonitoringIntegrationConfigData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * An entity context sync configuration. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigData getData() { + return data; + } + + public void setData(SecurityMonitoringIntegrationConfigData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigResponse + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigResponse putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigResponse securityMonitoringIntegrationConfigResponse = + (SecurityMonitoringIntegrationConfigResponse) o; + return Objects.equals(this.data, securityMonitoringIntegrationConfigResponse.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigState.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigState.java new file mode 100644 index 00000000000..20082a6ab62 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigState.java @@ -0,0 +1,67 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The state of the credentials configured on the entity context sync. */ +@JsonSerialize( + using = + SecurityMonitoringIntegrationConfigState.SecurityMonitoringIntegrationConfigStateSerializer + .class) +public class SecurityMonitoringIntegrationConfigState extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("valid", "invalid", "initializing")); + + public static final SecurityMonitoringIntegrationConfigState VALID = + new SecurityMonitoringIntegrationConfigState("valid"); + public static final SecurityMonitoringIntegrationConfigState INVALID = + new SecurityMonitoringIntegrationConfigState("invalid"); + public static final SecurityMonitoringIntegrationConfigState INITIALIZING = + new SecurityMonitoringIntegrationConfigState("initializing"); + + SecurityMonitoringIntegrationConfigState(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringIntegrationConfigStateSerializer + extends StdSerializer { + public SecurityMonitoringIntegrationConfigStateSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringIntegrationConfigStateSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringIntegrationConfigState value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringIntegrationConfigState fromValue(String value) { + return new SecurityMonitoringIntegrationConfigState(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java new file mode 100644 index 00000000000..5c2bf8f17c1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateAttributes.java @@ -0,0 +1,309 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Fields to update on the entity context sync configuration. All fields are optional. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationConfigUpdateAttributes.JSON_PROPERTY_DOMAIN, + SecurityMonitoringIntegrationConfigUpdateAttributes.JSON_PROPERTY_ENABLED, + SecurityMonitoringIntegrationConfigUpdateAttributes.JSON_PROPERTY_INTEGRATION_TYPE, + SecurityMonitoringIntegrationConfigUpdateAttributes.JSON_PROPERTY_NAME, + SecurityMonitoringIntegrationConfigUpdateAttributes.JSON_PROPERTY_SECRETS, + SecurityMonitoringIntegrationConfigUpdateAttributes.JSON_PROPERTY_SETTINGS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigUpdateAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DOMAIN = "domain"; + private String domain; + + public static final String JSON_PROPERTY_ENABLED = "enabled"; + private Boolean enabled; + + public static final String JSON_PROPERTY_INTEGRATION_TYPE = "integration_type"; + private SecurityMonitoringIntegrationType integrationType; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_SECRETS = "secrets"; + private Map secrets = null; + + public static final String JSON_PROPERTY_SETTINGS = "settings"; + private Map settings = null; + + public SecurityMonitoringIntegrationConfigUpdateAttributes domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The new domain associated with the external entity source. + * + * @return domain + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the entity context sync should be enabled. + * + * @return enabled + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes integrationType( + SecurityMonitoringIntegrationType integrationType) { + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + return this; + } + + /** + * The type of external source that provides entities to Cloud SIEM. + * + * @return integrationType + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INTEGRATION_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringIntegrationType getIntegrationType() { + return integrationType; + } + + public void setIntegrationType(SecurityMonitoringIntegrationType integrationType) { + if (!integrationType.isValid()) { + this.unparsed = true; + } + this.integrationType = integrationType; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes name(String name) { + this.name = name; + return this; + } + + /** + * The new display name for the entity context sync configuration. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes secrets(Map secrets) { + this.secrets = secrets; + return this; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes putSecretsItem( + String key, Object secretsItem) { + if (this.secrets == null) { + this.secrets = new HashMap<>(); + } + this.secrets.put(key, secretsItem); + return this; + } + + /** + * The secrets used to authenticate against the external entity source. The accepted keys depend + * on the source type (for example, admin_email for Google Workspace). + * + * @return secrets + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SECRETS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getSecrets() { + return secrets; + } + + public void setSecrets(Map secrets) { + this.secrets = secrets; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes settings( + Map settings) { + this.settings = settings; + return this; + } + + public SecurityMonitoringIntegrationConfigUpdateAttributes putSettingsItem( + String key, Object settingsItem) { + if (this.settings == null) { + this.settings = new HashMap<>(); + } + this.settings.put(key, settingsItem); + return this; + } + + /** + * Free-form, non-sensitive settings for the entity context sync. The accepted keys depend on the + * source type. + * + * @return settings + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SETTINGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getSettings() { + return settings; + } + + public void setSettings(Map settings) { + this.settings = settings; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigUpdateAttributes + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigUpdateAttributes putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this SecurityMonitoringIntegrationConfigUpdateAttributes object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigUpdateAttributes + securityMonitoringIntegrationConfigUpdateAttributes = + (SecurityMonitoringIntegrationConfigUpdateAttributes) o; + return Objects.equals(this.domain, securityMonitoringIntegrationConfigUpdateAttributes.domain) + && Objects.equals(this.enabled, securityMonitoringIntegrationConfigUpdateAttributes.enabled) + && Objects.equals( + this.integrationType, + securityMonitoringIntegrationConfigUpdateAttributes.integrationType) + && Objects.equals(this.name, securityMonitoringIntegrationConfigUpdateAttributes.name) + && Objects.equals(this.secrets, securityMonitoringIntegrationConfigUpdateAttributes.secrets) + && Objects.equals( + this.settings, securityMonitoringIntegrationConfigUpdateAttributes.settings) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigUpdateAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + domain, enabled, integrationType, name, secrets, settings, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigUpdateAttributes {\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" integrationType: ").append(toIndentedString(integrationType)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" secrets: ").append(toIndentedString(secrets)).append("\n"); + sb.append(" settings: ").append(toIndentedString(settings)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateData.java new file mode 100644 index 00000000000..47a4963616c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateData.java @@ -0,0 +1,189 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The entity context sync configuration fields to update. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationConfigUpdateData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringIntegrationConfigUpdateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigUpdateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringIntegrationConfigUpdateAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringIntegrationConfigResourceType type = + SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG; + + public SecurityMonitoringIntegrationConfigUpdateData() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigUpdateData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringIntegrationConfigUpdateAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringIntegrationConfigResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringIntegrationConfigUpdateData attributes( + SecurityMonitoringIntegrationConfigUpdateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Fields to update on the entity context sync configuration. All fields are optional. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigUpdateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringIntegrationConfigUpdateAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringIntegrationConfigUpdateData type( + SecurityMonitoringIntegrationConfigResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be integration_config. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigResourceType getType() { + return type; + } + + public void setType(SecurityMonitoringIntegrationConfigResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigUpdateData + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigUpdateData putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigUpdateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigUpdateData securityMonitoringIntegrationConfigUpdateData = + (SecurityMonitoringIntegrationConfigUpdateData) o; + return Objects.equals(this.attributes, securityMonitoringIntegrationConfigUpdateData.attributes) + && Objects.equals(this.type, securityMonitoringIntegrationConfigUpdateData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigUpdateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigUpdateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateRequest.java new file mode 100644 index 00000000000..0c1abfc37ab --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigUpdateRequest.java @@ -0,0 +1,152 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request body to update an entity context sync configuration. Supports partial updates. */ +@JsonPropertyOrder({SecurityMonitoringIntegrationConfigUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringIntegrationConfigUpdateData data; + + public SecurityMonitoringIntegrationConfigUpdateRequest() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringIntegrationConfigUpdateData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringIntegrationConfigUpdateRequest data( + SecurityMonitoringIntegrationConfigUpdateData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The entity context sync configuration fields to update. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigUpdateData getData() { + return data; + } + + public void setData(SecurityMonitoringIntegrationConfigUpdateData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigUpdateRequest + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigUpdateRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigUpdateRequest + securityMonitoringIntegrationConfigUpdateRequest = + (SecurityMonitoringIntegrationConfigUpdateRequest) o; + return Objects.equals(this.data, securityMonitoringIntegrationConfigUpdateRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigsResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigsResponse.java new file mode 100644 index 00000000000..e5023d554f5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationConfigsResponse.java @@ -0,0 +1,161 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing a list of entity context sync configurations. */ +@JsonPropertyOrder({SecurityMonitoringIntegrationConfigsResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationConfigsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public SecurityMonitoringIntegrationConfigsResponse() {} + + @JsonCreator + public SecurityMonitoringIntegrationConfigsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public SecurityMonitoringIntegrationConfigsResponse data( + List data) { + this.data = data; + for (SecurityMonitoringIntegrationConfigData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SecurityMonitoringIntegrationConfigsResponse addDataItem( + SecurityMonitoringIntegrationConfigData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The list of integration configurations. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationConfigsResponse + */ + @JsonAnySetter + public SecurityMonitoringIntegrationConfigsResponse putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SecurityMonitoringIntegrationConfigsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationConfigsResponse securityMonitoringIntegrationConfigsResponse = + (SecurityMonitoringIntegrationConfigsResponse) o; + return Objects.equals(this.data, securityMonitoringIntegrationConfigsResponse.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationConfigsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationConfigsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java new file mode 100644 index 00000000000..91d9598a9c5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateAttributes.java @@ -0,0 +1,228 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The credentials to validate against the external entity source. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationCredentialsValidateAttributes.JSON_PROPERTY_DOMAIN, + SecurityMonitoringIntegrationCredentialsValidateAttributes.JSON_PROPERTY_INTEGRATION_TYPE, + SecurityMonitoringIntegrationCredentialsValidateAttributes.JSON_PROPERTY_SECRETS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationCredentialsValidateAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DOMAIN = "domain"; + private String domain; + + public static final String JSON_PROPERTY_INTEGRATION_TYPE = "integration_type"; + private SecurityMonitoringIntegrationType integrationType; + + public static final String JSON_PROPERTY_SECRETS = "secrets"; + private Map secrets = new HashMap(); + + public SecurityMonitoringIntegrationCredentialsValidateAttributes() {} + + @JsonCreator + public SecurityMonitoringIntegrationCredentialsValidateAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_DOMAIN) String domain, + @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_TYPE) + SecurityMonitoringIntegrationType integrationType, + @JsonProperty(required = true, value = JSON_PROPERTY_SECRETS) Map secrets) { + this.domain = domain; + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + this.secrets = secrets; + } + + public SecurityMonitoringIntegrationCredentialsValidateAttributes domain(String domain) { + this.domain = domain; + return this; + } + + /** + * The domain associated with the external entity source. + * + * @return domain + */ + @JsonProperty(JSON_PROPERTY_DOMAIN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public SecurityMonitoringIntegrationCredentialsValidateAttributes integrationType( + SecurityMonitoringIntegrationType integrationType) { + this.integrationType = integrationType; + this.unparsed |= !integrationType.isValid(); + return this; + } + + /** + * The type of external source that provides entities to Cloud SIEM. + * + * @return integrationType + */ + @JsonProperty(JSON_PROPERTY_INTEGRATION_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationType getIntegrationType() { + return integrationType; + } + + public void setIntegrationType(SecurityMonitoringIntegrationType integrationType) { + if (!integrationType.isValid()) { + this.unparsed = true; + } + this.integrationType = integrationType; + } + + public SecurityMonitoringIntegrationCredentialsValidateAttributes secrets( + Map secrets) { + this.secrets = secrets; + return this; + } + + public SecurityMonitoringIntegrationCredentialsValidateAttributes putSecretsItem( + String key, Object secretsItem) { + this.secrets.put(key, secretsItem); + return this; + } + + /** + * The secrets used to authenticate against the external entity source. The accepted keys depend + * on the source type (for example, admin_email for Google Workspace). + * + * @return secrets + */ + @JsonProperty(JSON_PROPERTY_SECRETS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getSecrets() { + return secrets; + } + + public void setSecrets(Map secrets) { + this.secrets = secrets; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationCredentialsValidateAttributes + */ + @JsonAnySetter + public SecurityMonitoringIntegrationCredentialsValidateAttributes putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this SecurityMonitoringIntegrationCredentialsValidateAttributes object is equal + * to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationCredentialsValidateAttributes + securityMonitoringIntegrationCredentialsValidateAttributes = + (SecurityMonitoringIntegrationCredentialsValidateAttributes) o; + return Objects.equals( + this.domain, securityMonitoringIntegrationCredentialsValidateAttributes.domain) + && Objects.equals( + this.integrationType, + securityMonitoringIntegrationCredentialsValidateAttributes.integrationType) + && Objects.equals( + this.secrets, securityMonitoringIntegrationCredentialsValidateAttributes.secrets) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationCredentialsValidateAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(domain, integrationType, secrets, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationCredentialsValidateAttributes {\n"); + sb.append(" domain: ").append(toIndentedString(domain)).append("\n"); + sb.append(" integrationType: ").append(toIndentedString(integrationType)).append("\n"); + sb.append(" secrets: ").append(toIndentedString(secrets)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateData.java new file mode 100644 index 00000000000..fed441372a6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateData.java @@ -0,0 +1,193 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The credentials to validate. */ +@JsonPropertyOrder({ + SecurityMonitoringIntegrationCredentialsValidateData.JSON_PROPERTY_ATTRIBUTES, + SecurityMonitoringIntegrationCredentialsValidateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationCredentialsValidateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SecurityMonitoringIntegrationCredentialsValidateAttributes attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringIntegrationConfigResourceType type = + SecurityMonitoringIntegrationConfigResourceType.INTEGRATION_CONFIG; + + public SecurityMonitoringIntegrationCredentialsValidateData() {} + + @JsonCreator + public SecurityMonitoringIntegrationCredentialsValidateData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SecurityMonitoringIntegrationCredentialsValidateAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringIntegrationConfigResourceType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringIntegrationCredentialsValidateData attributes( + SecurityMonitoringIntegrationCredentialsValidateAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The credentials to validate against the external entity source. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationCredentialsValidateAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SecurityMonitoringIntegrationCredentialsValidateAttributes attributes) { + this.attributes = attributes; + } + + public SecurityMonitoringIntegrationCredentialsValidateData type( + SecurityMonitoringIntegrationConfigResourceType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be integration_config. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationConfigResourceType getType() { + return type; + } + + public void setType(SecurityMonitoringIntegrationConfigResourceType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationCredentialsValidateData + */ + @JsonAnySetter + public SecurityMonitoringIntegrationCredentialsValidateData putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this SecurityMonitoringIntegrationCredentialsValidateData object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationCredentialsValidateData + securityMonitoringIntegrationCredentialsValidateData = + (SecurityMonitoringIntegrationCredentialsValidateData) o; + return Objects.equals( + this.attributes, securityMonitoringIntegrationCredentialsValidateData.attributes) + && Objects.equals(this.type, securityMonitoringIntegrationCredentialsValidateData.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationCredentialsValidateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationCredentialsValidateData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateRequest.java new file mode 100644 index 00000000000..4757ba74881 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationCredentialsValidateRequest.java @@ -0,0 +1,158 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * Request body to validate credentials against an external entity source before creating a sync + * configuration. + */ +@JsonPropertyOrder({SecurityMonitoringIntegrationCredentialsValidateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringIntegrationCredentialsValidateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SecurityMonitoringIntegrationCredentialsValidateData data; + + public SecurityMonitoringIntegrationCredentialsValidateRequest() {} + + @JsonCreator + public SecurityMonitoringIntegrationCredentialsValidateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SecurityMonitoringIntegrationCredentialsValidateData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SecurityMonitoringIntegrationCredentialsValidateRequest data( + SecurityMonitoringIntegrationCredentialsValidateData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The credentials to validate. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringIntegrationCredentialsValidateData getData() { + return data; + } + + public void setData(SecurityMonitoringIntegrationCredentialsValidateData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SecurityMonitoringIntegrationCredentialsValidateRequest + */ + @JsonAnySetter + public SecurityMonitoringIntegrationCredentialsValidateRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** + * Return true if this SecurityMonitoringIntegrationCredentialsValidateRequest object is equal to + * o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringIntegrationCredentialsValidateRequest + securityMonitoringIntegrationCredentialsValidateRequest = + (SecurityMonitoringIntegrationCredentialsValidateRequest) o; + return Objects.equals(this.data, securityMonitoringIntegrationCredentialsValidateRequest.data) + && Objects.equals( + this.additionalProperties, + securityMonitoringIntegrationCredentialsValidateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringIntegrationCredentialsValidateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationType.java new file mode 100644 index 00000000000..08d4f1ea416 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringIntegrationType.java @@ -0,0 +1,62 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of external source that provides entities to Cloud SIEM. */ +@JsonSerialize( + using = SecurityMonitoringIntegrationType.SecurityMonitoringIntegrationTypeSerializer.class) +public class SecurityMonitoringIntegrationType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("GOOGLE_WORKSPACE", "OKTA", "ENTRA_ID")); + + public static final SecurityMonitoringIntegrationType GOOGLE_WORKSPACE = + new SecurityMonitoringIntegrationType("GOOGLE_WORKSPACE"); + public static final SecurityMonitoringIntegrationType OKTA = + new SecurityMonitoringIntegrationType("OKTA"); + public static final SecurityMonitoringIntegrationType ENTRA_ID = + new SecurityMonitoringIntegrationType("ENTRA_ID"); + + SecurityMonitoringIntegrationType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringIntegrationTypeSerializer + extends StdSerializer { + public SecurityMonitoringIntegrationTypeSerializer(Class t) { + super(t); + } + + public SecurityMonitoringIntegrationTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringIntegrationType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringIntegrationType fromValue(String value) { + return new SecurityMonitoringIntegrationType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesAttributes.java new file mode 100644 index 00000000000..1b1ee44bea7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesAttributes.java @@ -0,0 +1,152 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes containing the entities related to the signal. */ +@JsonPropertyOrder({SignalEntitiesAttributes.JSON_PROPERTY_IDENTITIES}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SignalEntitiesAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_IDENTITIES = "identities"; + private List> identities = new ArrayList<>(); + + public SignalEntitiesAttributes() {} + + @JsonCreator + public SignalEntitiesAttributes( + @JsonProperty(required = true, value = JSON_PROPERTY_IDENTITIES) + List> identities) { + this.identities = identities; + } + + public SignalEntitiesAttributes identities(List> identities) { + this.identities = identities; + return this; + } + + public SignalEntitiesAttributes addIdentitiesItem(Map identitiesItem) { + this.identities.add(identitiesItem); + return this; + } + + /** + * The identity entities related to the signal. Each item is a free-form object describing an + * identity (for example, a user or principal). + * + * @return identities + */ + @JsonProperty(JSON_PROPERTY_IDENTITIES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List> getIdentities() { + return identities; + } + + public void setIdentities(List> identities) { + this.identities = identities; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SignalEntitiesAttributes + */ + @JsonAnySetter + public SignalEntitiesAttributes putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SignalEntitiesAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignalEntitiesAttributes signalEntitiesAttributes = (SignalEntitiesAttributes) o; + return Objects.equals(this.identities, signalEntitiesAttributes.identities) + && Objects.equals(this.additionalProperties, signalEntitiesAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(identities, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SignalEntitiesAttributes {\n"); + sb.append(" identities: ").append(toIndentedString(identities)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesData.java b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesData.java new file mode 100644 index 00000000000..448f3da74ca --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesData.java @@ -0,0 +1,209 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Entities related to a security signal. */ +@JsonPropertyOrder({ + SignalEntitiesData.JSON_PROPERTY_ATTRIBUTES, + SignalEntitiesData.JSON_PROPERTY_ID, + SignalEntitiesData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SignalEntitiesData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SignalEntitiesAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SignalEntitiesType type = SignalEntitiesType.ENTITIES; + + public SignalEntitiesData() {} + + @JsonCreator + public SignalEntitiesData( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SignalEntitiesAttributes attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SignalEntitiesType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SignalEntitiesData attributes(SignalEntitiesAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes containing the entities related to the signal. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SignalEntitiesAttributes getAttributes() { + return attributes; + } + + public void setAttributes(SignalEntitiesAttributes attributes) { + this.attributes = attributes; + } + + public SignalEntitiesData id(String id) { + this.id = id; + return this; + } + + /** + * The signal ID the entities are associated with. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SignalEntitiesData type(SignalEntitiesType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of the resource. The value should always be entities. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SignalEntitiesType getType() { + return type; + } + + public void setType(SignalEntitiesType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SignalEntitiesData + */ + @JsonAnySetter + public SignalEntitiesData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SignalEntitiesData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignalEntitiesData signalEntitiesData = (SignalEntitiesData) o; + return Objects.equals(this.attributes, signalEntitiesData.attributes) + && Objects.equals(this.id, signalEntitiesData.id) + && Objects.equals(this.type, signalEntitiesData.type) + && Objects.equals(this.additionalProperties, signalEntitiesData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SignalEntitiesData {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesResponse.java b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesResponse.java new file mode 100644 index 00000000000..4b952624afa --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesResponse.java @@ -0,0 +1,145 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing entities related to a security signal. */ +@JsonPropertyOrder({SignalEntitiesResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SignalEntitiesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SignalEntitiesData data; + + public SignalEntitiesResponse() {} + + @JsonCreator + public SignalEntitiesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) SignalEntitiesData data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SignalEntitiesResponse data(SignalEntitiesData data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Entities related to a security signal. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SignalEntitiesData getData() { + return data; + } + + public void setData(SignalEntitiesData data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return SignalEntitiesResponse + */ + @JsonAnySetter + public SignalEntitiesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this SignalEntitiesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SignalEntitiesResponse signalEntitiesResponse = (SignalEntitiesResponse) o; + return Objects.equals(this.data, signalEntitiesResponse.data) + && Objects.equals(this.additionalProperties, signalEntitiesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SignalEntitiesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesType.java b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesType.java new file mode 100644 index 00000000000..952d6b65b93 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SignalEntitiesType.java @@ -0,0 +1,53 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of the resource. The value should always be entities. */ +@JsonSerialize(using = SignalEntitiesType.SignalEntitiesTypeSerializer.class) +public class SignalEntitiesType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("entities")); + + public static final SignalEntitiesType ENTITIES = new SignalEntitiesType("entities"); + + SignalEntitiesType(String value) { + super(value, allowedValues); + } + + public static class SignalEntitiesTypeSerializer extends StdSerializer { + public SignalEntitiesTypeSerializer(Class t) { + super(t); + } + + public SignalEntitiesTypeSerializer() { + this(null); + } + + @Override + public void serialize(SignalEntitiesType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SignalEntitiesType fromValue(String value) { + return new SignalEntitiesType(value); + } +} diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index 95306c99540..48c0bbe328e 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature @@ -142,6 +142,22 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Bulk subscribe to sample log generation returns "Bad Request" response + Given operation "BulkCreateSampleLogGenerationSubscriptions" enabled + And new "BulkCreateSampleLogGenerationSubscriptions" request + And body with value {"data": {"attributes": {"content_pack_ids": ["aws-cloudtrail"], "duration": "3d"}, "type": "bulk_subscription_requests"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Bulk subscribe to sample log generation returns "OK" response + Given operation "BulkCreateSampleLogGenerationSubscriptions" enabled + And new "BulkCreateSampleLogGenerationSubscriptions" request + And body with value {"data": {"attributes": {"content_pack_ids": ["aws-cloudtrail"], "duration": "3d"}, "type": "bulk_subscription_requests"}} + When the request is sent + Then the response status is 200 OK + @skip @team:DataDog/k9-cloud-siem Scenario: Bulk update security signals returns "Bad Request" response Given new "BulkEditSecurityMonitoringSignals" request @@ -708,6 +724,22 @@ Feature: Security Monitoring And the response "data.attributes.rule_query" is equal to "type:log_detection source:cloudtrail" And the response "data.attributes.data_exclusion_query" is equal to "account_id:12345" + @generated @skip @team:DataDog/k9-cloud-siem + 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"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + 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"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/k9-investigation Scenario: Create case for security finding returns "Created" response Given new "CreateCases" request @@ -898,6 +930,22 @@ Feature: Security Monitoring When the request is sent Then the response status is 204 Rule successfully deleted. + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Delete an entity context sync configuration returns "Not Found" response + Given operation "DeleteSecurityMonitoringIntegrationConfig" enabled + And new "DeleteSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Delete an entity context sync configuration returns "OK" response + Given operation "DeleteSecurityMonitoringIntegrationConfig" enabled + And new "DeleteSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 OK + @team:DataDog/k9-cloud-siem Scenario: Delete an existing job returns "Bad Request" response Given operation "DeleteHistoricalJob" enabled @@ -1015,6 +1063,13 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get Cloud SIEM log formatting issues returns "OK" response + Given operation "ListLogFormattingIssues" enabled + And new "ListLogFormattingIssues" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-vm Scenario: Get SBOM returns "Bad request: The server cannot process the request due to invalid syntax in the request." response Given new "GetSBOM" request @@ -1385,6 +1440,22 @@ Feature: Security Monitoring Then the response status is 200 OK And the response "data[0].attributes.name" is equal to "suppression2 {{ unique_hash }}" + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get an entity context sync configuration returns "Not Found" response + Given operation "GetSecurityMonitoringIntegrationConfig" enabled + And new "GetSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get an entity context sync configuration returns "OK" response + Given operation "GetSecurityMonitoringIntegrationConfig" enabled + And new "GetSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem Scenario: Get an indicator of compromise returns "Bad Request" response Given operation "GetIndicatorOfCompromise" enabled @@ -1482,6 +1553,44 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 Notification rule details. + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get entities related to a signal returns "Bad Request" response + Given operation "GetSignalEntities" enabled + And new "GetSignalEntities" request + And request contains "signal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get entities related to a signal returns "Not Found" response + Given operation "GetSignalEntities" enabled + And new "GetSignalEntities" request + And request contains "signal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get entities related to a signal returns "OK" response + Given operation "GetSignalEntities" enabled + And new "GetSignalEntities" request + And request contains "signal_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get entity context returns "Bad Request" response + Given operation "GetEntityContext" enabled + And new "GetEntityContext" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get entity context returns "OK" response + Given operation "GetEntityContext" enabled + And new "GetEntityContext" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem Scenario: Get investigation queries for a signal returns "Not Found" response Given new "GetInvestigationLogQueriesMatchingSignal" request @@ -1514,6 +1623,20 @@ Feature: Security Monitoring And the response "data.attributes.count" is equal to 1 And the response "data.attributes.data[1].rule.name" has the same value as "security_rule.name" + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get sample log generation subscriptions returns "Bad Request" response + Given operation "ListSampleLogGenerationSubscriptions" enabled + And new "ListSampleLogGenerationSubscriptions" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get sample log generation subscriptions returns "OK" response + Given operation "ListSampleLogGenerationSubscriptions" enabled + And new "ListSampleLogGenerationSubscriptions" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem Scenario: Get suggested actions for a signal returns "Not Found" response Given new "GetSuggestedActionsMatchingSignal" request @@ -1580,6 +1703,12 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 The list of notification rules. + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Get the version history of security filters returns "OK" response + Given new "ListSecurityFilterVersions" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-vm Scenario: List assets SBOMs returns "Bad request: The server cannot process the request due to invalid syntax in the request." response Given new "ListAssetsSBOMs" request @@ -1608,6 +1737,13 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: List entity context sync configurations returns "OK" response + Given operation "ListSecurityMonitoringIntegrationConfigs" enabled + And new "ListSecurityMonitoringIntegrationConfigs" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-security-posture-management Scenario: List findings returns "Bad Request: The server cannot process the request due to invalid syntax in the request." response Given operation "ListFindings" enabled @@ -2096,6 +2232,22 @@ Feature: Security Monitoring And the response "meta.page" has field "after" And the response "links" has field "next" + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Subscribe to sample log generation returns "Bad Request" response + Given operation "CreateSampleLogGenerationSubscription" enabled + And new "CreateSampleLogGenerationSubscription" request + And body with value {"data": {"attributes": {"content_pack_id": "aws-cloudtrail", "duration": "3d"}, "type": "subscription_requests"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Subscribe to sample log generation returns "OK" response + Given operation "CreateSampleLogGenerationSubscription" enabled + And new "CreateSampleLogGenerationSubscription" request + And body with value {"data": {"attributes": {"content_pack_id": "aws-cloudtrail", "duration": "3d"}, "type": "subscription_requests"}} + When the request is sent + Then the response status is 200 OK + @skip @team:DataDog/k9-cloud-siem Scenario: Test a rule returns "Bad Request" response Given new "TestSecurityMonitoringRule" request @@ -2166,6 +2318,22 @@ Feature: Security Monitoring When the request is sent Then the response status is 422 Unprocessable Entity + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Unsubscribe from sample log generation returns "Bad Request" response + Given operation "DeleteSampleLogGenerationSubscription" enabled + And new "DeleteSampleLogGenerationSubscription" request + And request contains "content_pack_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Unsubscribe from sample log generation returns "OK" response + Given operation "DeleteSampleLogGenerationSubscription" enabled + And new "DeleteSampleLogGenerationSubscription" request + And request contains "content_pack_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @skip-validation @team:DataDog/k9-cloud-siem Scenario: Update a cloud configuration rule's details returns "OK" response Given new "UpdateSecurityMonitoringRule" request @@ -2305,6 +2473,33 @@ Feature: Security Monitoring And the response "data.attributes.suppression_query" is equal to "env:staging status:low" And the response "data.attributes.version" is equal to 2 + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Update an entity context sync configuration returns "Bad Request" response + 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"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Update an entity context sync configuration returns "Not Found" response + 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"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Update an entity context sync configuration returns "OK" response + 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"}} + When the request is sent + Then the response status is 200 OK + @skip-validation @team:DataDog/k9-cloud-siem Scenario: Update an existing rule returns "Bad Request" response Given new "UpdateSecurityMonitoringRule" request @@ -2412,3 +2607,43 @@ Feature: Security Monitoring And body with value {"data": {"attributes": {"data_exclusion_query": "source:cloudtrail account_id:12345", "description": "This rule suppresses low-severity signals in staging environments.", "enabled": true, "name": "Custom suppression", "rule_query": "type:log_detection source:cloudtrail"}, "type": "suppressions"}} When the request is sent Then the response status is 204 OK + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Validate an entity context sync configuration returns "Bad Request" response + Given operation "ValidateSecurityMonitoringIntegrationConfig" enabled + And new "ValidateSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Validate an entity context sync configuration returns "Not Found" response + Given operation "ValidateSecurityMonitoringIntegrationConfig" enabled + And new "ValidateSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-siem + Scenario: Validate an entity context sync configuration returns "OK" response + Given operation "ValidateSecurityMonitoringIntegrationConfig" enabled + And new "ValidateSecurityMonitoringIntegrationConfig" request + And request contains "integration_config_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-cloud-siem + 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"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-siem + 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"}} + When the request is sent + Then the response status is 200 OK diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index faa660d7de0..eb7e7210cea 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -5734,6 +5734,55 @@ "type": "idempotent" } }, + "ListSecurityMonitoringIntegrationConfigs": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "CreateSecurityMonitoringIntegrationConfig": { + "tag": "Security Monitoring", + "undo": { + "operationId": "DeleteSecurityMonitoringIntegrationConfig", + "parameters": [ + { + "name": "integration_config_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "ValidateSecurityMonitoringIntegrationCredentials": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "DeleteSecurityMonitoringIntegrationConfig": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "GetSecurityMonitoringIntegrationConfig": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "UpdateSecurityMonitoringIntegrationConfig": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "ValidateSecurityMonitoringIntegrationConfig": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "ListSecurityFilters": { "tag": "Security Monitoring", "undo": { @@ -5753,6 +5802,12 @@ "type": "unsafe" } }, + "ListSecurityFilterVersions": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "DeleteSecurityFilter": { "tag": "Security Monitoring", "undo": { @@ -5850,6 +5905,18 @@ "type": "idempotent" } }, + "GetEntityContext": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "ListLogFormattingIssues": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "ListSecurityMonitoringRules": { "tag": "Security Monitoring", "undo": { @@ -5935,6 +6002,37 @@ "type": "safe" } }, + "ListSampleLogGenerationSubscriptions": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "CreateSampleLogGenerationSubscription": { + "tag": "Security Monitoring", + "undo": { + "operationId": "DeleteSampleLogGenerationSubscription", + "parameters": [ + { + "name": "content_pack_id", + "source": "data.attributes.content_pack_id" + } + ], + "type": "unsafe" + } + }, + "BulkCreateSampleLogGenerationSubscriptions": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "DeleteSampleLogGenerationSubscription": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "ListSecurityMonitoringSignals": { "tag": "Security Monitoring", "undo": { @@ -5977,6 +6075,12 @@ "type": "idempotent" } }, + "GetSignalEntities": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "EditSecurityMonitoringSignalIncidents": { "tag": "Security Monitoring", "undo": {