diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e1fcef0a81a..422aab5ad80 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -89430,6 +89430,57 @@ components: - NEVER_ACTIVATED - ACTIVATED - DEACTIVATED + SecurityMonitoringContentPackAppSecDetails: + description: Details for an Application Security content pack. + properties: + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackAppSecDetailsType" + required: + - type + type: object + SecurityMonitoringContentPackAppSecDetailsType: + description: Type for Application Security content pack details. + enum: + - appsec + example: appsec + type: string + x-enum-varnames: + - APPSEC + SecurityMonitoringContentPackAuditDetails: + description: Details for an audit trail content pack. + properties: + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackAuditDetailsType" + required: + - type + type: object + SecurityMonitoringContentPackAuditDetailsType: + description: Type for audit trail content pack details. + enum: + - audit + example: audit + type: string + x-enum-varnames: + - AUDIT + SecurityMonitoringContentPackEntityDetails: + description: Details for an entity or identity content pack. + properties: + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackEntityDetailsType" + required: + - type + - cp_activation + type: object + SecurityMonitoringContentPackEntityDetailsType: + description: Type for entity content pack details. + enum: + - entity + example: entity + type: string + x-enum-varnames: + - ENTITY SecurityMonitoringContentPackIntegrationStatus: description: The installation status of the related integration. enum: @@ -89452,16 +89503,14 @@ components: - PARTIALLY_INSTALLED - DETECTED - ERROR - SecurityMonitoringContentPackStateAttributes: - description: Attributes of a content pack state + SecurityMonitoringContentPackLogsDetails: + description: Details for a logs-based content pack. properties: - cloud_siem_index_incorrect: - description: Whether the cloud SIEM index configuration is incorrect (only applies to certain pricing models) - example: false - type: boolean cp_activation: $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" - filters_configured_for_logs: + data_last_seen: + $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" + filters_configured: description: |- Whether filters (Security Filters or Index Query depending on the pricing model) are present and correctly configured to route logs into Cloud SIEM. @@ -89469,21 +89518,59 @@ components: type: boolean integration_installed_status: $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" - logs_last_collected: - $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" logs_seen_from_any_index: - description: Whether logs for this content pack have been seen in any Datadog index within the last 72 hours. + description: Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. example: true type: boolean - state: - $ref: "#/components/schemas/SecurityMonitoringContentPackStatus" + siem_index_incorrect: + description: Whether the Cloud SIEM index configuration is incorrect (only applies to certain pricing models). + example: false + type: boolean + type: + $ref: "#/components/schemas/SecurityFilterFilteredDataType" required: - - state + - type - cp_activation + - data_last_seen + - integration_installed_status + - filters_configured - logs_seen_from_any_index - - logs_last_collected - - cloud_siem_index_incorrect - - filters_configured_for_logs + - siem_index_incorrect + type: object + SecurityMonitoringContentPackOnboardingDetails: + description: |- + Content pack details returned when Cloud SIEM is inactive for the requesting organization. + properties: + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + logs_seen_from_any_index: + description: Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. + example: true + type: boolean + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetailsType" + required: + - type + - logs_seen_from_any_index + type: object + SecurityMonitoringContentPackOnboardingDetailsType: + description: Type for onboarding content pack details. + enum: + - onboarding + example: onboarding + type: string + x-enum-varnames: + - ONBOARDING + SecurityMonitoringContentPackStateAttributes: + description: Attributes of a content pack state. + properties: + details: + $ref: "#/components/schemas/SecurityMonitoringContentPackStateDetails" + status: + $ref: "#/components/schemas/SecurityMonitoringContentPackStatus" + required: + - status + - details type: object SecurityMonitoringContentPackStateData: description: Content pack state data. @@ -89501,13 +89588,42 @@ components: - type - attributes type: object + SecurityMonitoringContentPackStateDetails: + description: |- + Type-specific details for a content pack state. The set of fields present depends + on the content pack's `type`. When Cloud SIEM is inactive for the requesting organization, `onboarding` is returned instead of the content pack's usual type, such as `logs` or `vulnerability`.` + discriminator: + mapping: + appsec: "#/components/schemas/SecurityMonitoringContentPackAppSecDetails" + audit: "#/components/schemas/SecurityMonitoringContentPackAuditDetails" + entity: "#/components/schemas/SecurityMonitoringContentPackEntityDetails" + logs: "#/components/schemas/SecurityMonitoringContentPackLogsDetails" + onboarding: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetails" + threat_intel: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetails" + vulnerability: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetails" + propertyName: type + oneOf: + - $ref: "#/components/schemas/SecurityMonitoringContentPackLogsDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackEntityDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackAuditDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackAppSecDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetails" + - $ref: "#/components/schemas/SecurityMonitoringContentPackOnboardingDetails" SecurityMonitoringContentPackStateMeta: - description: Metadata for content pack states + description: Metadata for content pack states. properties: cloud_siem_index_incorrect: - description: Whether the cloud SIEM index configuration is incorrect at the organization level + description: Whether the Cloud SIEM index configuration is incorrect for the organization. example: false type: boolean + retention_months: + description: |- + The number of months that standard logs are retained for organizations on the standalone_indexed` pricing model. This field is omitted for other pricing models. + example: 15 + format: int32 + maximum: 60 + type: integer sku: $ref: "#/components/schemas/SecurityMonitoringSKU" required: @@ -89545,6 +89661,7 @@ components: - active - warning - broken + - not_configured example: active type: string x-enum-descriptions: @@ -89554,6 +89671,7 @@ components: - Activated; logs received within the last 24 hours. - Activated; integration not installed or logs last seen 24 to 72 hours ago. - Activated; no logs for over 72 hours, filter missing, or Cloud SIEM index incorrectly ordered. + - Activated, but no credentials are configured (entity content packs only). x-enum-varnames: - INSTALL - ACTIVATE @@ -89561,6 +89679,32 @@ components: - ACTIVE - WARNING - BROKEN + - NOT_CONFIGURED + SecurityMonitoringContentPackThreatIntelDetails: + description: Details for a threat intelligence content pack. + properties: + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" + data_last_seen: + $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackThreatIntelDetailsType" + required: + - type + - cp_activation + - data_last_seen + - integration_installed_status + type: object + SecurityMonitoringContentPackThreatIntelDetailsType: + description: Type for threat intelligence content pack details. + enum: + - threat_intel + example: threat_intel + type: string + x-enum-varnames: + - THREAT_INTEL SecurityMonitoringContentPackTimestampBucket: description: Timestamp bucket indicating when logs were last collected. enum: @@ -89583,6 +89727,31 @@ components: - WITHIN_24_TO_72_HOURS - OVER_72H_TO_30D - OVER_30D + SecurityMonitoringContentPackVulnerabilityDetails: + description: Details for a vulnerability content pack. + properties: + cp_activation: + $ref: "#/components/schemas/SecurityMonitoringContentPackActivation" + data_last_seen: + $ref: "#/components/schemas/SecurityMonitoringContentPackTimestampBucket" + integration_installed_status: + $ref: "#/components/schemas/SecurityMonitoringContentPackIntegrationStatus" + type: + $ref: "#/components/schemas/SecurityMonitoringContentPackVulnerabilityDetailsType" + required: + - type + - cp_activation + - data_last_seen + - integration_installed_status + type: object + SecurityMonitoringContentPackVulnerabilityDetailsType: + description: Type for vulnerability content pack details. + enum: + - vulnerability + example: vulnerability + type: string + x-enum-varnames: + - VULNERABILITY SecurityMonitoringCriticalAsset: description: The critical asset's properties. properties: @@ -91954,12 +92123,16 @@ components: - per_gb_analyzed - per_event_in_siem_index_2023 - add_on_2024 + - standalone_indexed + - unknown example: add_on_2024 type: string x-enum-varnames: - PER_GB_ANALYZED - PER_EVENT_IN_SIEM_INDEX_2023 - ADD_ON_2024 + - STANDALONE_INDEXED + - UNKNOWN SecurityMonitoringSchedulingOptions: description: Options for scheduled rules. When this field is present, the rule runs based on the schedule. When absent, it runs real-time on ingested logs. nullable: true @@ -183928,12 +184101,15 @@ paths: value: data: - attributes: - cloud_siem_index_incorrect: false - cp_activation: activated - filters_configured_for_logs: true - logs_last_collected: within_24_hours - logs_seen_from_any_index: true - state: active + details: + cp_activation: activated + data_last_seen: within_24_hours + filters_configured: true + integration_installed_status: installed + logs_seen_from_any_index: true + siem_index_incorrect: false + type: logs + status: active id: aws-cloudtrail type: content_pack_state meta: diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAppSecDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAppSecDetails.java new file mode 100644 index 00000000000..e3e35618e66 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAppSecDetails.java @@ -0,0 +1,154 @@ +/* + * 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; + +/** Details for an Application Security content pack. */ +@JsonPropertyOrder({SecurityMonitoringContentPackAppSecDetails.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackAppSecDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringContentPackAppSecDetailsType type; + + public SecurityMonitoringContentPackAppSecDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackAppSecDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringContentPackAppSecDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackAppSecDetails type( + SecurityMonitoringContentPackAppSecDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type for Application Security content pack details. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackAppSecDetailsType getType() { + return type; + } + + public void setType(SecurityMonitoringContentPackAppSecDetailsType 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 SecurityMonitoringContentPackAppSecDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackAppSecDetails 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 SecurityMonitoringContentPackAppSecDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackAppSecDetails securityMonitoringContentPackAppSecDetails = + (SecurityMonitoringContentPackAppSecDetails) o; + return Objects.equals(this.type, securityMonitoringContentPackAppSecDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackAppSecDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackAppSecDetails {\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/SecurityMonitoringContentPackAppSecDetailsType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAppSecDetailsType.java new file mode 100644 index 00000000000..5226d5f1b8b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAppSecDetailsType.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; + +/** Type for Application Security content pack details. */ +@JsonSerialize( + using = + SecurityMonitoringContentPackAppSecDetailsType + .SecurityMonitoringContentPackAppSecDetailsTypeSerializer.class) +public class SecurityMonitoringContentPackAppSecDetailsType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("appsec")); + + public static final SecurityMonitoringContentPackAppSecDetailsType APPSEC = + new SecurityMonitoringContentPackAppSecDetailsType("appsec"); + + SecurityMonitoringContentPackAppSecDetailsType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringContentPackAppSecDetailsTypeSerializer + extends StdSerializer { + public SecurityMonitoringContentPackAppSecDetailsTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackAppSecDetailsTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackAppSecDetailsType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringContentPackAppSecDetailsType fromValue(String value) { + return new SecurityMonitoringContentPackAppSecDetailsType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAuditDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAuditDetails.java new file mode 100644 index 00000000000..15a8866bff6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAuditDetails.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; + +/** Details for an audit trail content pack. */ +@JsonPropertyOrder({SecurityMonitoringContentPackAuditDetails.JSON_PROPERTY_TYPE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackAuditDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringContentPackAuditDetailsType type; + + public SecurityMonitoringContentPackAuditDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackAuditDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringContentPackAuditDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackAuditDetails type( + SecurityMonitoringContentPackAuditDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type for audit trail content pack details. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackAuditDetailsType getType() { + return type; + } + + public void setType(SecurityMonitoringContentPackAuditDetailsType 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 SecurityMonitoringContentPackAuditDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackAuditDetails 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 SecurityMonitoringContentPackAuditDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackAuditDetails securityMonitoringContentPackAuditDetails = + (SecurityMonitoringContentPackAuditDetails) o; + return Objects.equals(this.type, securityMonitoringContentPackAuditDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackAuditDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackAuditDetails {\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/SecurityMonitoringContentPackAuditDetailsType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAuditDetailsType.java new file mode 100644 index 00000000000..94b9ed2dc14 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackAuditDetailsType.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; + +/** Type for audit trail content pack details. */ +@JsonSerialize( + using = + SecurityMonitoringContentPackAuditDetailsType + .SecurityMonitoringContentPackAuditDetailsTypeSerializer.class) +public class SecurityMonitoringContentPackAuditDetailsType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("audit")); + + public static final SecurityMonitoringContentPackAuditDetailsType AUDIT = + new SecurityMonitoringContentPackAuditDetailsType("audit"); + + SecurityMonitoringContentPackAuditDetailsType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringContentPackAuditDetailsTypeSerializer + extends StdSerializer { + public SecurityMonitoringContentPackAuditDetailsTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackAuditDetailsTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackAuditDetailsType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringContentPackAuditDetailsType fromValue(String value) { + return new SecurityMonitoringContentPackAuditDetailsType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackEntityDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackEntityDetails.java new file mode 100644 index 00000000000..13542a8bfe2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackEntityDetails.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.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Details for an entity or identity content pack. */ +@JsonPropertyOrder({ + SecurityMonitoringContentPackEntityDetails.JSON_PROPERTY_CP_ACTIVATION, + SecurityMonitoringContentPackEntityDetails.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackEntityDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CP_ACTIVATION = "cp_activation"; + private SecurityMonitoringContentPackActivation cpActivation; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringContentPackEntityDetailsType type; + + public SecurityMonitoringContentPackEntityDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackEntityDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_CP_ACTIVATION) + SecurityMonitoringContentPackActivation cpActivation, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringContentPackEntityDetailsType type) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackEntityDetails cpActivation( + SecurityMonitoringContentPackActivation cpActivation) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + return this; + } + + /** + * The activation status of a content pack. + * + * @return cpActivation + */ + @JsonProperty(JSON_PROPERTY_CP_ACTIVATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackActivation getCpActivation() { + return cpActivation; + } + + public void setCpActivation(SecurityMonitoringContentPackActivation cpActivation) { + if (!cpActivation.isValid()) { + this.unparsed = true; + } + this.cpActivation = cpActivation; + } + + public SecurityMonitoringContentPackEntityDetails type( + SecurityMonitoringContentPackEntityDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type for entity content pack details. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackEntityDetailsType getType() { + return type; + } + + public void setType(SecurityMonitoringContentPackEntityDetailsType 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 SecurityMonitoringContentPackEntityDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackEntityDetails 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 SecurityMonitoringContentPackEntityDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackEntityDetails securityMonitoringContentPackEntityDetails = + (SecurityMonitoringContentPackEntityDetails) o; + return Objects.equals( + this.cpActivation, securityMonitoringContentPackEntityDetails.cpActivation) + && Objects.equals(this.type, securityMonitoringContentPackEntityDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackEntityDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(cpActivation, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackEntityDetails {\n"); + sb.append(" cpActivation: ").append(toIndentedString(cpActivation)).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/SecurityMonitoringContentPackEntityDetailsType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackEntityDetailsType.java new file mode 100644 index 00000000000..76be45f2e5e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackEntityDetailsType.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; + +/** Type for entity content pack details. */ +@JsonSerialize( + using = + SecurityMonitoringContentPackEntityDetailsType + .SecurityMonitoringContentPackEntityDetailsTypeSerializer.class) +public class SecurityMonitoringContentPackEntityDetailsType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("entity")); + + public static final SecurityMonitoringContentPackEntityDetailsType ENTITY = + new SecurityMonitoringContentPackEntityDetailsType("entity"); + + SecurityMonitoringContentPackEntityDetailsType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringContentPackEntityDetailsTypeSerializer + extends StdSerializer { + public SecurityMonitoringContentPackEntityDetailsTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackEntityDetailsTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackEntityDetailsType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringContentPackEntityDetailsType fromValue(String value) { + return new SecurityMonitoringContentPackEntityDetailsType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackLogsDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackLogsDetails.java new file mode 100644 index 00000000000..f5d37d9f252 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackLogsDetails.java @@ -0,0 +1,369 @@ +/* + * 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; + +/** Details for a logs-based content pack. */ +@JsonPropertyOrder({ + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_CP_ACTIVATION, + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_DATA_LAST_SEEN, + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_FILTERS_CONFIGURED, + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS, + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX, + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_SIEM_INDEX_INCORRECT, + SecurityMonitoringContentPackLogsDetails.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackLogsDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CP_ACTIVATION = "cp_activation"; + private SecurityMonitoringContentPackActivation cpActivation; + + public static final String JSON_PROPERTY_DATA_LAST_SEEN = "data_last_seen"; + private SecurityMonitoringContentPackTimestampBucket dataLastSeen; + + public static final String JSON_PROPERTY_FILTERS_CONFIGURED = "filters_configured"; + private Boolean filtersConfigured; + + public static final String JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS = + "integration_installed_status"; + private SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus; + + public static final String JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX = "logs_seen_from_any_index"; + private Boolean logsSeenFromAnyIndex; + + public static final String JSON_PROPERTY_SIEM_INDEX_INCORRECT = "siem_index_incorrect"; + private Boolean siemIndexIncorrect; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityFilterFilteredDataType type; + + public SecurityMonitoringContentPackLogsDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackLogsDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_CP_ACTIVATION) + SecurityMonitoringContentPackActivation cpActivation, + @JsonProperty(required = true, value = JSON_PROPERTY_DATA_LAST_SEEN) + SecurityMonitoringContentPackTimestampBucket dataLastSeen, + @JsonProperty(required = true, value = JSON_PROPERTY_FILTERS_CONFIGURED) + Boolean filtersConfigured, + @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus, + @JsonProperty(required = true, value = JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX) + Boolean logsSeenFromAnyIndex, + @JsonProperty(required = true, value = JSON_PROPERTY_SIEM_INDEX_INCORRECT) + Boolean siemIndexIncorrect, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityFilterFilteredDataType type) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + this.dataLastSeen = dataLastSeen; + this.unparsed |= !dataLastSeen.isValid(); + this.filtersConfigured = filtersConfigured; + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; + this.siemIndexIncorrect = siemIndexIncorrect; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackLogsDetails cpActivation( + SecurityMonitoringContentPackActivation cpActivation) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + return this; + } + + /** + * The activation status of a content pack. + * + * @return cpActivation + */ + @JsonProperty(JSON_PROPERTY_CP_ACTIVATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackActivation getCpActivation() { + return cpActivation; + } + + public void setCpActivation(SecurityMonitoringContentPackActivation cpActivation) { + if (!cpActivation.isValid()) { + this.unparsed = true; + } + this.cpActivation = cpActivation; + } + + public SecurityMonitoringContentPackLogsDetails dataLastSeen( + SecurityMonitoringContentPackTimestampBucket dataLastSeen) { + this.dataLastSeen = dataLastSeen; + this.unparsed |= !dataLastSeen.isValid(); + return this; + } + + /** + * Timestamp bucket indicating when logs were last collected. + * + * @return dataLastSeen + */ + @JsonProperty(JSON_PROPERTY_DATA_LAST_SEEN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackTimestampBucket getDataLastSeen() { + return dataLastSeen; + } + + public void setDataLastSeen(SecurityMonitoringContentPackTimestampBucket dataLastSeen) { + if (!dataLastSeen.isValid()) { + this.unparsed = true; + } + this.dataLastSeen = dataLastSeen; + } + + public SecurityMonitoringContentPackLogsDetails filtersConfigured(Boolean filtersConfigured) { + this.filtersConfigured = filtersConfigured; + return this; + } + + /** + * Whether filters (Security Filters or Index Query depending on the pricing model) are present + * and correctly configured to route logs into Cloud SIEM. + * + * @return filtersConfigured + */ + @JsonProperty(JSON_PROPERTY_FILTERS_CONFIGURED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getFiltersConfigured() { + return filtersConfigured; + } + + public void setFiltersConfigured(Boolean filtersConfigured) { + this.filtersConfigured = filtersConfigured; + } + + public SecurityMonitoringContentPackLogsDetails integrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + return this; + } + + /** + * The installation status of the related integration. + * + * @return integrationInstalledStatus + */ + @JsonProperty(JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackIntegrationStatus getIntegrationInstalledStatus() { + return integrationInstalledStatus; + } + + public void setIntegrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + if (!integrationInstalledStatus.isValid()) { + this.unparsed = true; + } + this.integrationInstalledStatus = integrationInstalledStatus; + } + + public SecurityMonitoringContentPackLogsDetails logsSeenFromAnyIndex( + Boolean logsSeenFromAnyIndex) { + this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; + return this; + } + + /** + * Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. + * + * @return logsSeenFromAnyIndex + */ + @JsonProperty(JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getLogsSeenFromAnyIndex() { + return logsSeenFromAnyIndex; + } + + public void setLogsSeenFromAnyIndex(Boolean logsSeenFromAnyIndex) { + this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; + } + + public SecurityMonitoringContentPackLogsDetails siemIndexIncorrect(Boolean siemIndexIncorrect) { + this.siemIndexIncorrect = siemIndexIncorrect; + return this; + } + + /** + * Whether the Cloud SIEM index configuration is incorrect (only applies to certain pricing + * models). + * + * @return siemIndexIncorrect + */ + @JsonProperty(JSON_PROPERTY_SIEM_INDEX_INCORRECT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getSiemIndexIncorrect() { + return siemIndexIncorrect; + } + + public void setSiemIndexIncorrect(Boolean siemIndexIncorrect) { + this.siemIndexIncorrect = siemIndexIncorrect; + } + + public SecurityMonitoringContentPackLogsDetails type(SecurityFilterFilteredDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The filtered data type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityFilterFilteredDataType getType() { + return type; + } + + public void setType(SecurityFilterFilteredDataType 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 SecurityMonitoringContentPackLogsDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackLogsDetails 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 SecurityMonitoringContentPackLogsDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackLogsDetails securityMonitoringContentPackLogsDetails = + (SecurityMonitoringContentPackLogsDetails) o; + return Objects.equals(this.cpActivation, securityMonitoringContentPackLogsDetails.cpActivation) + && Objects.equals(this.dataLastSeen, securityMonitoringContentPackLogsDetails.dataLastSeen) + && Objects.equals( + this.filtersConfigured, securityMonitoringContentPackLogsDetails.filtersConfigured) + && Objects.equals( + this.integrationInstalledStatus, + securityMonitoringContentPackLogsDetails.integrationInstalledStatus) + && Objects.equals( + this.logsSeenFromAnyIndex, + securityMonitoringContentPackLogsDetails.logsSeenFromAnyIndex) + && Objects.equals( + this.siemIndexIncorrect, securityMonitoringContentPackLogsDetails.siemIndexIncorrect) + && Objects.equals(this.type, securityMonitoringContentPackLogsDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackLogsDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + cpActivation, + dataLastSeen, + filtersConfigured, + integrationInstalledStatus, + logsSeenFromAnyIndex, + siemIndexIncorrect, + type, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackLogsDetails {\n"); + sb.append(" cpActivation: ").append(toIndentedString(cpActivation)).append("\n"); + sb.append(" dataLastSeen: ").append(toIndentedString(dataLastSeen)).append("\n"); + sb.append(" filtersConfigured: ").append(toIndentedString(filtersConfigured)).append("\n"); + sb.append(" integrationInstalledStatus: ") + .append(toIndentedString(integrationInstalledStatus)) + .append("\n"); + sb.append(" logsSeenFromAnyIndex: ") + .append(toIndentedString(logsSeenFromAnyIndex)) + .append("\n"); + sb.append(" siemIndexIncorrect: ").append(toIndentedString(siemIndexIncorrect)).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/SecurityMonitoringContentPackOnboardingDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackOnboardingDetails.java new file mode 100644 index 00000000000..c2ebdc79079 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackOnboardingDetails.java @@ -0,0 +1,229 @@ +/* + * 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; + +/** Content pack details returned when Cloud SIEM is inactive for the requesting organization. */ +@JsonPropertyOrder({ + SecurityMonitoringContentPackOnboardingDetails.JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS, + SecurityMonitoringContentPackOnboardingDetails.JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX, + SecurityMonitoringContentPackOnboardingDetails.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackOnboardingDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS = + "integration_installed_status"; + private SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus; + + public static final String JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX = "logs_seen_from_any_index"; + private Boolean logsSeenFromAnyIndex; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringContentPackOnboardingDetailsType type; + + public SecurityMonitoringContentPackOnboardingDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackOnboardingDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX) + Boolean logsSeenFromAnyIndex, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringContentPackOnboardingDetailsType type) { + this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackOnboardingDetails integrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + return this; + } + + /** + * The installation status of the related integration. + * + * @return integrationInstalledStatus + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public SecurityMonitoringContentPackIntegrationStatus getIntegrationInstalledStatus() { + return integrationInstalledStatus; + } + + public void setIntegrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + if (!integrationInstalledStatus.isValid()) { + this.unparsed = true; + } + this.integrationInstalledStatus = integrationInstalledStatus; + } + + public SecurityMonitoringContentPackOnboardingDetails logsSeenFromAnyIndex( + Boolean logsSeenFromAnyIndex) { + this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; + return this; + } + + /** + * Whether logs for this content pack have been seen in any Datadog index in the last 72 hours. + * + * @return logsSeenFromAnyIndex + */ + @JsonProperty(JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getLogsSeenFromAnyIndex() { + return logsSeenFromAnyIndex; + } + + public void setLogsSeenFromAnyIndex(Boolean logsSeenFromAnyIndex) { + this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; + } + + public SecurityMonitoringContentPackOnboardingDetails type( + SecurityMonitoringContentPackOnboardingDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type for onboarding content pack details. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackOnboardingDetailsType getType() { + return type; + } + + public void setType(SecurityMonitoringContentPackOnboardingDetailsType 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 SecurityMonitoringContentPackOnboardingDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackOnboardingDetails 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 SecurityMonitoringContentPackOnboardingDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackOnboardingDetails securityMonitoringContentPackOnboardingDetails = + (SecurityMonitoringContentPackOnboardingDetails) o; + return Objects.equals( + this.integrationInstalledStatus, + securityMonitoringContentPackOnboardingDetails.integrationInstalledStatus) + && Objects.equals( + this.logsSeenFromAnyIndex, + securityMonitoringContentPackOnboardingDetails.logsSeenFromAnyIndex) + && Objects.equals(this.type, securityMonitoringContentPackOnboardingDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackOnboardingDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + integrationInstalledStatus, logsSeenFromAnyIndex, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackOnboardingDetails {\n"); + sb.append(" integrationInstalledStatus: ") + .append(toIndentedString(integrationInstalledStatus)) + .append("\n"); + sb.append(" logsSeenFromAnyIndex: ") + .append(toIndentedString(logsSeenFromAnyIndex)) + .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/SecurityMonitoringContentPackOnboardingDetailsType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackOnboardingDetailsType.java new file mode 100644 index 00000000000..d336d32a9f7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackOnboardingDetailsType.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; + +/** Type for onboarding content pack details. */ +@JsonSerialize( + using = + SecurityMonitoringContentPackOnboardingDetailsType + .SecurityMonitoringContentPackOnboardingDetailsTypeSerializer.class) +public class SecurityMonitoringContentPackOnboardingDetailsType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("onboarding")); + + public static final SecurityMonitoringContentPackOnboardingDetailsType ONBOARDING = + new SecurityMonitoringContentPackOnboardingDetailsType("onboarding"); + + SecurityMonitoringContentPackOnboardingDetailsType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringContentPackOnboardingDetailsTypeSerializer + extends StdSerializer { + public SecurityMonitoringContentPackOnboardingDetailsTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackOnboardingDetailsTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackOnboardingDetailsType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringContentPackOnboardingDetailsType fromValue(String value) { + return new SecurityMonitoringContentPackOnboardingDetailsType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateAttributes.java index 0754dc5cf31..1d263847985 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateAttributes.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateAttributes.java @@ -17,237 +17,86 @@ import java.util.Map; import java.util.Objects; -/** Attributes of a content pack state */ +/** Attributes of a content pack state. */ @JsonPropertyOrder({ - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_CLOUD_SIEM_INDEX_INCORRECT, - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_CP_ACTIVATION, - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_FILTERS_CONFIGURED_FOR_LOGS, - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS, - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_LOGS_LAST_COLLECTED, - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX, - SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_STATE + SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_DETAILS, + SecurityMonitoringContentPackStateAttributes.JSON_PROPERTY_STATUS }) @jakarta.annotation.Generated( value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") public class SecurityMonitoringContentPackStateAttributes { @JsonIgnore public boolean unparsed = false; - public static final String JSON_PROPERTY_CLOUD_SIEM_INDEX_INCORRECT = - "cloud_siem_index_incorrect"; - private Boolean cloudSiemIndexIncorrect; + public static final String JSON_PROPERTY_DETAILS = "details"; + private SecurityMonitoringContentPackStateDetails details; - public static final String JSON_PROPERTY_CP_ACTIVATION = "cp_activation"; - private SecurityMonitoringContentPackActivation cpActivation; - - public static final String JSON_PROPERTY_FILTERS_CONFIGURED_FOR_LOGS = - "filters_configured_for_logs"; - private Boolean filtersConfiguredForLogs; - - public static final String JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS = - "integration_installed_status"; - private SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus; - - public static final String JSON_PROPERTY_LOGS_LAST_COLLECTED = "logs_last_collected"; - private SecurityMonitoringContentPackTimestampBucket logsLastCollected; - - public static final String JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX = "logs_seen_from_any_index"; - private Boolean logsSeenFromAnyIndex; - - public static final String JSON_PROPERTY_STATE = "state"; - private SecurityMonitoringContentPackStatus state; + public static final String JSON_PROPERTY_STATUS = "status"; + private SecurityMonitoringContentPackStatus status; public SecurityMonitoringContentPackStateAttributes() {} @JsonCreator public SecurityMonitoringContentPackStateAttributes( - @JsonProperty(required = true, value = JSON_PROPERTY_CLOUD_SIEM_INDEX_INCORRECT) - Boolean cloudSiemIndexIncorrect, - @JsonProperty(required = true, value = JSON_PROPERTY_CP_ACTIVATION) - SecurityMonitoringContentPackActivation cpActivation, - @JsonProperty(required = true, value = JSON_PROPERTY_FILTERS_CONFIGURED_FOR_LOGS) - Boolean filtersConfiguredForLogs, - @JsonProperty(required = true, value = JSON_PROPERTY_LOGS_LAST_COLLECTED) - SecurityMonitoringContentPackTimestampBucket logsLastCollected, - @JsonProperty(required = true, value = JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX) - Boolean logsSeenFromAnyIndex, - @JsonProperty(required = true, value = JSON_PROPERTY_STATE) - SecurityMonitoringContentPackStatus state) { - this.cloudSiemIndexIncorrect = cloudSiemIndexIncorrect; - this.cpActivation = cpActivation; - this.unparsed |= !cpActivation.isValid(); - this.filtersConfiguredForLogs = filtersConfiguredForLogs; - this.logsLastCollected = logsLastCollected; - this.unparsed |= !logsLastCollected.isValid(); - this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; - this.state = state; - this.unparsed |= !state.isValid(); - } - - public SecurityMonitoringContentPackStateAttributes cloudSiemIndexIncorrect( - Boolean cloudSiemIndexIncorrect) { - this.cloudSiemIndexIncorrect = cloudSiemIndexIncorrect; + @JsonProperty(required = true, value = JSON_PROPERTY_DETAILS) + SecurityMonitoringContentPackStateDetails details, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) + SecurityMonitoringContentPackStatus status) { + this.details = details; + this.unparsed |= details.unparsed; + this.status = status; + this.unparsed |= !status.isValid(); + } + + public SecurityMonitoringContentPackStateAttributes details( + SecurityMonitoringContentPackStateDetails details) { + this.details = details; + this.unparsed |= details.unparsed; return this; } /** - * Whether the cloud SIEM index configuration is incorrect (only applies to certain pricing - * models) + * Type-specific details for a content pack state. The set of fields present depends on the + * content pack's type. When Cloud SIEM is inactive for the requesting organization, + * onboarding is returned instead of the content pack's usual type, such as + * logs or vulnerability.` * - * @return cloudSiemIndexIncorrect + * @return details */ - @JsonProperty(JSON_PROPERTY_CLOUD_SIEM_INDEX_INCORRECT) + @JsonProperty(JSON_PROPERTY_DETAILS) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getCloudSiemIndexIncorrect() { - return cloudSiemIndexIncorrect; + public SecurityMonitoringContentPackStateDetails getDetails() { + return details; } - public void setCloudSiemIndexIncorrect(Boolean cloudSiemIndexIncorrect) { - this.cloudSiemIndexIncorrect = cloudSiemIndexIncorrect; - } - - public SecurityMonitoringContentPackStateAttributes cpActivation( - SecurityMonitoringContentPackActivation cpActivation) { - this.cpActivation = cpActivation; - this.unparsed |= !cpActivation.isValid(); - return this; - } - - /** - * The activation status of a content pack. - * - * @return cpActivation - */ - @JsonProperty(JSON_PROPERTY_CP_ACTIVATION) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public SecurityMonitoringContentPackActivation getCpActivation() { - return cpActivation; - } - - public void setCpActivation(SecurityMonitoringContentPackActivation cpActivation) { - if (!cpActivation.isValid()) { - this.unparsed = true; + public void setDetails(SecurityMonitoringContentPackStateDetails details) { + this.details = details; + if (details != null) { + this.unparsed |= details.unparsed; } - this.cpActivation = cpActivation; } - public SecurityMonitoringContentPackStateAttributes filtersConfiguredForLogs( - Boolean filtersConfiguredForLogs) { - this.filtersConfiguredForLogs = filtersConfiguredForLogs; - return this; - } - - /** - * Whether filters (Security Filters or Index Query depending on the pricing model) are present - * and correctly configured to route logs into Cloud SIEM. - * - * @return filtersConfiguredForLogs - */ - @JsonProperty(JSON_PROPERTY_FILTERS_CONFIGURED_FOR_LOGS) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getFiltersConfiguredForLogs() { - return filtersConfiguredForLogs; - } - - public void setFiltersConfiguredForLogs(Boolean filtersConfiguredForLogs) { - this.filtersConfiguredForLogs = filtersConfiguredForLogs; - } - - public SecurityMonitoringContentPackStateAttributes integrationInstalledStatus( - SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { - this.integrationInstalledStatus = integrationInstalledStatus; - this.unparsed |= !integrationInstalledStatus.isValid(); - return this; - } - - /** - * The installation status of the related integration. - * - * @return integrationInstalledStatus - */ - @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) - @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) - public SecurityMonitoringContentPackIntegrationStatus getIntegrationInstalledStatus() { - return integrationInstalledStatus; - } - - public void setIntegrationInstalledStatus( - SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { - if (!integrationInstalledStatus.isValid()) { - this.unparsed = true; - } - this.integrationInstalledStatus = integrationInstalledStatus; - } - - public SecurityMonitoringContentPackStateAttributes logsLastCollected( - SecurityMonitoringContentPackTimestampBucket logsLastCollected) { - this.logsLastCollected = logsLastCollected; - this.unparsed |= !logsLastCollected.isValid(); - return this; - } - - /** - * Timestamp bucket indicating when logs were last collected. - * - * @return logsLastCollected - */ - @JsonProperty(JSON_PROPERTY_LOGS_LAST_COLLECTED) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public SecurityMonitoringContentPackTimestampBucket getLogsLastCollected() { - return logsLastCollected; - } - - public void setLogsLastCollected(SecurityMonitoringContentPackTimestampBucket logsLastCollected) { - if (!logsLastCollected.isValid()) { - this.unparsed = true; - } - this.logsLastCollected = logsLastCollected; - } - - public SecurityMonitoringContentPackStateAttributes logsSeenFromAnyIndex( - Boolean logsSeenFromAnyIndex) { - this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; - return this; - } - - /** - * Whether logs for this content pack have been seen in any Datadog index within the last 72 - * hours. - * - * @return logsSeenFromAnyIndex - */ - @JsonProperty(JSON_PROPERTY_LOGS_SEEN_FROM_ANY_INDEX) - @JsonInclude(value = JsonInclude.Include.ALWAYS) - public Boolean getLogsSeenFromAnyIndex() { - return logsSeenFromAnyIndex; - } - - public void setLogsSeenFromAnyIndex(Boolean logsSeenFromAnyIndex) { - this.logsSeenFromAnyIndex = logsSeenFromAnyIndex; - } - - public SecurityMonitoringContentPackStateAttributes state( - SecurityMonitoringContentPackStatus state) { - this.state = state; - this.unparsed |= !state.isValid(); + public SecurityMonitoringContentPackStateAttributes status( + SecurityMonitoringContentPackStatus status) { + this.status = status; + this.unparsed |= !status.isValid(); return this; } /** * The current operational status of a content pack. * - * @return state + * @return status */ - @JsonProperty(JSON_PROPERTY_STATE) + @JsonProperty(JSON_PROPERTY_STATUS) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public SecurityMonitoringContentPackStatus getState() { - return state; + public SecurityMonitoringContentPackStatus getStatus() { + return status; } - public void setState(SecurityMonitoringContentPackStatus state) { - if (!state.isValid()) { + public void setStatus(SecurityMonitoringContentPackStatus status) { + if (!status.isValid()) { this.unparsed = true; } - this.state = state; + this.status = status; } /** @@ -308,23 +157,8 @@ public boolean equals(Object o) { } SecurityMonitoringContentPackStateAttributes securityMonitoringContentPackStateAttributes = (SecurityMonitoringContentPackStateAttributes) o; - return Objects.equals( - this.cloudSiemIndexIncorrect, - securityMonitoringContentPackStateAttributes.cloudSiemIndexIncorrect) - && Objects.equals( - this.cpActivation, securityMonitoringContentPackStateAttributes.cpActivation) - && Objects.equals( - this.filtersConfiguredForLogs, - securityMonitoringContentPackStateAttributes.filtersConfiguredForLogs) - && Objects.equals( - this.integrationInstalledStatus, - securityMonitoringContentPackStateAttributes.integrationInstalledStatus) - && Objects.equals( - this.logsLastCollected, securityMonitoringContentPackStateAttributes.logsLastCollected) - && Objects.equals( - this.logsSeenFromAnyIndex, - securityMonitoringContentPackStateAttributes.logsSeenFromAnyIndex) - && Objects.equals(this.state, securityMonitoringContentPackStateAttributes.state) + return Objects.equals(this.details, securityMonitoringContentPackStateAttributes.details) + && Objects.equals(this.status, securityMonitoringContentPackStateAttributes.status) && Objects.equals( this.additionalProperties, securityMonitoringContentPackStateAttributes.additionalProperties); @@ -332,36 +166,15 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash( - cloudSiemIndexIncorrect, - cpActivation, - filtersConfiguredForLogs, - integrationInstalledStatus, - logsLastCollected, - logsSeenFromAnyIndex, - state, - additionalProperties); + return Objects.hash(details, status, additionalProperties); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SecurityMonitoringContentPackStateAttributes {\n"); - sb.append(" cloudSiemIndexIncorrect: ") - .append(toIndentedString(cloudSiemIndexIncorrect)) - .append("\n"); - sb.append(" cpActivation: ").append(toIndentedString(cpActivation)).append("\n"); - sb.append(" filtersConfiguredForLogs: ") - .append(toIndentedString(filtersConfiguredForLogs)) - .append("\n"); - sb.append(" integrationInstalledStatus: ") - .append(toIndentedString(integrationInstalledStatus)) - .append("\n"); - sb.append(" logsLastCollected: ").append(toIndentedString(logsLastCollected)).append("\n"); - sb.append(" logsSeenFromAnyIndex: ") - .append(toIndentedString(logsSeenFromAnyIndex)) - .append("\n"); - sb.append(" state: ").append(toIndentedString(state)).append("\n"); + sb.append(" details: ").append(toIndentedString(details)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) .append("\n"); diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateData.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateData.java index a56ad4ba2e0..aded4492e80 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateData.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateData.java @@ -60,7 +60,7 @@ public SecurityMonitoringContentPackStateData attributes( } /** - * Attributes of a content pack state + * Attributes of a content pack state. * * @return attributes */ diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateDetails.java new file mode 100644 index 00000000000..9bfb9034e2c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateDetails.java @@ -0,0 +1,732 @@ +/* + * 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.AbstractOpenApiSchema; +import com.datadog.api.client.JSON; +import com.datadog.api.client.UnparsedObject; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import jakarta.ws.rs.core.GenericType; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +@JsonDeserialize( + using = + SecurityMonitoringContentPackStateDetails + .SecurityMonitoringContentPackStateDetailsDeserializer.class) +@JsonSerialize( + using = + SecurityMonitoringContentPackStateDetails + .SecurityMonitoringContentPackStateDetailsSerializer.class) +public class SecurityMonitoringContentPackStateDetails extends AbstractOpenApiSchema { + private static final Logger log = + Logger.getLogger(SecurityMonitoringContentPackStateDetails.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class SecurityMonitoringContentPackStateDetailsSerializer + extends StdSerializer { + public SecurityMonitoringContentPackStateDetailsSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackStateDetailsSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackStateDetails value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class SecurityMonitoringContentPackStateDetailsDeserializer + extends StdDeserializer { + public SecurityMonitoringContentPackStateDetailsDeserializer() { + this(SecurityMonitoringContentPackStateDetails.class); + } + + public SecurityMonitoringContentPackStateDetailsDeserializer(Class vc) { + super(vc); + } + + @Override + public SecurityMonitoringContentPackStateDetails deserialize( + JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { + JsonNode tree = jp.readValueAsTree(); + Object deserialized = null; + Object tmp = null; + boolean typeCoercion = ctxt.isEnabled(MapperFeature.ALLOW_COERCION_OF_SCALARS); + int match = 0; + JsonToken token = tree.traverse(jp.getCodec()).nextToken(); + // deserialize SecurityMonitoringContentPackLogsDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackLogsDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(Long.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(Float.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(Double.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackLogsDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackLogsDetails.class.equals(Float.class) + || SecurityMonitoringContentPackLogsDetails.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackLogsDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackLogsDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackLogsDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackLogsDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, "Input data matches schema 'SecurityMonitoringContentPackLogsDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackLogsDetails'", + e); + } + + // deserialize SecurityMonitoringContentPackThreatIntelDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackThreatIntelDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals(Long.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals(Float.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals(Double.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackThreatIntelDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackThreatIntelDetails.class.equals(Float.class) + || SecurityMonitoringContentPackThreatIntelDetails.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackThreatIntelDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackThreatIntelDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackThreatIntelDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackThreatIntelDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'SecurityMonitoringContentPackThreatIntelDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackThreatIntelDetails'", + e); + } + + // deserialize SecurityMonitoringContentPackEntityDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackEntityDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(Long.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(Float.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(Double.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackEntityDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackEntityDetails.class.equals(Float.class) + || SecurityMonitoringContentPackEntityDetails.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackEntityDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackEntityDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackEntityDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackEntityDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'SecurityMonitoringContentPackEntityDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackEntityDetails'", + e); + } + + // deserialize SecurityMonitoringContentPackAuditDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackAuditDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(Long.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(Float.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(Double.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackAuditDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackAuditDetails.class.equals(Float.class) + || SecurityMonitoringContentPackAuditDetails.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackAuditDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackAuditDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackAuditDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackAuditDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, "Input data matches schema 'SecurityMonitoringContentPackAuditDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackAuditDetails'", + e); + } + + // deserialize SecurityMonitoringContentPackAppSecDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackAppSecDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(Long.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(Float.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(Double.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackAppSecDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackAppSecDetails.class.equals(Float.class) + || SecurityMonitoringContentPackAppSecDetails.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackAppSecDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackAppSecDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackAppSecDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackAppSecDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'SecurityMonitoringContentPackAppSecDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackAppSecDetails'", + e); + } + + // deserialize SecurityMonitoringContentPackVulnerabilityDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Long.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Float.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Double.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals( + Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Float.class) + || SecurityMonitoringContentPackVulnerabilityDetails.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackVulnerabilityDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackVulnerabilityDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackVulnerabilityDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackVulnerabilityDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'SecurityMonitoringContentPackVulnerabilityDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackVulnerabilityDetails'", + e); + } + + // deserialize SecurityMonitoringContentPackOnboardingDetails + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SecurityMonitoringContentPackOnboardingDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals(Long.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals(Float.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals(Double.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals(Boolean.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SecurityMonitoringContentPackOnboardingDetails.class.equals(Integer.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SecurityMonitoringContentPackOnboardingDetails.class.equals(Float.class) + || SecurityMonitoringContentPackOnboardingDetails.class.equals( + Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SecurityMonitoringContentPackOnboardingDetails.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SecurityMonitoringContentPackOnboardingDetails.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = + tree.traverse(jp.getCodec()) + .readValueAs(SecurityMonitoringContentPackOnboardingDetails.class); + // TODO: there is no validation against JSON schema constraints + // (min, max, enum, pattern...), this does not perform a strict JSON + // validation, which means the 'match' count may be higher than it should be. + if (!((SecurityMonitoringContentPackOnboardingDetails) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log( + Level.FINER, + "Input data matches schema 'SecurityMonitoringContentPackOnboardingDetails'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, + "Input data does not match schema 'SecurityMonitoringContentPackOnboardingDetails'", + e); + } + + SecurityMonitoringContentPackStateDetails ret = + new SecurityMonitoringContentPackStateDetails(); + if (match == 1) { + ret.setActualInstance(deserialized); + } else { + Map res = + new ObjectMapper() + .readValue( + tree.traverse(jp.getCodec()).readValueAsTree().toString(), + new TypeReference>() {}); + ret.setActualInstance(new UnparsedObject(res)); + } + return ret; + } + + /** Handle deserialization of the 'null' value. */ + @Override + public SecurityMonitoringContentPackStateDetails getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException( + ctxt.getParser(), "SecurityMonitoringContentPackStateDetails cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public SecurityMonitoringContentPackStateDetails() { + super("oneOf", Boolean.FALSE); + } + + public SecurityMonitoringContentPackStateDetails(SecurityMonitoringContentPackLogsDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SecurityMonitoringContentPackStateDetails( + SecurityMonitoringContentPackThreatIntelDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SecurityMonitoringContentPackStateDetails(SecurityMonitoringContentPackEntityDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SecurityMonitoringContentPackStateDetails(SecurityMonitoringContentPackAuditDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SecurityMonitoringContentPackStateDetails(SecurityMonitoringContentPackAppSecDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SecurityMonitoringContentPackStateDetails( + SecurityMonitoringContentPackVulnerabilityDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SecurityMonitoringContentPackStateDetails( + SecurityMonitoringContentPackOnboardingDetails o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put( + "SecurityMonitoringContentPackLogsDetails", + new GenericType() {}); + schemas.put( + "SecurityMonitoringContentPackThreatIntelDetails", + new GenericType() {}); + schemas.put( + "SecurityMonitoringContentPackEntityDetails", + new GenericType() {}); + schemas.put( + "SecurityMonitoringContentPackAuditDetails", + new GenericType() {}); + schemas.put( + "SecurityMonitoringContentPackAppSecDetails", + new GenericType() {}); + schemas.put( + "SecurityMonitoringContentPackVulnerabilityDetails", + new GenericType() {}); + schemas.put( + "SecurityMonitoringContentPackOnboardingDetails", + new GenericType() {}); + JSON.registerDescendants( + SecurityMonitoringContentPackStateDetails.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return SecurityMonitoringContentPackStateDetails.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: SecurityMonitoringContentPackLogsDetails, + * SecurityMonitoringContentPackThreatIntelDetails, SecurityMonitoringContentPackEntityDetails, + * SecurityMonitoringContentPackAuditDetails, SecurityMonitoringContentPackAppSecDetails, + * SecurityMonitoringContentPackVulnerabilityDetails, + * SecurityMonitoringContentPackOnboardingDetails + * + *

It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a + * composed schema (allOf, anyOf, oneOf). + */ + @Override + public void setActualInstance(Object instance) { + if (JSON.isInstanceOf( + SecurityMonitoringContentPackLogsDetails.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SecurityMonitoringContentPackThreatIntelDetails.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SecurityMonitoringContentPackEntityDetails.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SecurityMonitoringContentPackAuditDetails.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SecurityMonitoringContentPackAppSecDetails.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SecurityMonitoringContentPackVulnerabilityDetails.class, + instance, + new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SecurityMonitoringContentPackOnboardingDetails.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + + if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + throw new RuntimeException( + "Invalid instance type. Must be SecurityMonitoringContentPackLogsDetails," + + " SecurityMonitoringContentPackThreatIntelDetails," + + " SecurityMonitoringContentPackEntityDetails," + + " SecurityMonitoringContentPackAuditDetails," + + " SecurityMonitoringContentPackAppSecDetails," + + " SecurityMonitoringContentPackVulnerabilityDetails," + + " SecurityMonitoringContentPackOnboardingDetails"); + } + + /** + * Get the actual instance, which can be the following: SecurityMonitoringContentPackLogsDetails, + * SecurityMonitoringContentPackThreatIntelDetails, SecurityMonitoringContentPackEntityDetails, + * SecurityMonitoringContentPackAuditDetails, SecurityMonitoringContentPackAppSecDetails, + * SecurityMonitoringContentPackVulnerabilityDetails, + * SecurityMonitoringContentPackOnboardingDetails + * + * @return The actual instance (SecurityMonitoringContentPackLogsDetails, + * SecurityMonitoringContentPackThreatIntelDetails, + * SecurityMonitoringContentPackEntityDetails, SecurityMonitoringContentPackAuditDetails, + * SecurityMonitoringContentPackAppSecDetails, + * SecurityMonitoringContentPackVulnerabilityDetails, + * SecurityMonitoringContentPackOnboardingDetails) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackLogsDetails`. If the actual instance + * is not `SecurityMonitoringContentPackLogsDetails`, the ClassCastException will be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackLogsDetails` + * @throws ClassCastException if the instance is not `SecurityMonitoringContentPackLogsDetails` + */ + public SecurityMonitoringContentPackLogsDetails getSecurityMonitoringContentPackLogsDetails() + throws ClassCastException { + return (SecurityMonitoringContentPackLogsDetails) super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackThreatIntelDetails`. If the actual + * instance is not `SecurityMonitoringContentPackThreatIntelDetails`, the ClassCastException will + * be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackThreatIntelDetails` + * @throws ClassCastException if the instance is not + * `SecurityMonitoringContentPackThreatIntelDetails` + */ + public SecurityMonitoringContentPackThreatIntelDetails + getSecurityMonitoringContentPackThreatIntelDetails() throws ClassCastException { + return (SecurityMonitoringContentPackThreatIntelDetails) super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackEntityDetails`. If the actual instance + * is not `SecurityMonitoringContentPackEntityDetails`, the ClassCastException will be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackEntityDetails` + * @throws ClassCastException if the instance is not `SecurityMonitoringContentPackEntityDetails` + */ + public SecurityMonitoringContentPackEntityDetails getSecurityMonitoringContentPackEntityDetails() + throws ClassCastException { + return (SecurityMonitoringContentPackEntityDetails) super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackAuditDetails`. If the actual instance + * is not `SecurityMonitoringContentPackAuditDetails`, the ClassCastException will be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackAuditDetails` + * @throws ClassCastException if the instance is not `SecurityMonitoringContentPackAuditDetails` + */ + public SecurityMonitoringContentPackAuditDetails getSecurityMonitoringContentPackAuditDetails() + throws ClassCastException { + return (SecurityMonitoringContentPackAuditDetails) super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackAppSecDetails`. If the actual instance + * is not `SecurityMonitoringContentPackAppSecDetails`, the ClassCastException will be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackAppSecDetails` + * @throws ClassCastException if the instance is not `SecurityMonitoringContentPackAppSecDetails` + */ + public SecurityMonitoringContentPackAppSecDetails getSecurityMonitoringContentPackAppSecDetails() + throws ClassCastException { + return (SecurityMonitoringContentPackAppSecDetails) super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackVulnerabilityDetails`. If the actual + * instance is not `SecurityMonitoringContentPackVulnerabilityDetails`, the ClassCastException + * will be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackVulnerabilityDetails` + * @throws ClassCastException if the instance is not + * `SecurityMonitoringContentPackVulnerabilityDetails` + */ + public SecurityMonitoringContentPackVulnerabilityDetails + getSecurityMonitoringContentPackVulnerabilityDetails() throws ClassCastException { + return (SecurityMonitoringContentPackVulnerabilityDetails) super.getActualInstance(); + } + + /** + * Get the actual instance of `SecurityMonitoringContentPackOnboardingDetails`. If the actual + * instance is not `SecurityMonitoringContentPackOnboardingDetails`, the ClassCastException will + * be thrown. + * + * @return The actual instance of `SecurityMonitoringContentPackOnboardingDetails` + * @throws ClassCastException if the instance is not + * `SecurityMonitoringContentPackOnboardingDetails` + */ + public SecurityMonitoringContentPackOnboardingDetails + getSecurityMonitoringContentPackOnboardingDetails() throws ClassCastException { + return (SecurityMonitoringContentPackOnboardingDetails) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateMeta.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateMeta.java index 4cd929eb0ae..ae5302ca701 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateMeta.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStateMeta.java @@ -17,9 +17,10 @@ import java.util.Map; import java.util.Objects; -/** Metadata for content pack states */ +/** Metadata for content pack states. */ @JsonPropertyOrder({ SecurityMonitoringContentPackStateMeta.JSON_PROPERTY_CLOUD_SIEM_INDEX_INCORRECT, + SecurityMonitoringContentPackStateMeta.JSON_PROPERTY_RETENTION_MONTHS, SecurityMonitoringContentPackStateMeta.JSON_PROPERTY_SKU }) @jakarta.annotation.Generated( @@ -30,6 +31,9 @@ public class SecurityMonitoringContentPackStateMeta { "cloud_siem_index_incorrect"; private Boolean cloudSiemIndexIncorrect; + public static final String JSON_PROPERTY_RETENTION_MONTHS = "retention_months"; + private Integer retentionMonths; + public static final String JSON_PROPERTY_SKU = "sku"; private SecurityMonitoringSKU sku; @@ -52,7 +56,7 @@ public SecurityMonitoringContentPackStateMeta cloudSiemIndexIncorrect( } /** - * Whether the cloud SIEM index configuration is incorrect at the organization level + * Whether the Cloud SIEM index configuration is incorrect for the organization. * * @return cloudSiemIndexIncorrect */ @@ -66,6 +70,28 @@ public void setCloudSiemIndexIncorrect(Boolean cloudSiemIndexIncorrect) { this.cloudSiemIndexIncorrect = cloudSiemIndexIncorrect; } + public SecurityMonitoringContentPackStateMeta retentionMonths(Integer retentionMonths) { + this.retentionMonths = retentionMonths; + return this; + } + + /** + * The number of months that standard logs are retained for organizations on the + * standalone_indexed` pricing model. This field is omitted for other pricing models. maximum: 60 + * + * @return retentionMonths + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_RETENTION_MONTHS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Integer getRetentionMonths() { + return retentionMonths; + } + + public void setRetentionMonths(Integer retentionMonths) { + this.retentionMonths = retentionMonths; + } + public SecurityMonitoringContentPackStateMeta sku(SecurityMonitoringSKU sku) { this.sku = sku; this.unparsed |= !sku.isValid(); @@ -150,6 +176,8 @@ public boolean equals(Object o) { return Objects.equals( this.cloudSiemIndexIncorrect, securityMonitoringContentPackStateMeta.cloudSiemIndexIncorrect) + && Objects.equals( + this.retentionMonths, securityMonitoringContentPackStateMeta.retentionMonths) && Objects.equals(this.sku, securityMonitoringContentPackStateMeta.sku) && Objects.equals( this.additionalProperties, securityMonitoringContentPackStateMeta.additionalProperties); @@ -157,7 +185,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(cloudSiemIndexIncorrect, sku, additionalProperties); + return Objects.hash(cloudSiemIndexIncorrect, retentionMonths, sku, additionalProperties); } @Override @@ -167,6 +195,7 @@ public String toString() { sb.append(" cloudSiemIndexIncorrect: ") .append(toIndentedString(cloudSiemIndexIncorrect)) .append("\n"); + sb.append(" retentionMonths: ").append(toIndentedString(retentionMonths)).append("\n"); sb.append(" sku: ").append(toIndentedString(sku)).append("\n"); sb.append(" additionalProperties: ") .append(toIndentedString(additionalProperties)) diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatesResponse.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatesResponse.java index f467ac3cb79..3b7b1a17ae2 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatesResponse.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatesResponse.java @@ -94,7 +94,7 @@ public SecurityMonitoringContentPackStatesResponse meta( } /** - * Metadata for content pack states + * Metadata for content pack states. * * @return meta */ diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatus.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatus.java index 9be02f125b9..15af0919e06 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatus.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackStatus.java @@ -25,7 +25,14 @@ public class SecurityMonitoringContentPackStatus extends ModelEnum { private static final Set allowedValues = new HashSet( - Arrays.asList("install", "activate", "initializing", "active", "warning", "broken")); + Arrays.asList( + "install", + "activate", + "initializing", + "active", + "warning", + "broken", + "not_configured")); public static final SecurityMonitoringContentPackStatus INSTALL = new SecurityMonitoringContentPackStatus("install"); @@ -39,6 +46,8 @@ public class SecurityMonitoringContentPackStatus extends ModelEnum { new SecurityMonitoringContentPackStatus("warning"); public static final SecurityMonitoringContentPackStatus BROKEN = new SecurityMonitoringContentPackStatus("broken"); + public static final SecurityMonitoringContentPackStatus NOT_CONFIGURED = + new SecurityMonitoringContentPackStatus("not_configured"); SecurityMonitoringContentPackStatus(String value) { super(value, allowedValues); diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackThreatIntelDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackThreatIntelDetails.java new file mode 100644 index 00000000000..40a1184357f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackThreatIntelDetails.java @@ -0,0 +1,271 @@ +/* + * 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; + +/** Details for a threat intelligence content pack. */ +@JsonPropertyOrder({ + SecurityMonitoringContentPackThreatIntelDetails.JSON_PROPERTY_CP_ACTIVATION, + SecurityMonitoringContentPackThreatIntelDetails.JSON_PROPERTY_DATA_LAST_SEEN, + SecurityMonitoringContentPackThreatIntelDetails.JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS, + SecurityMonitoringContentPackThreatIntelDetails.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackThreatIntelDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CP_ACTIVATION = "cp_activation"; + private SecurityMonitoringContentPackActivation cpActivation; + + public static final String JSON_PROPERTY_DATA_LAST_SEEN = "data_last_seen"; + private SecurityMonitoringContentPackTimestampBucket dataLastSeen; + + public static final String JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS = + "integration_installed_status"; + private SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringContentPackThreatIntelDetailsType type; + + public SecurityMonitoringContentPackThreatIntelDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackThreatIntelDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_CP_ACTIVATION) + SecurityMonitoringContentPackActivation cpActivation, + @JsonProperty(required = true, value = JSON_PROPERTY_DATA_LAST_SEEN) + SecurityMonitoringContentPackTimestampBucket dataLastSeen, + @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringContentPackThreatIntelDetailsType type) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + this.dataLastSeen = dataLastSeen; + this.unparsed |= !dataLastSeen.isValid(); + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackThreatIntelDetails cpActivation( + SecurityMonitoringContentPackActivation cpActivation) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + return this; + } + + /** + * The activation status of a content pack. + * + * @return cpActivation + */ + @JsonProperty(JSON_PROPERTY_CP_ACTIVATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackActivation getCpActivation() { + return cpActivation; + } + + public void setCpActivation(SecurityMonitoringContentPackActivation cpActivation) { + if (!cpActivation.isValid()) { + this.unparsed = true; + } + this.cpActivation = cpActivation; + } + + public SecurityMonitoringContentPackThreatIntelDetails dataLastSeen( + SecurityMonitoringContentPackTimestampBucket dataLastSeen) { + this.dataLastSeen = dataLastSeen; + this.unparsed |= !dataLastSeen.isValid(); + return this; + } + + /** + * Timestamp bucket indicating when logs were last collected. + * + * @return dataLastSeen + */ + @JsonProperty(JSON_PROPERTY_DATA_LAST_SEEN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackTimestampBucket getDataLastSeen() { + return dataLastSeen; + } + + public void setDataLastSeen(SecurityMonitoringContentPackTimestampBucket dataLastSeen) { + if (!dataLastSeen.isValid()) { + this.unparsed = true; + } + this.dataLastSeen = dataLastSeen; + } + + public SecurityMonitoringContentPackThreatIntelDetails integrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + return this; + } + + /** + * The installation status of the related integration. + * + * @return integrationInstalledStatus + */ + @JsonProperty(JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackIntegrationStatus getIntegrationInstalledStatus() { + return integrationInstalledStatus; + } + + public void setIntegrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + if (!integrationInstalledStatus.isValid()) { + this.unparsed = true; + } + this.integrationInstalledStatus = integrationInstalledStatus; + } + + public SecurityMonitoringContentPackThreatIntelDetails type( + SecurityMonitoringContentPackThreatIntelDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type for threat intelligence content pack details. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackThreatIntelDetailsType getType() { + return type; + } + + public void setType(SecurityMonitoringContentPackThreatIntelDetailsType 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 SecurityMonitoringContentPackThreatIntelDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackThreatIntelDetails 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 SecurityMonitoringContentPackThreatIntelDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackThreatIntelDetails + securityMonitoringContentPackThreatIntelDetails = + (SecurityMonitoringContentPackThreatIntelDetails) o; + return Objects.equals( + this.cpActivation, securityMonitoringContentPackThreatIntelDetails.cpActivation) + && Objects.equals( + this.dataLastSeen, securityMonitoringContentPackThreatIntelDetails.dataLastSeen) + && Objects.equals( + this.integrationInstalledStatus, + securityMonitoringContentPackThreatIntelDetails.integrationInstalledStatus) + && Objects.equals(this.type, securityMonitoringContentPackThreatIntelDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackThreatIntelDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + cpActivation, dataLastSeen, integrationInstalledStatus, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackThreatIntelDetails {\n"); + sb.append(" cpActivation: ").append(toIndentedString(cpActivation)).append("\n"); + sb.append(" dataLastSeen: ").append(toIndentedString(dataLastSeen)).append("\n"); + sb.append(" integrationInstalledStatus: ") + .append(toIndentedString(integrationInstalledStatus)) + .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/SecurityMonitoringContentPackThreatIntelDetailsType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackThreatIntelDetailsType.java new file mode 100644 index 00000000000..a039b378cb0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackThreatIntelDetailsType.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; + +/** Type for threat intelligence content pack details. */ +@JsonSerialize( + using = + SecurityMonitoringContentPackThreatIntelDetailsType + .SecurityMonitoringContentPackThreatIntelDetailsTypeSerializer.class) +public class SecurityMonitoringContentPackThreatIntelDetailsType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("threat_intel")); + + public static final SecurityMonitoringContentPackThreatIntelDetailsType THREAT_INTEL = + new SecurityMonitoringContentPackThreatIntelDetailsType("threat_intel"); + + SecurityMonitoringContentPackThreatIntelDetailsType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringContentPackThreatIntelDetailsTypeSerializer + extends StdSerializer { + public SecurityMonitoringContentPackThreatIntelDetailsTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackThreatIntelDetailsTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackThreatIntelDetailsType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringContentPackThreatIntelDetailsType fromValue(String value) { + return new SecurityMonitoringContentPackThreatIntelDetailsType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackVulnerabilityDetails.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackVulnerabilityDetails.java new file mode 100644 index 00000000000..dd3993bfe60 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackVulnerabilityDetails.java @@ -0,0 +1,271 @@ +/* + * 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; + +/** Details for a vulnerability content pack. */ +@JsonPropertyOrder({ + SecurityMonitoringContentPackVulnerabilityDetails.JSON_PROPERTY_CP_ACTIVATION, + SecurityMonitoringContentPackVulnerabilityDetails.JSON_PROPERTY_DATA_LAST_SEEN, + SecurityMonitoringContentPackVulnerabilityDetails.JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS, + SecurityMonitoringContentPackVulnerabilityDetails.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SecurityMonitoringContentPackVulnerabilityDetails { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CP_ACTIVATION = "cp_activation"; + private SecurityMonitoringContentPackActivation cpActivation; + + public static final String JSON_PROPERTY_DATA_LAST_SEEN = "data_last_seen"; + private SecurityMonitoringContentPackTimestampBucket dataLastSeen; + + public static final String JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS = + "integration_installed_status"; + private SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SecurityMonitoringContentPackVulnerabilityDetailsType type; + + public SecurityMonitoringContentPackVulnerabilityDetails() {} + + @JsonCreator + public SecurityMonitoringContentPackVulnerabilityDetails( + @JsonProperty(required = true, value = JSON_PROPERTY_CP_ACTIVATION) + SecurityMonitoringContentPackActivation cpActivation, + @JsonProperty(required = true, value = JSON_PROPERTY_DATA_LAST_SEEN) + SecurityMonitoringContentPackTimestampBucket dataLastSeen, + @JsonProperty(required = true, value = JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SecurityMonitoringContentPackVulnerabilityDetailsType type) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + this.dataLastSeen = dataLastSeen; + this.unparsed |= !dataLastSeen.isValid(); + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SecurityMonitoringContentPackVulnerabilityDetails cpActivation( + SecurityMonitoringContentPackActivation cpActivation) { + this.cpActivation = cpActivation; + this.unparsed |= !cpActivation.isValid(); + return this; + } + + /** + * The activation status of a content pack. + * + * @return cpActivation + */ + @JsonProperty(JSON_PROPERTY_CP_ACTIVATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackActivation getCpActivation() { + return cpActivation; + } + + public void setCpActivation(SecurityMonitoringContentPackActivation cpActivation) { + if (!cpActivation.isValid()) { + this.unparsed = true; + } + this.cpActivation = cpActivation; + } + + public SecurityMonitoringContentPackVulnerabilityDetails dataLastSeen( + SecurityMonitoringContentPackTimestampBucket dataLastSeen) { + this.dataLastSeen = dataLastSeen; + this.unparsed |= !dataLastSeen.isValid(); + return this; + } + + /** + * Timestamp bucket indicating when logs were last collected. + * + * @return dataLastSeen + */ + @JsonProperty(JSON_PROPERTY_DATA_LAST_SEEN) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackTimestampBucket getDataLastSeen() { + return dataLastSeen; + } + + public void setDataLastSeen(SecurityMonitoringContentPackTimestampBucket dataLastSeen) { + if (!dataLastSeen.isValid()) { + this.unparsed = true; + } + this.dataLastSeen = dataLastSeen; + } + + public SecurityMonitoringContentPackVulnerabilityDetails integrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + this.integrationInstalledStatus = integrationInstalledStatus; + this.unparsed |= !integrationInstalledStatus.isValid(); + return this; + } + + /** + * The installation status of the related integration. + * + * @return integrationInstalledStatus + */ + @JsonProperty(JSON_PROPERTY_INTEGRATION_INSTALLED_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackIntegrationStatus getIntegrationInstalledStatus() { + return integrationInstalledStatus; + } + + public void setIntegrationInstalledStatus( + SecurityMonitoringContentPackIntegrationStatus integrationInstalledStatus) { + if (!integrationInstalledStatus.isValid()) { + this.unparsed = true; + } + this.integrationInstalledStatus = integrationInstalledStatus; + } + + public SecurityMonitoringContentPackVulnerabilityDetails type( + SecurityMonitoringContentPackVulnerabilityDetailsType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type for vulnerability content pack details. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityMonitoringContentPackVulnerabilityDetailsType getType() { + return type; + } + + public void setType(SecurityMonitoringContentPackVulnerabilityDetailsType 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 SecurityMonitoringContentPackVulnerabilityDetails + */ + @JsonAnySetter + public SecurityMonitoringContentPackVulnerabilityDetails 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 SecurityMonitoringContentPackVulnerabilityDetails object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SecurityMonitoringContentPackVulnerabilityDetails + securityMonitoringContentPackVulnerabilityDetails = + (SecurityMonitoringContentPackVulnerabilityDetails) o; + return Objects.equals( + this.cpActivation, securityMonitoringContentPackVulnerabilityDetails.cpActivation) + && Objects.equals( + this.dataLastSeen, securityMonitoringContentPackVulnerabilityDetails.dataLastSeen) + && Objects.equals( + this.integrationInstalledStatus, + securityMonitoringContentPackVulnerabilityDetails.integrationInstalledStatus) + && Objects.equals(this.type, securityMonitoringContentPackVulnerabilityDetails.type) + && Objects.equals( + this.additionalProperties, + securityMonitoringContentPackVulnerabilityDetails.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + cpActivation, dataLastSeen, integrationInstalledStatus, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SecurityMonitoringContentPackVulnerabilityDetails {\n"); + sb.append(" cpActivation: ").append(toIndentedString(cpActivation)).append("\n"); + sb.append(" dataLastSeen: ").append(toIndentedString(dataLastSeen)).append("\n"); + sb.append(" integrationInstalledStatus: ") + .append(toIndentedString(integrationInstalledStatus)) + .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/SecurityMonitoringContentPackVulnerabilityDetailsType.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackVulnerabilityDetailsType.java new file mode 100644 index 00000000000..c0f86d45c84 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringContentPackVulnerabilityDetailsType.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; + +/** Type for vulnerability content pack details. */ +@JsonSerialize( + using = + SecurityMonitoringContentPackVulnerabilityDetailsType + .SecurityMonitoringContentPackVulnerabilityDetailsTypeSerializer.class) +public class SecurityMonitoringContentPackVulnerabilityDetailsType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("vulnerability")); + + public static final SecurityMonitoringContentPackVulnerabilityDetailsType VULNERABILITY = + new SecurityMonitoringContentPackVulnerabilityDetailsType("vulnerability"); + + SecurityMonitoringContentPackVulnerabilityDetailsType(String value) { + super(value, allowedValues); + } + + public static class SecurityMonitoringContentPackVulnerabilityDetailsTypeSerializer + extends StdSerializer { + public SecurityMonitoringContentPackVulnerabilityDetailsTypeSerializer( + Class t) { + super(t); + } + + public SecurityMonitoringContentPackVulnerabilityDetailsTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SecurityMonitoringContentPackVulnerabilityDetailsType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SecurityMonitoringContentPackVulnerabilityDetailsType fromValue(String value) { + return new SecurityMonitoringContentPackVulnerabilityDetailsType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSKU.java b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSKU.java index fb7e65e4225..73e172b0564 100644 --- a/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSKU.java +++ b/src/main/java/com/datadog/api/client/v2/model/SecurityMonitoringSKU.java @@ -24,13 +24,21 @@ public class SecurityMonitoringSKU extends ModelEnum { private static final Set allowedValues = new HashSet( - Arrays.asList("per_gb_analyzed", "per_event_in_siem_index_2023", "add_on_2024")); + Arrays.asList( + "per_gb_analyzed", + "per_event_in_siem_index_2023", + "add_on_2024", + "standalone_indexed", + "unknown")); public static final SecurityMonitoringSKU PER_GB_ANALYZED = new SecurityMonitoringSKU("per_gb_analyzed"); public static final SecurityMonitoringSKU PER_EVENT_IN_SIEM_INDEX_2023 = new SecurityMonitoringSKU("per_event_in_siem_index_2023"); public static final SecurityMonitoringSKU ADD_ON_2024 = new SecurityMonitoringSKU("add_on_2024"); + public static final SecurityMonitoringSKU STANDALONE_INDEXED = + new SecurityMonitoringSKU("standalone_indexed"); + public static final SecurityMonitoringSKU UNKNOWN = new SecurityMonitoringSKU("unknown"); SecurityMonitoringSKU(String value) { super(value, allowedValues);