diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 5f48d382ebe..0e46e870fdb 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -100057,6 +100057,262 @@ components: required: - type type: object + SeverityModifierRuleAction: + description: |- + The action to take when a severity modifier rule matches a finding. This is a discriminated union on `type`: `set` assigns a fixed severity, while `shift` moves the severity up or down by one rank. + + A severity modifier rule's `rule.query` must not filter on `@severity` or on the `@severity_details.user_adjusted.*` namespace; use `@severity_details.adjusted.value` to filter on the Datadog-adjusted severity instead. + discriminator: + mapping: + set: "#/components/schemas/SeverityModifierRuleSetAction" + shift: "#/components/schemas/SeverityModifierRuleShiftAction" + propertyName: type + oneOf: + - $ref: "#/components/schemas/SeverityModifierRuleSetAction" + - $ref: "#/components/schemas/SeverityModifierRuleShiftAction" + SeverityModifierRuleAttributesCreate: + description: Attributes for creating or updating a severity modifier rule. + properties: + action: + $ref: "#/components/schemas/SeverityModifierRuleAction" + enabled: + description: Whether the severity modifier rule is enabled. + example: true + type: boolean + name: + description: The name of the severity modifier rule. + example: "Downgrade misconfigurations in dev" + maxLength: 255 + minLength: 1 + type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" + required: + - name + - rule + - action + type: object + SeverityModifierRuleAttributesResponse: + description: Attributes of a severity modifier rule as returned by the API. + properties: + action: + $ref: "#/components/schemas/SeverityModifierRuleAction" + created_at: + description: The Unix timestamp in milliseconds when the rule was created. + example: 1722439510282 + format: int64 + type: integer + created_by: + $ref: "#/components/schemas/AutomationRuleCreatedBy" + enabled: + description: Whether the severity modifier rule is enabled. + example: true + type: boolean + modified_at: + description: The Unix timestamp in milliseconds when the rule was last modified. + example: 1722439510282 + format: int64 + type: integer + modified_by: + $ref: "#/components/schemas/AutomationRuleModifiedBy" + name: + description: The name of the severity modifier rule. + example: "Downgrade misconfigurations in dev" + maxLength: 255 + minLength: 1 + type: string + rule: + $ref: "#/components/schemas/AutomationRuleScope" + required: + - name + - enabled + - rule + - action + - created_at + - created_by + - modified_at + - modified_by + type: object + SeverityModifierRuleCreateRequest: + description: The body of a severity modifier rule create request. + properties: + data: + $ref: "#/components/schemas/SeverityModifierRuleDataCreate" + required: + - data + type: object + SeverityModifierRuleDataCreate: + description: The data object for a severity modifier rule create or update request. + properties: + attributes: + $ref: "#/components/schemas/SeverityModifierRuleAttributesCreate" + type: + $ref: "#/components/schemas/SeverityModifierRuleType" + required: + - type + - attributes + type: object + SeverityModifierRuleDataResponse: + description: The data object for a severity modifier rule as returned by the API. + properties: + attributes: + $ref: "#/components/schemas/SeverityModifierRuleAttributesResponse" + id: + description: The ID of the severity modifier rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + type: + $ref: "#/components/schemas/SeverityModifierRuleType" + required: + - id + - type + - attributes + type: object + SeverityModifierRuleReorderData: + description: The ordered list of severity modifier rules; every rule must be included. + items: + $ref: "#/components/schemas/SeverityModifierRuleReorderItem" + type: array + SeverityModifierRuleReorderItem: + description: A reference to a severity modifier rule used for reordering. + properties: + id: + description: The ID of the automation rule. + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + type: + $ref: "#/components/schemas/SeverityModifierRuleType" + required: + - type + - id + type: object + SeverityModifierRuleReorderRequest: + description: The body of a severity modifier rule reorder request. + properties: + data: + $ref: "#/components/schemas/SeverityModifierRuleReorderData" + required: + - data + type: object + SeverityModifierRuleResponse: + description: A single severity modifier rule response. + properties: + data: + $ref: "#/components/schemas/SeverityModifierRuleDataResponse" + required: + - data + type: object + SeverityModifierRuleSetAction: + description: Sets matched findings to a fixed severity. + properties: + description: + description: An optional free-form explanation for the severity change. + example: "Lower severity for dev environment noise" + maxLength: 20000 + type: string + severity: + $ref: "#/components/schemas/SeverityModifierSeverity" + type: + $ref: "#/components/schemas/SeverityModifierRuleSetActionType" + required: + - type + - severity + type: object + SeverityModifierRuleSetActionType: + description: The type of a severity modifier rule action that sets a fixed severity. + enum: + - set + example: set + type: string + x-enum-varnames: + - SET + SeverityModifierRuleShiftAction: + description: Shifts matched findings up or down by one severity rank. + properties: + description: + description: An optional free-form explanation for the severity change. + example: "Lower severity for dev environment noise" + maxLength: 20000 + type: string + severity_delta: + $ref: "#/components/schemas/SeverityModifierSeverityDelta" + type: + $ref: "#/components/schemas/SeverityModifierRuleShiftActionType" + required: + - type + - severity_delta + type: object + SeverityModifierRuleShiftActionType: + description: The type of a severity modifier rule action that shifts the severity by one rank. + enum: + - shift + example: shift + type: string + x-enum-varnames: + - SHIFT + SeverityModifierRuleType: + description: The JSON:API type for severity modifier rules. + enum: + - severity_modifier_rules + example: severity_modifier_rules + type: string + x-enum-varnames: + - SEVERITY_MODIFIER_RULES + SeverityModifierRuleUpdateRequest: + description: The body of a severity modifier rule update request. + properties: + data: + $ref: "#/components/schemas/SeverityModifierRuleDataCreate" + required: + - data + type: object + SeverityModifierRulesDataList: + description: A list of severity modifier rule data objects. + items: + $ref: "#/components/schemas/SeverityModifierRuleDataResponse" + type: array + SeverityModifierRulesResponse: + description: A list of severity modifier rules with pagination metadata. + properties: + data: + $ref: "#/components/schemas/SeverityModifierRulesDataList" + links: + $ref: "#/components/schemas/SecurityAutomationRulesLinks" + meta: + $ref: "#/components/schemas/SecurityAutomationRulesMeta" + required: + - data + - meta + - links + type: object + SeverityModifierSeverity: + description: The severity to assign to matched findings. `info_none` is not supported for the `iac_misconfiguration`, `runtime_code_vulnerability`, `secret`, or `static_code_vulnerability` finding types. + enum: + - info_none + - low + - medium + - high + - critical + example: low + type: string + x-enum-varnames: + - INFO_NONE + - LOW + - MEDIUM + - HIGH + - CRITICAL + SeverityModifierSeverityDelta: + description: The direction in which to shift the severity of matched findings by one rank. + enum: + - up_one + - down_one + example: up_one + type: string + x-enum-varnames: + - UP_ONE + - DOWN_ONE SharedDashboardGlobalTime: additionalProperties: {} description: Default time range configuration for the shared dashboard. @@ -185299,6 +185555,439 @@ paths: x-unstable: |- **Note**: This endpoint is in Preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security/findings/automation/severity_modifier_rules: + get: + description: Get all severity modifier rules for the current organization. + operationId: ListSecurityFindingsAutomationSeverityModifierRules + parameters: + - description: The number of rules per page. Maximum is 1000. + in: query + name: page[size] + required: false + schema: + default: 1000 + example: 10 + format: int64 + maximum: 1000 + minimum: 1 + type: integer + - description: The page number to return. + in: query + name: page[number] + required: false + schema: + default: 0 + example: 0 + format: int64 + minimum: 0 + type: integer + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + action: + description: "Lower severity for dev environment noise" + severity: low + type: set + created_at: 1722439510282 + created_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + enabled: true + modified_at: 1722439510282 + modified_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + name: "Downgrade misconfigurations in dev" + rule: + finding_types: + - misconfiguration + query: "env:dev" + id: "00000000-0000-0000-0000-000000000000" + type: severity_modifier_rules + links: + first: "/api/v2/security/findings/automation/severity_modifier_rules?page[size]=1000&page[number]=0" + last: "/api/v2/security/findings/automation/severity_modifier_rules?page[size]=1000&page[number]=0" + meta: + page: + total_filtered_count: 1 + schema: + $ref: "#/components/schemas/SeverityModifierRulesResponse" + description: Successfully retrieved the list of severity modifier rules + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Get all severity modifier rules + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_pipelines_read + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: Create a new severity modifier rule for the current organization. + operationId: CreateSecurityFindingsAutomationSeverityModifierRule + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + action: + description: "Lower severity for dev environment noise" + severity: low + type: set + enabled: true + name: "Downgrade misconfigurations in dev" + rule: + finding_types: + - misconfiguration + query: "env:dev" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleCreateRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + action: + description: "Lower severity for dev environment noise" + severity: low + type: set + created_at: 1722439510282 + created_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + enabled: true + modified_at: 1722439510282 + modified_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + name: "Downgrade misconfigurations in dev" + rule: + finding_types: + - misconfiguration + query: "env:dev" + id: "00000000-0000-0000-0000-000000000000" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleResponse" + description: Successfully created the severity modifier rule + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/ForbiddenResponse" + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unprocessable Entity + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Create a severity modifier rule + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_pipelines_write + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security/findings/automation/severity_modifier_rules/reorder: + post: + description: Reorder the list of severity modifier rules for the current organization. + operationId: ReorderSecurityFindingsAutomationSeverityModifierRules + requestBody: + content: + application/json: + examples: + default: + value: + data: + - id: "00000000-0000-0000-0000-000000000000" + type: severity_modifier_rules + - id: "11111111-1111-1111-1111-111111111111" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleReorderRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - id: "00000000-0000-0000-0000-000000000000" + type: severity_modifier_rules + - id: "11111111-1111-1111-1111-111111111111" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleReorderRequest" + description: Successfully reordered the severity modifier rules + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/ForbiddenResponse" + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unprocessable Entity + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Reorder severity modifier rules + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_pipelines_write + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security/findings/automation/severity_modifier_rules/{rule_id}: + delete: + description: Delete an existing severity modifier rule by ID. + operationId: DeleteSecurityFindingsAutomationSeverityModifierRule + parameters: + - description: The ID of the severity modifier rule. + in: path + name: rule_id + required: true + schema: + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + responses: + "204": + description: "Rule successfully deleted." + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Delete a severity modifier rule + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_pipelines_write + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Get the details of a severity modifier rule by ID. + operationId: GetSecurityFindingsAutomationSeverityModifierRule + parameters: + - description: The ID of the severity modifier rule. + in: path + name: rule_id + required: true + schema: + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + action: + description: "Lower severity for dev environment noise" + severity: low + type: set + created_at: 1722439510282 + created_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + enabled: true + modified_at: 1722439510282 + modified_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + name: "Downgrade misconfigurations in dev" + rule: + finding_types: + - misconfiguration + query: "env:dev" + id: "00000000-0000-0000-0000-000000000000" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleResponse" + description: Successfully retrieved the severity modifier rule + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Get a severity modifier rule + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_pipelines_read + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + put: + description: Update an existing severity modifier rule by ID. + operationId: UpdateSecurityFindingsAutomationSeverityModifierRule + parameters: + - description: The ID of the severity modifier rule. + in: path + name: rule_id + required: true + schema: + example: "00000000-0000-0000-0000-000000000000" + format: uuid + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + action: + severity_delta: down_one + type: shift + enabled: false + name: "Downgrade misconfigurations in dev" + rule: + finding_types: + - misconfiguration + query: "env:dev" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleUpdateRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + action: + severity_delta: down_one + type: shift + created_at: 1722439510282 + created_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + enabled: false + modified_at: 1722439510999 + modified_by: + id: "00000000-0000-0000-0000-000000000000" + name: "Jane Doe" + type: user + name: "Downgrade misconfigurations in dev" + rule: + finding_types: + - misconfiguration + query: "env:dev" + id: "00000000-0000-0000-0000-000000000000" + type: severity_modifier_rules + schema: + $ref: "#/components/schemas/SeverityModifierRuleResponse" + description: Successfully updated the severity modifier rule + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "422": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unprocessable Entity + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Update a severity modifier rule + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_pipelines_write + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security/findings/automation/ticket_creation_rules: get: description: Get all ticket creation rules for the current organization. diff --git a/examples/v2/security-monitoring/CreateSecurityFindingsAutomationSeverityModifierRule.java b/examples/v2/security-monitoring/CreateSecurityFindingsAutomationSeverityModifierRule.java new file mode 100644 index 00000000000..b8f5759f1a2 --- /dev/null +++ b/examples/v2/security-monitoring/CreateSecurityFindingsAutomationSeverityModifierRule.java @@ -0,0 +1,63 @@ +// Create a severity modifier rule returns "Successfully created the severity modifier rule" +// response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.AutomationRuleScope; +import com.datadog.api.client.v2.model.SecurityFindingType; +import com.datadog.api.client.v2.model.SeverityModifierRuleAction; +import com.datadog.api.client.v2.model.SeverityModifierRuleAttributesCreate; +import com.datadog.api.client.v2.model.SeverityModifierRuleCreateRequest; +import com.datadog.api.client.v2.model.SeverityModifierRuleDataCreate; +import com.datadog.api.client.v2.model.SeverityModifierRuleResponse; +import com.datadog.api.client.v2.model.SeverityModifierRuleSetAction; +import com.datadog.api.client.v2.model.SeverityModifierRuleSetActionType; +import com.datadog.api.client.v2.model.SeverityModifierRuleType; +import com.datadog.api.client.v2.model.SeverityModifierSeverity; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.createSecurityFindingsAutomationSeverityModifierRule", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SeverityModifierRuleCreateRequest body = + new SeverityModifierRuleCreateRequest() + .data( + new SeverityModifierRuleDataCreate() + .attributes( + new SeverityModifierRuleAttributesCreate() + .action( + new SeverityModifierRuleAction( + new SeverityModifierRuleSetAction() + .description("Lower severity for dev environment noise") + .severity(SeverityModifierSeverity.LOW) + .type(SeverityModifierRuleSetActionType.SET))) + .enabled(true) + .name("Downgrade misconfigurations in dev") + .rule( + new AutomationRuleScope() + .findingTypes( + Collections.singletonList( + SecurityFindingType.MISCONFIGURATION)) + .query("env:prod team:platform"))) + .type(SeverityModifierRuleType.SEVERITY_MODIFIER_RULES)); + + try { + SeverityModifierRuleResponse result = + apiInstance.createSecurityFindingsAutomationSeverityModifierRule(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#createSecurityFindingsAutomationSeverityModifierRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/DeleteSecurityFindingsAutomationSeverityModifierRule.java b/examples/v2/security-monitoring/DeleteSecurityFindingsAutomationSeverityModifierRule.java new file mode 100644 index 00000000000..038e1affe08 --- /dev/null +++ b/examples/v2/security-monitoring/DeleteSecurityFindingsAutomationSeverityModifierRule.java @@ -0,0 +1,37 @@ +// Delete a severity modifier rule returns "Rule successfully deleted." response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.deleteSecurityFindingsAutomationSeverityModifierRule", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + // there is a valid "valid_severity_modifier_rule" in the system + UUID VALID_SEVERITY_MODIFIER_RULE_DATA_ID = null; + try { + VALID_SEVERITY_MODIFIER_RULE_DATA_ID = + UUID.fromString(System.getenv("VALID_SEVERITY_MODIFIER_RULE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + try { + apiInstance.deleteSecurityFindingsAutomationSeverityModifierRule( + VALID_SEVERITY_MODIFIER_RULE_DATA_ID); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#deleteSecurityFindingsAutomationSeverityModifierRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/GetSecurityFindingsAutomationSeverityModifierRule.java b/examples/v2/security-monitoring/GetSecurityFindingsAutomationSeverityModifierRule.java new file mode 100644 index 00000000000..f4776670897 --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityFindingsAutomationSeverityModifierRule.java @@ -0,0 +1,40 @@ +// Get a severity modifier rule returns "Successfully retrieved the severity modifier rule" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SeverityModifierRuleResponse; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.getSecurityFindingsAutomationSeverityModifierRule", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + // there is a valid "valid_severity_modifier_rule" in the system + UUID VALID_SEVERITY_MODIFIER_RULE_DATA_ID = null; + try { + VALID_SEVERITY_MODIFIER_RULE_DATA_ID = + UUID.fromString(System.getenv("VALID_SEVERITY_MODIFIER_RULE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + try { + SeverityModifierRuleResponse result = + apiInstance.getSecurityFindingsAutomationSeverityModifierRule( + VALID_SEVERITY_MODIFIER_RULE_DATA_ID); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#getSecurityFindingsAutomationSeverityModifierRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ListSecurityFindingsAutomationSeverityModifierRules.java b/examples/v2/security-monitoring/ListSecurityFindingsAutomationSeverityModifierRules.java new file mode 100644 index 00000000000..653dfc8926e --- /dev/null +++ b/examples/v2/security-monitoring/ListSecurityFindingsAutomationSeverityModifierRules.java @@ -0,0 +1,30 @@ +// Get all severity modifier rules returns "Successfully retrieved the list of severity modifier +// rules" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SeverityModifierRulesResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.listSecurityFindingsAutomationSeverityModifierRules", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + SeverityModifierRulesResponse result = + apiInstance.listSecurityFindingsAutomationSeverityModifierRules(); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#listSecurityFindingsAutomationSeverityModifierRules"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/ReorderSecurityFindingsAutomationSeverityModifierRules.java b/examples/v2/security-monitoring/ReorderSecurityFindingsAutomationSeverityModifierRules.java new file mode 100644 index 00000000000..311af6b8b4b --- /dev/null +++ b/examples/v2/security-monitoring/ReorderSecurityFindingsAutomationSeverityModifierRules.java @@ -0,0 +1,51 @@ +// Reorder severity modifier rules returns "Successfully reordered the severity modifier rules" +// response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.SeverityModifierRuleReorderItem; +import com.datadog.api.client.v2.model.SeverityModifierRuleReorderRequest; +import com.datadog.api.client.v2.model.SeverityModifierRuleType; +import java.util.Collections; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.reorderSecurityFindingsAutomationSeverityModifierRules", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + // there is a valid "valid_severity_modifier_rule" in the system + UUID VALID_SEVERITY_MODIFIER_RULE_DATA_ID = null; + try { + VALID_SEVERITY_MODIFIER_RULE_DATA_ID = + UUID.fromString(System.getenv("VALID_SEVERITY_MODIFIER_RULE_DATA_ID")); + } catch (IllegalArgumentException e) { + System.err.println("Error parsing UUID: " + e.getMessage()); + } + + SeverityModifierRuleReorderRequest body = + new SeverityModifierRuleReorderRequest() + .data( + Collections.singletonList( + new SeverityModifierRuleReorderItem() + .id(VALID_SEVERITY_MODIFIER_RULE_DATA_ID) + .type(SeverityModifierRuleType.SEVERITY_MODIFIER_RULES))); + + try { + SeverityModifierRuleReorderRequest result = + apiInstance.reorderSecurityFindingsAutomationSeverityModifierRules(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#reorderSecurityFindingsAutomationSeverityModifierRules"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/security-monitoring/UpdateSecurityFindingsAutomationSeverityModifierRule.java b/examples/v2/security-monitoring/UpdateSecurityFindingsAutomationSeverityModifierRule.java new file mode 100644 index 00000000000..ade15bad3d2 --- /dev/null +++ b/examples/v2/security-monitoring/UpdateSecurityFindingsAutomationSeverityModifierRule.java @@ -0,0 +1,65 @@ +// Update a severity modifier rule returns "Successfully updated the severity modifier rule" +// response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.AutomationRuleScope; +import com.datadog.api.client.v2.model.SecurityFindingType; +import com.datadog.api.client.v2.model.SeverityModifierRuleAction; +import com.datadog.api.client.v2.model.SeverityModifierRuleAttributesCreate; +import com.datadog.api.client.v2.model.SeverityModifierRuleDataCreate; +import com.datadog.api.client.v2.model.SeverityModifierRuleResponse; +import com.datadog.api.client.v2.model.SeverityModifierRuleSetAction; +import com.datadog.api.client.v2.model.SeverityModifierRuleSetActionType; +import com.datadog.api.client.v2.model.SeverityModifierRuleType; +import com.datadog.api.client.v2.model.SeverityModifierRuleUpdateRequest; +import com.datadog.api.client.v2.model.SeverityModifierSeverity; +import java.util.Collections; +import java.util.UUID; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled( + "v2.updateSecurityFindingsAutomationSeverityModifierRule", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + SeverityModifierRuleUpdateRequest body = + new SeverityModifierRuleUpdateRequest() + .data( + new SeverityModifierRuleDataCreate() + .attributes( + new SeverityModifierRuleAttributesCreate() + .action( + new SeverityModifierRuleAction( + new SeverityModifierRuleSetAction() + .description("Lower severity for dev environment noise") + .severity(SeverityModifierSeverity.LOW) + .type(SeverityModifierRuleSetActionType.SET))) + .enabled(true) + .name("Downgrade misconfigurations in dev") + .rule( + new AutomationRuleScope() + .findingTypes( + Collections.singletonList( + SecurityFindingType.MISCONFIGURATION)) + .query("env:prod team:platform"))) + .type(SeverityModifierRuleType.SEVERITY_MODIFIER_RULES)); + + try { + SeverityModifierRuleResponse result = + apiInstance.updateSecurityFindingsAutomationSeverityModifierRule( + UUID.fromString("00000000-0000-0000-0000-000000000000"), body); + System.out.println(result); + } catch (ApiException e) { + System.err.println( + "Exception when calling" + + " SecurityMonitoringApi#updateSecurityFindingsAutomationSeverityModifierRule"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 97c93bba1d2..2a2147025d2 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -887,6 +887,7 @@ public class ApiClient { put("v2.createSampleLogGenerationSubscription", false); put("v2.createSecurityFindingsAutomationDueDateRule", false); put("v2.createSecurityFindingsAutomationMuteRule", false); + put("v2.createSecurityFindingsAutomationSeverityModifierRule", false); put("v2.createSecurityFindingsAutomationTicketCreationRule", false); put("v2.createSecurityMonitoringDataset", false); put("v2.createSecurityMonitoringIntegrationConfig", false); @@ -898,6 +899,7 @@ public class ApiClient { put("v2.deleteSampleLogGenerationSubscription", false); put("v2.deleteSecurityFindingsAutomationDueDateRule", false); put("v2.deleteSecurityFindingsAutomationMuteRule", false); + put("v2.deleteSecurityFindingsAutomationSeverityModifierRule", false); put("v2.deleteSecurityFindingsAutomationTicketCreationRule", false); put("v2.deleteSecurityMonitoringDataset", false); put("v2.deleteSecurityMonitoringIntegrationConfig", false); @@ -912,6 +914,7 @@ public class ApiClient { put("v2.getSecretsRules", false); put("v2.getSecurityFindingsAutomationDueDateRule", false); put("v2.getSecurityFindingsAutomationMuteRule", false); + put("v2.getSecurityFindingsAutomationSeverityModifierRule", false); put("v2.getSecurityFindingsAutomationTicketCreationRule", false); put("v2.getSecurityMonitoringDataset", false); put("v2.getSecurityMonitoringDatasetByVersion", false); @@ -934,6 +937,7 @@ public class ApiClient { put("v2.listScannedAssetsMetadata", false); put("v2.listSecurityFindingsAutomationDueDateRules", false); put("v2.listSecurityFindingsAutomationMuteRules", false); + put("v2.listSecurityFindingsAutomationSeverityModifierRules", false); put("v2.listSecurityFindingsAutomationTicketCreationRules", false); put("v2.listSecurityMonitoringDatasets", false); put("v2.listSecurityMonitoringHistsignals", false); @@ -943,6 +947,7 @@ public class ApiClient { put("v2.listVulnerableAssets", false); put("v2.reorderSecurityFindingsAutomationDueDateRules", false); put("v2.reorderSecurityFindingsAutomationMuteRules", false); + put("v2.reorderSecurityFindingsAutomationSeverityModifierRules", false); put("v2.reorderSecurityFindingsAutomationTicketCreationRules", false); put("v2.restoreSecurityMonitoringRule", false); put("v2.runHistoricalJob", false); @@ -950,6 +955,7 @@ public class ApiClient { put("v2.updateFindingsAssignee", false); put("v2.updateSecurityFindingsAutomationDueDateRule", false); put("v2.updateSecurityFindingsAutomationMuteRule", false); + put("v2.updateSecurityFindingsAutomationSeverityModifierRule", false); put("v2.updateSecurityFindingsAutomationTicketCreationRule", false); put("v2.updateSecurityMonitoringDataset", false); put("v2.updateSecurityMonitoringIntegrationConfig", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java index 97f78fc6f0f..e3d30daf31a 100644 --- a/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/SecurityMonitoringApi.java @@ -159,6 +159,11 @@ import com.datadog.api.client.v2.model.SecurityMonitoringTerraformConvertRequest; import com.datadog.api.client.v2.model.SecurityMonitoringTerraformExportResponse; import com.datadog.api.client.v2.model.SecurityMonitoringTerraformResourceType; +import com.datadog.api.client.v2.model.SeverityModifierRuleCreateRequest; +import com.datadog.api.client.v2.model.SeverityModifierRuleReorderRequest; +import com.datadog.api.client.v2.model.SeverityModifierRuleResponse; +import com.datadog.api.client.v2.model.SeverityModifierRuleUpdateRequest; +import com.datadog.api.client.v2.model.SeverityModifierRulesResponse; import com.datadog.api.client.v2.model.SignalEntitiesResponse; import com.datadog.api.client.v2.model.SingleEntityContextResponse; import com.datadog.api.client.v2.model.TicketCreationRuleCreateRequest; @@ -4671,6 +4676,167 @@ public ApiResponse createSecurityFindingsAutomationMuteRuleWit new GenericType() {}); } + /** + * Create a severity modifier rule. + * + *

See {@link #createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param body (required) + * @return SeverityModifierRuleResponse + * @throws ApiException if fails to make API call + */ + public SeverityModifierRuleResponse createSecurityFindingsAutomationSeverityModifierRule( + SeverityModifierRuleCreateRequest body) throws ApiException { + return createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo(body).getData(); + } + + /** + * Create a severity modifier rule. + * + *

See {@link #createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture<SeverityModifierRuleResponse> + */ + public CompletableFuture + createSecurityFindingsAutomationSeverityModifierRuleAsync( + SeverityModifierRuleCreateRequest body) { + return createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create a new severity modifier rule for the current organization. + * + * @param body (required) + * @return ApiResponse<SeverityModifierRuleResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
201 Successfully created the severity modifier rule -
400 Bad Request -
403 Forbidden -
422 Unprocessable Entity -
429 Too many requests -
+ */ + public ApiResponse + createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo( + SeverityModifierRuleCreateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " createSecurityFindingsAutomationSeverityModifierRule"); + } + // create path and map variables + String localVarPath = "/api/v2/security/findings/automation/severity_modifier_rules"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create a severity modifier rule. + * + *

See {@link #createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param body (required) + * @return CompletableFuture<ApiResponse<SeverityModifierRuleResponse>> + */ + public CompletableFuture> + createSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync( + SeverityModifierRuleCreateRequest body) { + // Check if unstable operation is enabled + String operationId = "createSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " createSecurityFindingsAutomationSeverityModifierRule")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security/findings/automation/severity_modifier_rules"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Create a ticket creation rule. * @@ -7565,6 +7731,163 @@ public ApiResponse deleteSecurityFindingsAutomationMuteRuleWithHttpInfo(UU null); } + /** + * Delete a severity modifier rule. + * + *

See {@link #deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @throws ApiException if fails to make API call + */ + public void deleteSecurityFindingsAutomationSeverityModifierRule(UUID ruleId) + throws ApiException { + deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo(ruleId); + } + + /** + * Delete a severity modifier rule. + * + *

See {@link #deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return CompletableFuture + */ + public CompletableFuture deleteSecurityFindingsAutomationSeverityModifierRuleAsync( + UUID ruleId) { + return deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync(ruleId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete an existing severity modifier rule by ID. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 Rule successfully deleted. -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo( + UUID ruleId) throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'ruleId' when calling" + + " deleteSecurityFindingsAutomationSeverityModifierRule"); + } + // create path and map variables + String localVarPath = + "/api/v2/security/findings/automation/severity_modifier_rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deleteSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete a severity modifier rule. + * + *

See {@link #deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> + deleteSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync(UUID ruleId) { + // Check if unstable operation is enabled + String operationId = "deleteSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'ruleId' when calling" + + " deleteSecurityFindingsAutomationSeverityModifierRule")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security/findings/automation/severity_modifier_rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.deleteSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "DELETE", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + null); + } + /** * Delete a ticket creation rule. * @@ -12656,7 +12979,169 @@ public ApiResponse getSecurityFindingsAutomationMuteRuleWithHt } /** - * Get a ticket creation rule. + * Get a severity modifier rule. + * + *

See {@link #getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return SeverityModifierRuleResponse + * @throws ApiException if fails to make API call + */ + public SeverityModifierRuleResponse getSecurityFindingsAutomationSeverityModifierRule(UUID ruleId) + throws ApiException { + return getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo(ruleId).getData(); + } + + /** + * Get a severity modifier rule. + * + *

See {@link #getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return CompletableFuture<SeverityModifierRuleResponse> + */ + public CompletableFuture + getSecurityFindingsAutomationSeverityModifierRuleAsync(UUID ruleId) { + return getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync(ruleId) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the details of a severity modifier rule by ID. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return ApiResponse<SeverityModifierRuleResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 Successfully retrieved the severity modifier rule -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse + getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo(UUID ruleId) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "getSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'ruleId' when calling" + + " getSecurityFindingsAutomationSeverityModifierRule"); + } + // create path and map variables + String localVarPath = + "/api/v2/security/findings/automation/severity_modifier_rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a severity modifier rule. + * + *

See {@link #getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @return CompletableFuture<ApiResponse<SeverityModifierRuleResponse>> + */ + public CompletableFuture> + getSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync(UUID ruleId) { + // Check if unstable operation is enabled + String operationId = "getSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'ruleId' when calling" + + " getSecurityFindingsAutomationSeverityModifierRule")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security/findings/automation/severity_modifier_rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get a ticket creation rule. * *

See {@link #getSecurityFindingsAutomationTicketCreationRuleWithHttpInfo}. * @@ -20218,8 +20703,8 @@ public ApiResponse listSecurityFindingsAutomationMuteRulesWit new GenericType() {}); } - /** Manage optional parameters to listSecurityFindingsAutomationTicketCreationRules. */ - public static class ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters { + /** Manage optional parameters to listSecurityFindingsAutomationSeverityModifierRules. */ + public static class ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters { private Long pageSize; private Long pageNumber; @@ -20227,9 +20712,9 @@ public static class ListSecurityFindingsAutomationTicketCreationRulesOptionalPar * Set pageSize. * * @param pageSize The number of rules per page. Maximum is 1000. (optional, default to 1000) - * @return ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters + * @return ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters */ - public ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters pageSize( + public ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters pageSize( Long pageSize) { this.pageSize = pageSize; return this; @@ -20239,9 +20724,9 @@ public ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters pageS * Set pageNumber. * * @param pageNumber The page number to return. (optional, default to 0) - * @return ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters + * @return ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters */ - public ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters pageNumber( + public ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters pageNumber( Long pageNumber) { this.pageNumber = pageNumber; return this; @@ -20249,31 +20734,31 @@ public ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters pageN } /** - * Get all ticket creation rules. + * Get all severity modifier rules. * - *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo}. + *

See {@link #listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo}. * - * @return TicketCreationRulesResponse + * @return SeverityModifierRulesResponse * @throws ApiException if fails to make API call */ - public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationRules() + public SeverityModifierRulesResponse listSecurityFindingsAutomationSeverityModifierRules() throws ApiException { - return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo( - new ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters()) + return listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo( + new ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters()) .getData(); } /** - * Get all ticket creation rules. + * Get all severity modifier rules. * - *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync}. + *

See {@link #listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync}. * - * @return CompletableFuture<TicketCreationRulesResponse> + * @return CompletableFuture<SeverityModifierRulesResponse> */ - public CompletableFuture - listSecurityFindingsAutomationTicketCreationRulesAsync() { - return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync( - new ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters()) + public CompletableFuture + listSecurityFindingsAutomationSeverityModifierRulesAsync() { + return listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync( + new ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -20281,32 +20766,32 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR } /** - * Get all ticket creation rules. + * Get all severity modifier rules. * - *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo}. + *

See {@link #listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo}. * * @param parameters Optional parameters for the request. - * @return TicketCreationRulesResponse + * @return SeverityModifierRulesResponse * @throws ApiException if fails to make API call */ - public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationRules( - ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) + public SeverityModifierRulesResponse listSecurityFindingsAutomationSeverityModifierRules( + ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters parameters) throws ApiException { - return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo(parameters).getData(); + return listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo(parameters).getData(); } /** - * Get all ticket creation rules. + * Get all severity modifier rules. * - *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync}. + *

See {@link #listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync}. * * @param parameters Optional parameters for the request. - * @return CompletableFuture<TicketCreationRulesResponse> + * @return CompletableFuture<SeverityModifierRulesResponse> */ - public CompletableFuture - listSecurityFindingsAutomationTicketCreationRulesAsync( - ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) { - return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync(parameters) + public CompletableFuture + listSecurityFindingsAutomationSeverityModifierRulesAsync( + ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters parameters) { + return listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync(parameters) .thenApply( response -> { return response.getData(); @@ -20314,26 +20799,26 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR } /** - * Get all ticket creation rules for the current organization. + * Get all severity modifier rules for the current organization. * * @param parameters Optional parameters for the request. - * @return ApiResponse<TicketCreationRulesResponse> + * @return ApiResponse<SeverityModifierRulesResponse> * @throws ApiException if fails to make API call * @http.response.details * * * - * + * * * *
Response details
Status Code Description Response Headers
200 Successfully retrieved the list of ticket creation rules -
200 Successfully retrieved the list of severity modifier rules -
403 Forbidden -
429 Too many requests -
*/ - public ApiResponse - listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo( - ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) + public ApiResponse + listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo( + ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters parameters) throws ApiException { // Check if unstable operation is enabled - String operationId = "listSecurityFindingsAutomationTicketCreationRules"; + String operationId = "listSecurityFindingsAutomationSeverityModifierRules"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { @@ -20343,7 +20828,7 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR Long pageSize = parameters.pageSize; Long pageNumber = parameters.pageNumber; // create path and map variables - String localVarPath = "/api/v2/security/findings/automation/ticket_creation_rules"; + String localVarPath = "/api/v2/security/findings/automation/severity_modifier_rules"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); @@ -20353,7 +20838,7 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR Invocation.Builder builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityFindingsAutomationTicketCreationRules", + "v2.SecurityMonitoringApi.listSecurityFindingsAutomationSeverityModifierRules", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -20368,26 +20853,26 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); } /** - * Get all ticket creation rules. + * Get all severity modifier rules. * - *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo}. + *

See {@link #listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo}. * * @param parameters Optional parameters for the request. - * @return CompletableFuture<ApiResponse<TicketCreationRulesResponse>> + * @return CompletableFuture<ApiResponse<SeverityModifierRulesResponse>> */ - public CompletableFuture> - listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync( - ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) { + public CompletableFuture> + listSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync( + ListSecurityFindingsAutomationSeverityModifierRulesOptionalParameters parameters) { // Check if unstable operation is enabled - String operationId = "listSecurityFindingsAutomationTicketCreationRules"; + String operationId = "listSecurityFindingsAutomationSeverityModifierRules"; if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); } else { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally( new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); @@ -20397,7 +20882,7 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR Long pageSize = parameters.pageSize; Long pageNumber = parameters.pageNumber; // create path and map variables - String localVarPath = "/api/v2/security/findings/automation/ticket_creation_rules"; + String localVarPath = "/api/v2/security/findings/automation/severity_modifier_rules"; List localVarQueryParams = new ArrayList(); Map localVarHeaderParams = new HashMap(); @@ -20409,7 +20894,7 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR try { builder = apiClient.createBuilder( - "v2.SecurityMonitoringApi.listSecurityFindingsAutomationTicketCreationRules", + "v2.SecurityMonitoringApi.listSecurityFindingsAutomationSeverityModifierRules", localVarPath, localVarQueryParams, localVarHeaderParams, @@ -20417,7 +20902,7 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR new String[] {"application/json"}, new String[] {"apiKeyAuth", "appKeyAuth"}); } catch (ApiException ex) { - CompletableFuture> result = + CompletableFuture> result = new CompletableFuture<>(); result.completeExceptionally(ex); return result; @@ -20430,32 +20915,65 @@ public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationR localVarPostBody, new HashMap(), false, - new GenericType() {}); + new GenericType() {}); + } + + /** Manage optional parameters to listSecurityFindingsAutomationTicketCreationRules. */ + public static class ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters { + private Long pageSize; + private Long pageNumber; + + /** + * Set pageSize. + * + * @param pageSize The number of rules per page. Maximum is 1000. (optional, default to 1000) + * @return ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters + */ + public ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters pageSize( + Long pageSize) { + this.pageSize = pageSize; + return this; + } + + /** + * Set pageNumber. + * + * @param pageNumber The page number to return. (optional, default to 0) + * @return ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters + */ + public ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters pageNumber( + Long pageNumber) { + this.pageNumber = pageNumber; + return this; + } } /** - * Get all critical assets. + * Get all ticket creation rules. * - *

See {@link #listSecurityMonitoringCriticalAssetsWithHttpInfo}. + *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo}. * - * @return SecurityMonitoringCriticalAssetsResponse + * @return TicketCreationRulesResponse * @throws ApiException if fails to make API call */ - public SecurityMonitoringCriticalAssetsResponse listSecurityMonitoringCriticalAssets() + public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationRules() throws ApiException { - return listSecurityMonitoringCriticalAssetsWithHttpInfo().getData(); + return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo( + new ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters()) + .getData(); } /** - * Get all critical assets. + * Get all ticket creation rules. * - *

See {@link #listSecurityMonitoringCriticalAssetsWithHttpInfoAsync}. + *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync}. * - * @return CompletableFuture<SecurityMonitoringCriticalAssetsResponse> + * @return CompletableFuture<TicketCreationRulesResponse> */ - public CompletableFuture - listSecurityMonitoringCriticalAssetsAsync() { - return listSecurityMonitoringCriticalAssetsWithHttpInfoAsync() + public CompletableFuture + listSecurityFindingsAutomationTicketCreationRulesAsync() { + return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync( + new ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters()) .thenApply( response -> { return response.getData(); @@ -20463,26 +20981,208 @@ public SecurityMonitoringCriticalAssetsResponse listSecurityMonitoringCriticalAs } /** - * Get the list of all critical assets. + * Get all ticket creation rules. * - * @return ApiResponse<SecurityMonitoringCriticalAssetsResponse> + *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return TicketCreationRulesResponse * @throws ApiException if fails to make API call - * @http.response.details - * - * - * - * - * - * - *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
*/ - public ApiResponse - listSecurityMonitoringCriticalAssetsWithHttpInfo() throws ApiException { - Object localVarPostBody = null; - // create path and map variables - String localVarPath = "/api/v2/security_monitoring/configuration/critical_assets"; - - Map localVarHeaderParams = new HashMap(); + public TicketCreationRulesResponse listSecurityFindingsAutomationTicketCreationRules( + ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) + throws ApiException { + return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo(parameters).getData(); + } + + /** + * Get all ticket creation rules. + * + *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<TicketCreationRulesResponse> + */ + public CompletableFuture + listSecurityFindingsAutomationTicketCreationRulesAsync( + ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) { + return listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get all ticket creation rules for the current organization. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<TicketCreationRulesResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 Successfully retrieved the list of ticket creation rules -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse + listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo( + ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "listSecurityFindingsAutomationTicketCreationRules"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + Long pageSize = parameters.pageSize; + Long pageNumber = parameters.pageNumber; + // create path and map variables + String localVarPath = "/api/v2/security/findings/automation/ticket_creation_rules"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityFindingsAutomationTicketCreationRules", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all ticket creation rules. + * + *

See {@link #listSecurityFindingsAutomationTicketCreationRulesWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<TicketCreationRulesResponse>> + */ + public CompletableFuture> + listSecurityFindingsAutomationTicketCreationRulesWithHttpInfoAsync( + ListSecurityFindingsAutomationTicketCreationRulesOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listSecurityFindingsAutomationTicketCreationRules"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + Long pageSize = parameters.pageSize; + Long pageNumber = parameters.pageNumber; + // create path and map variables + String localVarPath = "/api/v2/security/findings/automation/ticket_creation_rules"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[size]", pageSize)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[number]", pageNumber)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.listSecurityFindingsAutomationTicketCreationRules", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get all critical assets. + * + *

See {@link #listSecurityMonitoringCriticalAssetsWithHttpInfo}. + * + * @return SecurityMonitoringCriticalAssetsResponse + * @throws ApiException if fails to make API call + */ + public SecurityMonitoringCriticalAssetsResponse listSecurityMonitoringCriticalAssets() + throws ApiException { + return listSecurityMonitoringCriticalAssetsWithHttpInfo().getData(); + } + + /** + * Get all critical assets. + * + *

See {@link #listSecurityMonitoringCriticalAssetsWithHttpInfoAsync}. + * + * @return CompletableFuture<SecurityMonitoringCriticalAssetsResponse> + */ + public CompletableFuture + listSecurityMonitoringCriticalAssetsAsync() { + return listSecurityMonitoringCriticalAssetsWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Get the list of all critical assets. + * + * @return ApiResponse<SecurityMonitoringCriticalAssetsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
403 Not Authorized -
429 Too many requests -
+ */ + public ApiResponse + listSecurityMonitoringCriticalAssetsWithHttpInfo() throws ApiException { + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/security_monitoring/configuration/critical_assets"; + + Map localVarHeaderParams = new HashMap(); Invocation.Builder builder = apiClient.createBuilder( @@ -24594,6 +25294,167 @@ public ApiResponse reorderSecurityFindingsAutomationMute new GenericType() {}); } + /** + * Reorder severity modifier rules. + * + *

See {@link #reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo}. + * + * @param body (required) + * @return SeverityModifierRuleReorderRequest + * @throws ApiException if fails to make API call + */ + public SeverityModifierRuleReorderRequest reorderSecurityFindingsAutomationSeverityModifierRules( + SeverityModifierRuleReorderRequest body) throws ApiException { + return reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo(body).getData(); + } + + /** + * Reorder severity modifier rules. + * + *

See {@link #reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture<SeverityModifierRuleReorderRequest> + */ + public CompletableFuture + reorderSecurityFindingsAutomationSeverityModifierRulesAsync( + SeverityModifierRuleReorderRequest body) { + return reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Reorder the list of severity modifier rules for the current organization. + * + * @param body (required) + * @return ApiResponse<SeverityModifierRuleReorderRequest> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 Successfully reordered the severity modifier rules -
400 Bad Request -
403 Forbidden -
422 Unprocessable Entity -
429 Too many requests -
+ */ + public ApiResponse + reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo( + SeverityModifierRuleReorderRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "reorderSecurityFindingsAutomationSeverityModifierRules"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " reorderSecurityFindingsAutomationSeverityModifierRules"); + } + // create path and map variables + String localVarPath = "/api/v2/security/findings/automation/severity_modifier_rules/reorder"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.reorderSecurityFindingsAutomationSeverityModifierRules", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Reorder severity modifier rules. + * + *

See {@link #reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfo}. + * + * @param body (required) + * @return CompletableFuture<ApiResponse<SeverityModifierRuleReorderRequest>> + */ + public CompletableFuture> + reorderSecurityFindingsAutomationSeverityModifierRulesWithHttpInfoAsync( + SeverityModifierRuleReorderRequest body) { + // Check if unstable operation is enabled + String operationId = "reorderSecurityFindingsAutomationSeverityModifierRules"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " reorderSecurityFindingsAutomationSeverityModifierRules")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security/findings/automation/severity_modifier_rules/reorder"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.reorderSecurityFindingsAutomationSeverityModifierRules", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Reorder ticket creation rules. * @@ -27181,6 +28042,196 @@ public ApiResponse updateSecurityFindingsAutomationMuteRuleWit new GenericType() {}); } + /** + * Update a severity modifier rule. + * + *

See {@link #updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @param body (required) + * @return SeverityModifierRuleResponse + * @throws ApiException if fails to make API call + */ + public SeverityModifierRuleResponse updateSecurityFindingsAutomationSeverityModifierRule( + UUID ruleId, SeverityModifierRuleUpdateRequest body) throws ApiException { + return updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo(ruleId, body).getData(); + } + + /** + * Update a severity modifier rule. + * + *

See {@link #updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @param body (required) + * @return CompletableFuture<SeverityModifierRuleResponse> + */ + public CompletableFuture + updateSecurityFindingsAutomationSeverityModifierRuleAsync( + UUID ruleId, SeverityModifierRuleUpdateRequest body) { + return updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync(ruleId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update an existing severity modifier rule by ID. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @param body (required) + * @return ApiResponse<SeverityModifierRuleResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 Successfully updated the severity modifier rule -
400 Bad Request -
403 Forbidden -
404 Not Found -
422 Unprocessable Entity -
429 Too many requests -
+ */ + public ApiResponse + updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo( + UUID ruleId, SeverityModifierRuleUpdateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'ruleId' when calling" + + " updateSecurityFindingsAutomationSeverityModifierRule"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " updateSecurityFindingsAutomationSeverityModifierRule"); + } + // create path and map variables + String localVarPath = + "/api/v2/security/findings/automation/severity_modifier_rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.updateSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "PUT", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update a severity modifier rule. + * + *

See {@link #updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfo}. + * + * @param ruleId The ID of the severity modifier rule. (required) + * @param body (required) + * @return CompletableFuture<ApiResponse<SeverityModifierRuleResponse>> + */ + public CompletableFuture> + updateSecurityFindingsAutomationSeverityModifierRuleWithHttpInfoAsync( + UUID ruleId, SeverityModifierRuleUpdateRequest body) { + // Check if unstable operation is enabled + String operationId = "updateSecurityFindingsAutomationSeverityModifierRule"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'ruleId' is set + if (ruleId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'ruleId' when calling" + + " updateSecurityFindingsAutomationSeverityModifierRule")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling" + + " updateSecurityFindingsAutomationSeverityModifierRule")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/security/findings/automation/severity_modifier_rules/{rule_id}" + .replaceAll("\\{" + "rule_id" + "\\}", apiClient.escapeString(ruleId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.updateSecurityFindingsAutomationSeverityModifierRule", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PUT", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** * Update a ticket creation rule. * diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAction.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAction.java new file mode 100644 index 00000000000..80a6479069b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAction.java @@ -0,0 +1,289 @@ +/* + * 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 = SeverityModifierRuleAction.SeverityModifierRuleActionDeserializer.class) +@JsonSerialize(using = SeverityModifierRuleAction.SeverityModifierRuleActionSerializer.class) +public class SeverityModifierRuleAction extends AbstractOpenApiSchema { + private static final Logger log = Logger.getLogger(SeverityModifierRuleAction.class.getName()); + + @JsonIgnore public boolean unparsed = false; + + public static class SeverityModifierRuleActionSerializer + extends StdSerializer { + public SeverityModifierRuleActionSerializer(Class t) { + super(t); + } + + public SeverityModifierRuleActionSerializer() { + this(null); + } + + @Override + public void serialize( + SeverityModifierRuleAction value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.getActualInstance()); + } + } + + public static class SeverityModifierRuleActionDeserializer + extends StdDeserializer { + public SeverityModifierRuleActionDeserializer() { + this(SeverityModifierRuleAction.class); + } + + public SeverityModifierRuleActionDeserializer(Class vc) { + super(vc); + } + + @Override + public SeverityModifierRuleAction 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 SeverityModifierRuleSetAction + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SeverityModifierRuleSetAction.class.equals(Integer.class) + || SeverityModifierRuleSetAction.class.equals(Long.class) + || SeverityModifierRuleSetAction.class.equals(Float.class) + || SeverityModifierRuleSetAction.class.equals(Double.class) + || SeverityModifierRuleSetAction.class.equals(Boolean.class) + || SeverityModifierRuleSetAction.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SeverityModifierRuleSetAction.class.equals(Integer.class) + || SeverityModifierRuleSetAction.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SeverityModifierRuleSetAction.class.equals(Float.class) + || SeverityModifierRuleSetAction.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SeverityModifierRuleSetAction.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SeverityModifierRuleSetAction.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(SeverityModifierRuleSetAction.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 (!((SeverityModifierRuleSetAction) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'SeverityModifierRuleSetAction'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log(Level.FINER, "Input data does not match schema 'SeverityModifierRuleSetAction'", e); + } + + // deserialize SeverityModifierRuleShiftAction + try { + boolean attemptParsing = true; + // ensure that we respect type coercion as set on the client ObjectMapper + if (SeverityModifierRuleShiftAction.class.equals(Integer.class) + || SeverityModifierRuleShiftAction.class.equals(Long.class) + || SeverityModifierRuleShiftAction.class.equals(Float.class) + || SeverityModifierRuleShiftAction.class.equals(Double.class) + || SeverityModifierRuleShiftAction.class.equals(Boolean.class) + || SeverityModifierRuleShiftAction.class.equals(String.class)) { + attemptParsing = typeCoercion; + if (!attemptParsing) { + attemptParsing |= + ((SeverityModifierRuleShiftAction.class.equals(Integer.class) + || SeverityModifierRuleShiftAction.class.equals(Long.class)) + && token == JsonToken.VALUE_NUMBER_INT); + attemptParsing |= + ((SeverityModifierRuleShiftAction.class.equals(Float.class) + || SeverityModifierRuleShiftAction.class.equals(Double.class)) + && (token == JsonToken.VALUE_NUMBER_FLOAT + || token == JsonToken.VALUE_NUMBER_INT)); + attemptParsing |= + (SeverityModifierRuleShiftAction.class.equals(Boolean.class) + && (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE)); + attemptParsing |= + (SeverityModifierRuleShiftAction.class.equals(String.class) + && token == JsonToken.VALUE_STRING); + } + } + if (attemptParsing) { + tmp = tree.traverse(jp.getCodec()).readValueAs(SeverityModifierRuleShiftAction.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 (!((SeverityModifierRuleShiftAction) tmp).unparsed) { + deserialized = tmp; + match++; + } + log.log(Level.FINER, "Input data matches schema 'SeverityModifierRuleShiftAction'"); + } + } catch (Exception e) { + // deserialization failed, continue + log.log( + Level.FINER, "Input data does not match schema 'SeverityModifierRuleShiftAction'", e); + } + + SeverityModifierRuleAction ret = new SeverityModifierRuleAction(); + 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 SeverityModifierRuleAction getNullValue(DeserializationContext ctxt) + throws JsonMappingException { + throw new JsonMappingException(ctxt.getParser(), "SeverityModifierRuleAction cannot be null"); + } + } + + // store a list of schema names defined in oneOf + public static final Map schemas = new HashMap(); + + public SeverityModifierRuleAction() { + super("oneOf", Boolean.FALSE); + } + + public SeverityModifierRuleAction(SeverityModifierRuleSetAction o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + public SeverityModifierRuleAction(SeverityModifierRuleShiftAction o) { + super("oneOf", Boolean.FALSE); + setActualInstance(o); + } + + static { + schemas.put( + "SeverityModifierRuleSetAction", new GenericType() {}); + schemas.put( + "SeverityModifierRuleShiftAction", new GenericType() {}); + JSON.registerDescendants( + SeverityModifierRuleAction.class, Collections.unmodifiableMap(schemas)); + } + + @Override + public Map getSchemas() { + return SeverityModifierRuleAction.schemas; + } + + /** + * Set the instance that matches the oneOf child schema, check the instance parameter is valid + * against the oneOf child schemas: SeverityModifierRuleSetAction, SeverityModifierRuleShiftAction + * + *

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(SeverityModifierRuleSetAction.class, instance, new HashSet>())) { + super.setActualInstance(instance); + return; + } + if (JSON.isInstanceOf( + SeverityModifierRuleShiftAction.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 SeverityModifierRuleSetAction," + + " SeverityModifierRuleShiftAction"); + } + + /** + * Get the actual instance, which can be the following: SeverityModifierRuleSetAction, + * SeverityModifierRuleShiftAction + * + * @return The actual instance (SeverityModifierRuleSetAction, SeverityModifierRuleShiftAction) + */ + @Override + public Object getActualInstance() { + return super.getActualInstance(); + } + + /** + * Get the actual instance of `SeverityModifierRuleSetAction`. If the actual instance is not + * `SeverityModifierRuleSetAction`, the ClassCastException will be thrown. + * + * @return The actual instance of `SeverityModifierRuleSetAction` + * @throws ClassCastException if the instance is not `SeverityModifierRuleSetAction` + */ + public SeverityModifierRuleSetAction getSeverityModifierRuleSetAction() + throws ClassCastException { + return (SeverityModifierRuleSetAction) super.getActualInstance(); + } + + /** + * Get the actual instance of `SeverityModifierRuleShiftAction`. If the actual instance is not + * `SeverityModifierRuleShiftAction`, the ClassCastException will be thrown. + * + * @return The actual instance of `SeverityModifierRuleShiftAction` + * @throws ClassCastException if the instance is not `SeverityModifierRuleShiftAction` + */ + public SeverityModifierRuleShiftAction getSeverityModifierRuleShiftAction() + throws ClassCastException { + return (SeverityModifierRuleShiftAction) super.getActualInstance(); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAttributesCreate.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAttributesCreate.java new file mode 100644 index 00000000000..7db020d4973 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAttributesCreate.java @@ -0,0 +1,247 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for creating or updating a severity modifier rule. */ +@JsonPropertyOrder({ + SeverityModifierRuleAttributesCreate.JSON_PROPERTY_ACTION, + SeverityModifierRuleAttributesCreate.JSON_PROPERTY_ENABLED, + SeverityModifierRuleAttributesCreate.JSON_PROPERTY_NAME, + SeverityModifierRuleAttributesCreate.JSON_PROPERTY_RULE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleAttributesCreate { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACTION = "action"; + private SeverityModifierRuleAction action; + + public static final String JSON_PROPERTY_ENABLED = "enabled"; + private Boolean enabled; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_RULE = "rule"; + private AutomationRuleScope rule; + + public SeverityModifierRuleAttributesCreate() {} + + @JsonCreator + public SeverityModifierRuleAttributesCreate( + @JsonProperty(required = true, value = JSON_PROPERTY_ACTION) + SeverityModifierRuleAction action, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_RULE) AutomationRuleScope rule) { + this.action = action; + this.unparsed |= action.unparsed; + this.name = name; + this.rule = rule; + this.unparsed |= rule.unparsed; + } + + public SeverityModifierRuleAttributesCreate action(SeverityModifierRuleAction action) { + this.action = action; + this.unparsed |= action.unparsed; + return this; + } + + /** + * The action to take when a severity modifier rule matches a finding. This is a discriminated + * union on type: set assigns a fixed severity, while shift + * moves the severity up or down by one rank. + * + *

A severity modifier rule's rule.query must not filter on @severity + * or on the @severity_details.user_adjusted.* namespace; use + * @severity_details.adjusted.value to filter on the Datadog-adjusted severity instead. + * + * @return action + */ + @JsonProperty(JSON_PROPERTY_ACTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleAction getAction() { + return action; + } + + public void setAction(SeverityModifierRuleAction action) { + this.action = action; + if (action != null) { + this.unparsed |= action.unparsed; + } + } + + public SeverityModifierRuleAttributesCreate enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the severity modifier rule is enabled. + * + * @return enabled + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public SeverityModifierRuleAttributesCreate name(String name) { + this.name = name; + return this; + } + + /** + * The name of the severity modifier rule. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SeverityModifierRuleAttributesCreate rule(AutomationRuleScope rule) { + this.rule = rule; + this.unparsed |= rule.unparsed; + return this; + } + + /** + * Defines the scope of findings to which the automation rule applies. + * + * @return rule + */ + @JsonProperty(JSON_PROPERTY_RULE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AutomationRuleScope getRule() { + return rule; + } + + public void setRule(AutomationRuleScope rule) { + this.rule = rule; + if (rule != null) { + this.unparsed |= rule.unparsed; + } + } + + /** + * 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 SeverityModifierRuleAttributesCreate + */ + @JsonAnySetter + public SeverityModifierRuleAttributesCreate 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 SeverityModifierRuleAttributesCreate object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleAttributesCreate severityModifierRuleAttributesCreate = + (SeverityModifierRuleAttributesCreate) o; + return Objects.equals(this.action, severityModifierRuleAttributesCreate.action) + && Objects.equals(this.enabled, severityModifierRuleAttributesCreate.enabled) + && Objects.equals(this.name, severityModifierRuleAttributesCreate.name) + && Objects.equals(this.rule, severityModifierRuleAttributesCreate.rule) + && Objects.equals( + this.additionalProperties, severityModifierRuleAttributesCreate.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(action, enabled, name, rule, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleAttributesCreate {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" rule: ").append(toIndentedString(rule)).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/SeverityModifierRuleAttributesResponse.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAttributesResponse.java new file mode 100644 index 00000000000..d9b78e0a1c3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleAttributesResponse.java @@ -0,0 +1,381 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes of a severity modifier rule as returned by the API. */ +@JsonPropertyOrder({ + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_ACTION, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_CREATED_AT, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_CREATED_BY, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_ENABLED, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_MODIFIED_AT, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_MODIFIED_BY, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_NAME, + SeverityModifierRuleAttributesResponse.JSON_PROPERTY_RULE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleAttributesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACTION = "action"; + private SeverityModifierRuleAction action; + + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private Long createdAt; + + public static final String JSON_PROPERTY_CREATED_BY = "created_by"; + private AutomationRuleCreatedBy createdBy; + + public static final String JSON_PROPERTY_ENABLED = "enabled"; + private Boolean enabled; + + public static final String JSON_PROPERTY_MODIFIED_AT = "modified_at"; + private Long modifiedAt; + + public static final String JSON_PROPERTY_MODIFIED_BY = "modified_by"; + private AutomationRuleModifiedBy modifiedBy; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_RULE = "rule"; + private AutomationRuleScope rule; + + public SeverityModifierRuleAttributesResponse() {} + + @JsonCreator + public SeverityModifierRuleAttributesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ACTION) + SeverityModifierRuleAction action, + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_AT) Long createdAt, + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_BY) + AutomationRuleCreatedBy createdBy, + @JsonProperty(required = true, value = JSON_PROPERTY_ENABLED) Boolean enabled, + @JsonProperty(required = true, value = JSON_PROPERTY_MODIFIED_AT) Long modifiedAt, + @JsonProperty(required = true, value = JSON_PROPERTY_MODIFIED_BY) + AutomationRuleModifiedBy modifiedBy, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_RULE) AutomationRuleScope rule) { + this.action = action; + this.unparsed |= action.unparsed; + this.createdAt = createdAt; + this.createdBy = createdBy; + this.unparsed |= createdBy.unparsed; + this.enabled = enabled; + this.modifiedAt = modifiedAt; + this.modifiedBy = modifiedBy; + this.unparsed |= modifiedBy.unparsed; + this.name = name; + this.rule = rule; + this.unparsed |= rule.unparsed; + } + + public SeverityModifierRuleAttributesResponse action(SeverityModifierRuleAction action) { + this.action = action; + this.unparsed |= action.unparsed; + return this; + } + + /** + * The action to take when a severity modifier rule matches a finding. This is a discriminated + * union on type: set assigns a fixed severity, while shift + * moves the severity up or down by one rank. + * + *

A severity modifier rule's rule.query must not filter on @severity + * or on the @severity_details.user_adjusted.* namespace; use + * @severity_details.adjusted.value to filter on the Datadog-adjusted severity instead. + * + * @return action + */ + @JsonProperty(JSON_PROPERTY_ACTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleAction getAction() { + return action; + } + + public void setAction(SeverityModifierRuleAction action) { + this.action = action; + if (action != null) { + this.unparsed |= action.unparsed; + } + } + + public SeverityModifierRuleAttributesResponse createdAt(Long createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * The Unix timestamp in milliseconds when the rule was created. + * + * @return createdAt + */ + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Long createdAt) { + this.createdAt = createdAt; + } + + public SeverityModifierRuleAttributesResponse createdBy(AutomationRuleCreatedBy createdBy) { + this.createdBy = createdBy; + this.unparsed |= createdBy.unparsed; + return this; + } + + /** + * The user or Datadog system who created the rule. + * + * @return createdBy + */ + @JsonProperty(JSON_PROPERTY_CREATED_BY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AutomationRuleCreatedBy getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(AutomationRuleCreatedBy createdBy) { + this.createdBy = createdBy; + if (createdBy != null) { + this.unparsed |= createdBy.unparsed; + } + } + + public SeverityModifierRuleAttributesResponse enabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Whether the severity modifier rule is enabled. + * + * @return enabled + */ + @JsonProperty(JSON_PROPERTY_ENABLED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + public SeverityModifierRuleAttributesResponse modifiedAt(Long modifiedAt) { + this.modifiedAt = modifiedAt; + return this; + } + + /** + * The Unix timestamp in milliseconds when the rule was last modified. + * + * @return modifiedAt + */ + @JsonProperty(JSON_PROPERTY_MODIFIED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getModifiedAt() { + return modifiedAt; + } + + public void setModifiedAt(Long modifiedAt) { + this.modifiedAt = modifiedAt; + } + + public SeverityModifierRuleAttributesResponse modifiedBy(AutomationRuleModifiedBy modifiedBy) { + this.modifiedBy = modifiedBy; + this.unparsed |= modifiedBy.unparsed; + return this; + } + + /** + * The user or Datadog system who last modified the rule. + * + * @return modifiedBy + */ + @JsonProperty(JSON_PROPERTY_MODIFIED_BY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AutomationRuleModifiedBy getModifiedBy() { + return modifiedBy; + } + + public void setModifiedBy(AutomationRuleModifiedBy modifiedBy) { + this.modifiedBy = modifiedBy; + if (modifiedBy != null) { + this.unparsed |= modifiedBy.unparsed; + } + } + + public SeverityModifierRuleAttributesResponse name(String name) { + this.name = name; + return this; + } + + /** + * The name of the severity modifier rule. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public SeverityModifierRuleAttributesResponse rule(AutomationRuleScope rule) { + this.rule = rule; + this.unparsed |= rule.unparsed; + return this; + } + + /** + * Defines the scope of findings to which the automation rule applies. + * + * @return rule + */ + @JsonProperty(JSON_PROPERTY_RULE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AutomationRuleScope getRule() { + return rule; + } + + public void setRule(AutomationRuleScope rule) { + this.rule = rule; + if (rule != null) { + this.unparsed |= rule.unparsed; + } + } + + /** + * 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 SeverityModifierRuleAttributesResponse + */ + @JsonAnySetter + public SeverityModifierRuleAttributesResponse 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 SeverityModifierRuleAttributesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleAttributesResponse severityModifierRuleAttributesResponse = + (SeverityModifierRuleAttributesResponse) o; + return Objects.equals(this.action, severityModifierRuleAttributesResponse.action) + && Objects.equals(this.createdAt, severityModifierRuleAttributesResponse.createdAt) + && Objects.equals(this.createdBy, severityModifierRuleAttributesResponse.createdBy) + && Objects.equals(this.enabled, severityModifierRuleAttributesResponse.enabled) + && Objects.equals(this.modifiedAt, severityModifierRuleAttributesResponse.modifiedAt) + && Objects.equals(this.modifiedBy, severityModifierRuleAttributesResponse.modifiedBy) + && Objects.equals(this.name, severityModifierRuleAttributesResponse.name) + && Objects.equals(this.rule, severityModifierRuleAttributesResponse.rule) + && Objects.equals( + this.additionalProperties, severityModifierRuleAttributesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + action, + createdAt, + createdBy, + enabled, + modifiedAt, + modifiedBy, + name, + rule, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleAttributesResponse {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" createdBy: ").append(toIndentedString(createdBy)).append("\n"); + sb.append(" enabled: ").append(toIndentedString(enabled)).append("\n"); + sb.append(" modifiedAt: ").append(toIndentedString(modifiedAt)).append("\n"); + sb.append(" modifiedBy: ").append(toIndentedString(modifiedBy)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" rule: ").append(toIndentedString(rule)).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/SeverityModifierRuleCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleCreateRequest.java new file mode 100644 index 00000000000..2371d21fd88 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleCreateRequest.java @@ -0,0 +1,151 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The body of a severity modifier rule create request. */ +@JsonPropertyOrder({SeverityModifierRuleCreateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleCreateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SeverityModifierRuleDataCreate data; + + public SeverityModifierRuleCreateRequest() {} + + @JsonCreator + public SeverityModifierRuleCreateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SeverityModifierRuleDataCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SeverityModifierRuleCreateRequest data(SeverityModifierRuleDataCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The data object for a severity modifier rule create or update request. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleDataCreate getData() { + return data; + } + + public void setData(SeverityModifierRuleDataCreate data) { + this.data = data; + if (data != null) { + this.unparsed |= data.unparsed; + } + } + + /** + * 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 SeverityModifierRuleCreateRequest + */ + @JsonAnySetter + public SeverityModifierRuleCreateRequest 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 SeverityModifierRuleCreateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleCreateRequest severityModifierRuleCreateRequest = + (SeverityModifierRuleCreateRequest) o; + return Objects.equals(this.data, severityModifierRuleCreateRequest.data) + && Objects.equals( + this.additionalProperties, severityModifierRuleCreateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleCreateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleDataCreate.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleDataCreate.java new file mode 100644 index 00000000000..9b8716ca704 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleDataCreate.java @@ -0,0 +1,187 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The data object for a severity modifier rule create or update request. */ +@JsonPropertyOrder({ + SeverityModifierRuleDataCreate.JSON_PROPERTY_ATTRIBUTES, + SeverityModifierRuleDataCreate.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleDataCreate { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SeverityModifierRuleAttributesCreate attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SeverityModifierRuleType type; + + public SeverityModifierRuleDataCreate() {} + + @JsonCreator + public SeverityModifierRuleDataCreate( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SeverityModifierRuleAttributesCreate attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeverityModifierRuleType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SeverityModifierRuleDataCreate attributes( + SeverityModifierRuleAttributesCreate attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for creating or updating a severity modifier rule. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleAttributesCreate getAttributes() { + return attributes; + } + + public void setAttributes(SeverityModifierRuleAttributesCreate attributes) { + this.attributes = attributes; + if (attributes != null) { + this.unparsed |= attributes.unparsed; + } + } + + public SeverityModifierRuleDataCreate type(SeverityModifierRuleType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for severity modifier rules. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleType getType() { + return type; + } + + public void setType(SeverityModifierRuleType 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 SeverityModifierRuleDataCreate + */ + @JsonAnySetter + public SeverityModifierRuleDataCreate 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 SeverityModifierRuleDataCreate object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleDataCreate severityModifierRuleDataCreate = + (SeverityModifierRuleDataCreate) o; + return Objects.equals(this.attributes, severityModifierRuleDataCreate.attributes) + && Objects.equals(this.type, severityModifierRuleDataCreate.type) + && Objects.equals( + this.additionalProperties, severityModifierRuleDataCreate.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleDataCreate {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleDataResponse.java new file mode 100644 index 00000000000..b2ebd745a9f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleDataResponse.java @@ -0,0 +1,216 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; + +/** The data object for a severity modifier rule as returned by the API. */ +@JsonPropertyOrder({ + SeverityModifierRuleDataResponse.JSON_PROPERTY_ATTRIBUTES, + SeverityModifierRuleDataResponse.JSON_PROPERTY_ID, + SeverityModifierRuleDataResponse.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleDataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private SeverityModifierRuleAttributesResponse attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SeverityModifierRuleType type; + + public SeverityModifierRuleDataResponse() {} + + @JsonCreator + public SeverityModifierRuleDataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + SeverityModifierRuleAttributesResponse attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeverityModifierRuleType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SeverityModifierRuleDataResponse attributes( + SeverityModifierRuleAttributesResponse attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of a severity modifier rule as returned by the API. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleAttributesResponse getAttributes() { + return attributes; + } + + public void setAttributes(SeverityModifierRuleAttributesResponse attributes) { + this.attributes = attributes; + if (attributes != null) { + this.unparsed |= attributes.unparsed; + } + } + + public SeverityModifierRuleDataResponse id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the severity modifier rule. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public SeverityModifierRuleDataResponse type(SeverityModifierRuleType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for severity modifier rules. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleType getType() { + return type; + } + + public void setType(SeverityModifierRuleType 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 SeverityModifierRuleDataResponse + */ + @JsonAnySetter + public SeverityModifierRuleDataResponse 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 SeverityModifierRuleDataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleDataResponse severityModifierRuleDataResponse = + (SeverityModifierRuleDataResponse) o; + return Objects.equals(this.attributes, severityModifierRuleDataResponse.attributes) + && Objects.equals(this.id, severityModifierRuleDataResponse.id) + && Objects.equals(this.type, severityModifierRuleDataResponse.type) + && Objects.equals( + this.additionalProperties, severityModifierRuleDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleDataResponse {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleReorderItem.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleReorderItem.java new file mode 100644 index 00000000000..c76a9917309 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleReorderItem.java @@ -0,0 +1,181 @@ +/* + * 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; +import java.util.UUID; + +/** A reference to a severity modifier rule used for reordering. */ +@JsonPropertyOrder({ + SeverityModifierRuleReorderItem.JSON_PROPERTY_ID, + SeverityModifierRuleReorderItem.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleReorderItem { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ID = "id"; + private UUID id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SeverityModifierRuleType type; + + public SeverityModifierRuleReorderItem() {} + + @JsonCreator + public SeverityModifierRuleReorderItem( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeverityModifierRuleType type) { + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SeverityModifierRuleReorderItem id(UUID id) { + this.id = id; + return this; + } + + /** + * The ID of the automation rule. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public UUID getId() { + return id; + } + + public void setId(UUID id) { + this.id = id; + } + + public SeverityModifierRuleReorderItem type(SeverityModifierRuleType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The JSON:API type for severity modifier rules. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleType getType() { + return type; + } + + public void setType(SeverityModifierRuleType 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 SeverityModifierRuleReorderItem + */ + @JsonAnySetter + public SeverityModifierRuleReorderItem 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 SeverityModifierRuleReorderItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleReorderItem severityModifierRuleReorderItem = + (SeverityModifierRuleReorderItem) o; + return Objects.equals(this.id, severityModifierRuleReorderItem.id) + && Objects.equals(this.type, severityModifierRuleReorderItem.type) + && Objects.equals( + this.additionalProperties, severityModifierRuleReorderItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleReorderItem {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleReorderRequest.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleReorderRequest.java new file mode 100644 index 00000000000..07da1cb1010 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleReorderRequest.java @@ -0,0 +1,165 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The body of a severity modifier rule reorder request. */ +@JsonPropertyOrder({SeverityModifierRuleReorderRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleReorderRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public SeverityModifierRuleReorderRequest() {} + + @JsonCreator + public SeverityModifierRuleReorderRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + for (SeverityModifierRuleReorderItem item : data) { + this.unparsed |= item.unparsed; + } + } + + public SeverityModifierRuleReorderRequest data(List data) { + this.data = data; + for (SeverityModifierRuleReorderItem item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SeverityModifierRuleReorderRequest addDataItem(SeverityModifierRuleReorderItem dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The ordered list of severity modifier rules; every rule must be included. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + if (data != null) { + for (SeverityModifierRuleReorderItem item : data) { + this.unparsed |= item.unparsed; + } + } + } + + /** + * 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 SeverityModifierRuleReorderRequest + */ + @JsonAnySetter + public SeverityModifierRuleReorderRequest 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 SeverityModifierRuleReorderRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleReorderRequest severityModifierRuleReorderRequest = + (SeverityModifierRuleReorderRequest) o; + return Objects.equals(this.data, severityModifierRuleReorderRequest.data) + && Objects.equals( + this.additionalProperties, severityModifierRuleReorderRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleReorderRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleResponse.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleResponse.java new file mode 100644 index 00000000000..9b5b796295c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleResponse.java @@ -0,0 +1,150 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single severity modifier rule response. */ +@JsonPropertyOrder({SeverityModifierRuleResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SeverityModifierRuleDataResponse data; + + public SeverityModifierRuleResponse() {} + + @JsonCreator + public SeverityModifierRuleResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SeverityModifierRuleDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SeverityModifierRuleResponse data(SeverityModifierRuleDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The data object for a severity modifier rule as returned by the API. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleDataResponse getData() { + return data; + } + + public void setData(SeverityModifierRuleDataResponse data) { + this.data = data; + if (data != null) { + this.unparsed |= data.unparsed; + } + } + + /** + * 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 SeverityModifierRuleResponse + */ + @JsonAnySetter + public SeverityModifierRuleResponse 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 SeverityModifierRuleResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleResponse severityModifierRuleResponse = (SeverityModifierRuleResponse) o; + return Objects.equals(this.data, severityModifierRuleResponse.data) + && Objects.equals( + this.additionalProperties, severityModifierRuleResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleSetAction.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleSetAction.java new file mode 100644 index 00000000000..a42ea401b1d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleSetAction.java @@ -0,0 +1,215 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Sets matched findings to a fixed severity. */ +@JsonPropertyOrder({ + SeverityModifierRuleSetAction.JSON_PROPERTY_DESCRIPTION, + SeverityModifierRuleSetAction.JSON_PROPERTY_SEVERITY, + SeverityModifierRuleSetAction.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleSetAction { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_SEVERITY = "severity"; + private SeverityModifierSeverity severity; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SeverityModifierRuleSetActionType type; + + public SeverityModifierRuleSetAction() {} + + @JsonCreator + public SeverityModifierRuleSetAction( + @JsonProperty(required = true, value = JSON_PROPERTY_SEVERITY) + SeverityModifierSeverity severity, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SeverityModifierRuleSetActionType type) { + this.severity = severity; + this.unparsed |= !severity.isValid(); + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SeverityModifierRuleSetAction description(String description) { + this.description = description; + return this; + } + + /** + * An optional free-form explanation for the severity change. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SeverityModifierRuleSetAction severity(SeverityModifierSeverity severity) { + this.severity = severity; + this.unparsed |= !severity.isValid(); + return this; + } + + /** + * The severity to assign to matched findings. info_none is not supported for the + * iac_misconfiguration, runtime_code_vulnerability, secret + * , or static_code_vulnerability finding types. + * + * @return severity + */ + @JsonProperty(JSON_PROPERTY_SEVERITY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierSeverity getSeverity() { + return severity; + } + + public void setSeverity(SeverityModifierSeverity severity) { + if (!severity.isValid()) { + this.unparsed = true; + } + this.severity = severity; + } + + public SeverityModifierRuleSetAction type(SeverityModifierRuleSetActionType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of a severity modifier rule action that sets a fixed severity. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleSetActionType getType() { + return type; + } + + public void setType(SeverityModifierRuleSetActionType 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 SeverityModifierRuleSetAction + */ + @JsonAnySetter + public SeverityModifierRuleSetAction 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 SeverityModifierRuleSetAction object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleSetAction severityModifierRuleSetAction = (SeverityModifierRuleSetAction) o; + return Objects.equals(this.description, severityModifierRuleSetAction.description) + && Objects.equals(this.severity, severityModifierRuleSetAction.severity) + && Objects.equals(this.type, severityModifierRuleSetAction.type) + && Objects.equals( + this.additionalProperties, severityModifierRuleSetAction.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, severity, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleSetAction {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" severity: ").append(toIndentedString(severity)).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/SeverityModifierRuleSetActionType.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleSetActionType.java new file mode 100644 index 00000000000..f10b50e4684 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleSetActionType.java @@ -0,0 +1,57 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of a severity modifier rule action that sets a fixed severity. */ +@JsonSerialize( + using = SeverityModifierRuleSetActionType.SeverityModifierRuleSetActionTypeSerializer.class) +public class SeverityModifierRuleSetActionType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("set")); + + public static final SeverityModifierRuleSetActionType SET = + new SeverityModifierRuleSetActionType("set"); + + SeverityModifierRuleSetActionType(String value) { + super(value, allowedValues); + } + + public static class SeverityModifierRuleSetActionTypeSerializer + extends StdSerializer { + public SeverityModifierRuleSetActionTypeSerializer(Class t) { + super(t); + } + + public SeverityModifierRuleSetActionTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SeverityModifierRuleSetActionType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SeverityModifierRuleSetActionType fromValue(String value) { + return new SeverityModifierRuleSetActionType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleShiftAction.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleShiftAction.java new file mode 100644 index 00000000000..215cfd9c455 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleShiftAction.java @@ -0,0 +1,215 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Shifts matched findings up or down by one severity rank. */ +@JsonPropertyOrder({ + SeverityModifierRuleShiftAction.JSON_PROPERTY_DESCRIPTION, + SeverityModifierRuleShiftAction.JSON_PROPERTY_SEVERITY_DELTA, + SeverityModifierRuleShiftAction.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleShiftAction { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_SEVERITY_DELTA = "severity_delta"; + private SeverityModifierSeverityDelta severityDelta; + + public static final String JSON_PROPERTY_TYPE = "type"; + private SeverityModifierRuleShiftActionType type; + + public SeverityModifierRuleShiftAction() {} + + @JsonCreator + public SeverityModifierRuleShiftAction( + @JsonProperty(required = true, value = JSON_PROPERTY_SEVERITY_DELTA) + SeverityModifierSeverityDelta severityDelta, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + SeverityModifierRuleShiftActionType type) { + this.severityDelta = severityDelta; + this.unparsed |= !severityDelta.isValid(); + this.type = type; + this.unparsed |= !type.isValid(); + } + + public SeverityModifierRuleShiftAction description(String description) { + this.description = description; + return this; + } + + /** + * An optional free-form explanation for the severity change. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SeverityModifierRuleShiftAction severityDelta( + SeverityModifierSeverityDelta severityDelta) { + this.severityDelta = severityDelta; + this.unparsed |= !severityDelta.isValid(); + return this; + } + + /** + * The direction in which to shift the severity of matched findings by one rank. + * + * @return severityDelta + */ + @JsonProperty(JSON_PROPERTY_SEVERITY_DELTA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierSeverityDelta getSeverityDelta() { + return severityDelta; + } + + public void setSeverityDelta(SeverityModifierSeverityDelta severityDelta) { + if (!severityDelta.isValid()) { + this.unparsed = true; + } + this.severityDelta = severityDelta; + } + + public SeverityModifierRuleShiftAction type(SeverityModifierRuleShiftActionType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * The type of a severity modifier rule action that shifts the severity by one rank. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleShiftActionType getType() { + return type; + } + + public void setType(SeverityModifierRuleShiftActionType 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 SeverityModifierRuleShiftAction + */ + @JsonAnySetter + public SeverityModifierRuleShiftAction 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 SeverityModifierRuleShiftAction object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleShiftAction severityModifierRuleShiftAction = + (SeverityModifierRuleShiftAction) o; + return Objects.equals(this.description, severityModifierRuleShiftAction.description) + && Objects.equals(this.severityDelta, severityModifierRuleShiftAction.severityDelta) + && Objects.equals(this.type, severityModifierRuleShiftAction.type) + && Objects.equals( + this.additionalProperties, severityModifierRuleShiftAction.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, severityDelta, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleShiftAction {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" severityDelta: ").append(toIndentedString(severityDelta)).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/SeverityModifierRuleShiftActionType.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleShiftActionType.java new file mode 100644 index 00000000000..c69c63edae1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleShiftActionType.java @@ -0,0 +1,58 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The type of a severity modifier rule action that shifts the severity by one rank. */ +@JsonSerialize( + using = SeverityModifierRuleShiftActionType.SeverityModifierRuleShiftActionTypeSerializer.class) +public class SeverityModifierRuleShiftActionType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("shift")); + + public static final SeverityModifierRuleShiftActionType SHIFT = + new SeverityModifierRuleShiftActionType("shift"); + + SeverityModifierRuleShiftActionType(String value) { + super(value, allowedValues); + } + + public static class SeverityModifierRuleShiftActionTypeSerializer + extends StdSerializer { + public SeverityModifierRuleShiftActionTypeSerializer( + Class t) { + super(t); + } + + public SeverityModifierRuleShiftActionTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SeverityModifierRuleShiftActionType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SeverityModifierRuleShiftActionType fromValue(String value) { + return new SeverityModifierRuleShiftActionType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleType.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleType.java new file mode 100644 index 00000000000..c7ea6beb2d6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleType.java @@ -0,0 +1,57 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The JSON:API type for severity modifier rules. */ +@JsonSerialize(using = SeverityModifierRuleType.SeverityModifierRuleTypeSerializer.class) +public class SeverityModifierRuleType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("severity_modifier_rules")); + + public static final SeverityModifierRuleType SEVERITY_MODIFIER_RULES = + new SeverityModifierRuleType("severity_modifier_rules"); + + SeverityModifierRuleType(String value) { + super(value, allowedValues); + } + + public static class SeverityModifierRuleTypeSerializer + extends StdSerializer { + public SeverityModifierRuleTypeSerializer(Class t) { + super(t); + } + + public SeverityModifierRuleTypeSerializer() { + this(null); + } + + @Override + public void serialize( + SeverityModifierRuleType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SeverityModifierRuleType fromValue(String value) { + return new SeverityModifierRuleType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleUpdateRequest.java new file mode 100644 index 00000000000..0beef3bee51 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRuleUpdateRequest.java @@ -0,0 +1,151 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The body of a severity modifier rule update request. */ +@JsonPropertyOrder({SeverityModifierRuleUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRuleUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private SeverityModifierRuleDataCreate data; + + public SeverityModifierRuleUpdateRequest() {} + + @JsonCreator + public SeverityModifierRuleUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + SeverityModifierRuleDataCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public SeverityModifierRuleUpdateRequest data(SeverityModifierRuleDataCreate data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * The data object for a severity modifier rule create or update request. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SeverityModifierRuleDataCreate getData() { + return data; + } + + public void setData(SeverityModifierRuleDataCreate data) { + this.data = data; + if (data != null) { + this.unparsed |= data.unparsed; + } + } + + /** + * 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 SeverityModifierRuleUpdateRequest + */ + @JsonAnySetter + public SeverityModifierRuleUpdateRequest 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 SeverityModifierRuleUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRuleUpdateRequest severityModifierRuleUpdateRequest = + (SeverityModifierRuleUpdateRequest) o; + return Objects.equals(this.data, severityModifierRuleUpdateRequest.data) + && Objects.equals( + this.additionalProperties, severityModifierRuleUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRuleUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRulesResponse.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRulesResponse.java new file mode 100644 index 00000000000..ee40d9929f5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierRulesResponse.java @@ -0,0 +1,233 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** A list of severity modifier rules with pagination metadata. */ +@JsonPropertyOrder({ + SeverityModifierRulesResponse.JSON_PROPERTY_DATA, + SeverityModifierRulesResponse.JSON_PROPERTY_LINKS, + SeverityModifierRulesResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class SeverityModifierRulesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_LINKS = "links"; + private SecurityAutomationRulesLinks links; + + public static final String JSON_PROPERTY_META = "meta"; + private SecurityAutomationRulesMeta meta; + + public SeverityModifierRulesResponse() {} + + @JsonCreator + public SeverityModifierRulesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data, + @JsonProperty(required = true, value = JSON_PROPERTY_LINKS) + SecurityAutomationRulesLinks links, + @JsonProperty(required = true, value = JSON_PROPERTY_META) SecurityAutomationRulesMeta meta) { + this.data = data; + for (SeverityModifierRuleDataResponse item : data) { + this.unparsed |= item.unparsed; + } + this.links = links; + this.unparsed |= links.unparsed; + this.meta = meta; + this.unparsed |= meta.unparsed; + } + + public SeverityModifierRulesResponse data(List data) { + this.data = data; + for (SeverityModifierRuleDataResponse item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public SeverityModifierRulesResponse addDataItem(SeverityModifierRuleDataResponse dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * A list of severity modifier rule data objects. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + if (data != null) { + for (SeverityModifierRuleDataResponse item : data) { + this.unparsed |= item.unparsed; + } + } + } + + public SeverityModifierRulesResponse links(SecurityAutomationRulesLinks links) { + this.links = links; + this.unparsed |= links.unparsed; + return this; + } + + /** + * Pagination links for the list of automation rules. + * + * @return links + */ + @JsonProperty(JSON_PROPERTY_LINKS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityAutomationRulesLinks getLinks() { + return links; + } + + public void setLinks(SecurityAutomationRulesLinks links) { + this.links = links; + if (links != null) { + this.unparsed |= links.unparsed; + } + } + + public SeverityModifierRulesResponse meta(SecurityAutomationRulesMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Metadata for the list of automation rules. + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public SecurityAutomationRulesMeta getMeta() { + return meta; + } + + public void setMeta(SecurityAutomationRulesMeta meta) { + this.meta = meta; + if (meta != null) { + this.unparsed |= meta.unparsed; + } + } + + /** + * 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 SeverityModifierRulesResponse + */ + @JsonAnySetter + public SeverityModifierRulesResponse 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 SeverityModifierRulesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SeverityModifierRulesResponse severityModifierRulesResponse = (SeverityModifierRulesResponse) o; + return Objects.equals(this.data, severityModifierRulesResponse.data) + && Objects.equals(this.links, severityModifierRulesResponse.links) + && Objects.equals(this.meta, severityModifierRulesResponse.meta) + && Objects.equals( + this.additionalProperties, severityModifierRulesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, links, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SeverityModifierRulesResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" links: ").append(toIndentedString(links)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierSeverity.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierSeverity.java new file mode 100644 index 00000000000..dc374ba046a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierSeverity.java @@ -0,0 +1,65 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * The severity to assign to matched findings. info_none is not supported for the + * iac_misconfiguration, runtime_code_vulnerability, secret, + * or static_code_vulnerability finding types. + */ +@JsonSerialize(using = SeverityModifierSeverity.SeverityModifierSeveritySerializer.class) +public class SeverityModifierSeverity extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("info_none", "low", "medium", "high", "critical")); + + public static final SeverityModifierSeverity INFO_NONE = + new SeverityModifierSeverity("info_none"); + public static final SeverityModifierSeverity LOW = new SeverityModifierSeverity("low"); + public static final SeverityModifierSeverity MEDIUM = new SeverityModifierSeverity("medium"); + public static final SeverityModifierSeverity HIGH = new SeverityModifierSeverity("high"); + public static final SeverityModifierSeverity CRITICAL = new SeverityModifierSeverity("critical"); + + SeverityModifierSeverity(String value) { + super(value, allowedValues); + } + + public static class SeverityModifierSeveritySerializer + extends StdSerializer { + public SeverityModifierSeveritySerializer(Class t) { + super(t); + } + + public SeverityModifierSeveritySerializer() { + this(null); + } + + @Override + public void serialize( + SeverityModifierSeverity value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SeverityModifierSeverity fromValue(String value) { + return new SeverityModifierSeverity(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/SeverityModifierSeverityDelta.java b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierSeverityDelta.java new file mode 100644 index 00000000000..3062600c92a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/SeverityModifierSeverityDelta.java @@ -0,0 +1,59 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** The direction in which to shift the severity of matched findings by one rank. */ +@JsonSerialize(using = SeverityModifierSeverityDelta.SeverityModifierSeverityDeltaSerializer.class) +public class SeverityModifierSeverityDelta extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("up_one", "down_one")); + + public static final SeverityModifierSeverityDelta UP_ONE = + new SeverityModifierSeverityDelta("up_one"); + public static final SeverityModifierSeverityDelta DOWN_ONE = + new SeverityModifierSeverityDelta("down_one"); + + SeverityModifierSeverityDelta(String value) { + super(value, allowedValues); + } + + public static class SeverityModifierSeverityDeltaSerializer + extends StdSerializer { + public SeverityModifierSeverityDeltaSerializer(Class t) { + super(t); + } + + public SeverityModifierSeverityDeltaSerializer() { + this(null); + } + + @Override + public void serialize( + SeverityModifierSeverityDelta value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static SeverityModifierSeverityDelta fromValue(String value) { + return new SeverityModifierSeverityDelta(value); + } +} diff --git a/src/test/resources/cassettes/features/v2/Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response.freeze b/src/test/resources/cassettes/features/v2/Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response.freeze new file mode 100644 index 00000000000..5812a38a047 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response.freeze @@ -0,0 +1 @@ +2026-08-03T09:17:25.445Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response.json b/src/test/resources/cassettes/features/v2/Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response.json new file mode 100644 index 00000000000..401f5cefcb5 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response.json @@ -0,0 +1,79 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"action\":{\"severity\":\"low\",\"type\":\"set\"},\"enabled\":true,\"name\":\"Test-Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response-1785748645\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}},\"type\":\"severity_modifier_rules\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/security/findings/automation/severity_modifier_rules", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"ec796c54-ec53-4b2f-bb14-36d4b224f92c\",\"type\":\"severity_modifier_rules\",\"attributes\":{\"action\":{\"type\":\"set\",\"severity\":\"low\"},\"created_at\":1785748647705,\"created_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"enabled\":true,\"modified_at\":1785748647705,\"modified_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"name\":\"Test-Delete_a_severity_modifier_rule_returns_Rule_successfully_deleted_response-1785748645\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "74b46408-32d6-77f5-f662-473b5b6e7fec" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/ec796c54-ec53-4b2f-bb14-36d4b224f92c", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "b49f12b9-8fe6-adc7-0d47-541fe7f6c35a" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/ec796c54-ec53-4b2f-bb14-36d4b224f92c", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"errors\":[{\"status\":\"404\",\"title\":\"Not Found\",\"detail\":\"rule does not exist\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 404, + "reasonPhrase": "Not Found" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "b49f12b9-8fe6-adc7-0d47-541fe7f6c35b" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response.freeze b/src/test/resources/cassettes/features/v2/Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response.freeze new file mode 100644 index 00000000000..87000b7fb8d --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response.freeze @@ -0,0 +1 @@ +2026-08-03T09:17:28.616Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response.json b/src/test/resources/cassettes/features/v2/Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response.json new file mode 100644 index 00000000000..def332fabfb --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response.json @@ -0,0 +1,79 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"action\":{\"severity\":\"low\",\"type\":\"set\"},\"enabled\":true,\"name\":\"Test-Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response-1785748648\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}},\"type\":\"severity_modifier_rules\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/security/findings/automation/severity_modifier_rules", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"fec045ba-40ba-42ef-a107-f7fba8717e11\",\"type\":\"severity_modifier_rules\",\"attributes\":{\"action\":{\"type\":\"set\",\"severity\":\"low\"},\"created_at\":1785748648838,\"created_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"enabled\":true,\"modified_at\":1785748648838,\"modified_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"name\":\"Test-Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response-1785748648\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "7fcdafdd-1b61-3e0d-2c71-6e5f79d9b7d0" + }, + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/fec045ba-40ba-42ef-a107-f7fba8717e11", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"fec045ba-40ba-42ef-a107-f7fba8717e11\",\"type\":\"severity_modifier_rules\",\"attributes\":{\"action\":{\"type\":\"set\",\"severity\":\"low\"},\"created_at\":1785748648838,\"created_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"enabled\":true,\"modified_at\":1785748648838,\"modified_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"name\":\"Test-Get_a_severity_modifier_rule_returns_Successfully_retrieved_the_severity_modifier_rule_response-1785748648\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "69fbd695-085a-b929-f1c9-1f006f5eafbf" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/fec045ba-40ba-42ef-a107-f7fba8717e11", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "b2a6d9bc-fb8b-3146-2340-d49fd3559f47" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_response.freeze b/src/test/resources/cassettes/features/v2/Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_response.freeze new file mode 100644 index 00000000000..8cba2e5db7f --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_response.freeze @@ -0,0 +1 @@ +2026-08-03T09:17:29.711Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_response.json b/src/test/resources/cassettes/features/v2/Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_response.json new file mode 100644 index 00000000000..228b091633c --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_response.json @@ -0,0 +1,79 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"action\":{\"severity\":\"low\",\"type\":\"set\"},\"enabled\":true,\"name\":\"Test-Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_r-1785748649\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}},\"type\":\"severity_modifier_rules\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/security/findings/automation/severity_modifier_rules", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"4c9856fe-1150-45de-813c-3d4d3375bea1\",\"type\":\"severity_modifier_rules\",\"attributes\":{\"action\":{\"type\":\"set\",\"severity\":\"low\"},\"created_at\":1785748649918,\"created_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"enabled\":true,\"modified_at\":1785748649918,\"modified_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"name\":\"Test-Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_r-1785748649\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "aec5ddaf-aa6d-00f1-d21f-5826638ce2a0" + }, + { + "httpRequest": { + "headers": {}, + "method": "GET", + "path": "/api/v2/security/findings/automation/severity_modifier_rules", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"id\":\"4c9856fe-1150-45de-813c-3d4d3375bea1\",\"type\":\"severity_modifier_rules\",\"attributes\":{\"action\":{\"type\":\"set\",\"severity\":\"low\"},\"created_at\":1785748649918,\"created_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"enabled\":true,\"modified_at\":1785748649918,\"modified_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"name\":\"Test-Get_all_severity_modifier_rules_returns_Successfully_retrieved_the_list_of_severity_modifier_rules_r-1785748649\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}}}],\"meta\":{\"page\":{\"total_filtered_count\":1}},\"links\":{\"first\":\"/api/v2/security/findings/automation/severity_modifier_rules?page[size]=1000\\u0026page[number]=0\",\"last\":\"/api/v2/security/findings/automation/severity_modifier_rules?page[size]=1000\\u0026page[number]=0\"}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "5158462e-fa99-55d8-9956-923830912380" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/4c9856fe-1150-45de-813c-3d4d3375bea1", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "b94b840f-c781-b804-7a97-1b56b71aea8a" + } +] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response.freeze b/src/test/resources/cassettes/features/v2/Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response.freeze new file mode 100644 index 00000000000..6a8d9d11228 --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response.freeze @@ -0,0 +1 @@ +2026-08-03T09:17:30.831Z \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response.json b/src/test/resources/cassettes/features/v2/Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response.json new file mode 100644 index 00000000000..078b6581fae --- /dev/null +++ b/src/test/resources/cassettes/features/v2/Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response.json @@ -0,0 +1,83 @@ +[ + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":{\"attributes\":{\"action\":{\"severity\":\"low\",\"type\":\"set\"},\"enabled\":true,\"name\":\"Test-Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response-1785748650\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}},\"type\":\"severity_modifier_rules\"}}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/security/findings/automation/severity_modifier_rules", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":{\"id\":\"91bb2eb7-36d4-4b89-af25-1f5a30af5e51\",\"type\":\"severity_modifier_rules\",\"attributes\":{\"action\":{\"type\":\"set\",\"severity\":\"low\"},\"created_at\":1785748651040,\"created_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"enabled\":true,\"modified_at\":1785748651040,\"modified_by\":{\"type\":\"user\",\"id\":\"9919ec9b-ebc7-49ee-8dc8-03626e717cca\",\"name\":\"CI Account\"},\"name\":\"Test-Reorder_severity_modifier_rules_returns_Successfully_reordered_the_severity_modifier_rules_response-1785748650\",\"rule\":{\"finding_types\":[\"misconfiguration\"],\"query\":\"env:staging\"}}}}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 201, + "reasonPhrase": "Created" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "e9c102e1-c000-3f3b-4426-d0bb97f4cda5" + }, + { + "httpRequest": { + "body": { + "type": "JSON", + "json": "{\"data\":[{\"id\":\"91bb2eb7-36d4-4b89-af25-1f5a30af5e51\",\"type\":\"severity_modifier_rules\"}]}" + }, + "headers": {}, + "method": "POST", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/reorder", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "body": "{\"data\":[{\"type\":\"severity_modifier_rules\",\"id\":\"91bb2eb7-36d4-4b89-af25-1f5a30af5e51\"}]}", + "headers": { + "Content-Type": [ + "application/vnd.api+json" + ] + }, + "statusCode": 200, + "reasonPhrase": "OK" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "8201cdd9-9227-4fff-4e9e-0a4698cd2373" + }, + { + "httpRequest": { + "headers": {}, + "method": "DELETE", + "path": "/api/v2/security/findings/automation/severity_modifier_rules/91bb2eb7-36d4-4b89-af25-1f5a30af5e51", + "keepAlive": false, + "secure": true + }, + "httpResponse": { + "headers": {}, + "statusCode": 204, + "reasonPhrase": "No Content" + }, + "times": { + "remainingTimes": 1 + }, + "timeToLive": { + "unlimited": true + }, + "id": "2a7cee45-3bb2-2486-2b16-c380043ce836" + } +] \ No newline at end of file diff --git a/src/test/resources/com/datadog/api/client/v2/api/given.json b/src/test/resources/com/datadog/api/client/v2/api/given.json index 6f57cbefde8..f753ff8c34f 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/given.json +++ b/src/test/resources/com/datadog/api/client/v2/api/given.json @@ -1354,6 +1354,18 @@ "tag": "Security Monitoring", "operationId": "CreateSecurityFindingsAutomationMuteRule" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"severity_modifier_rules\",\n \"attributes\": {\n \"name\": \"{{ unique }}\",\n \"enabled\": true,\n \"rule\": {\n \"finding_types\": [\"misconfiguration\"],\n \"query\": \"env:staging\"\n },\n \"action\": {\n \"type\": \"set\",\n \"severity\": \"low\"\n }\n }\n }\n}" + } + ], + "step": "there is a valid \"valid_severity_modifier_rule\" in the system", + "key": "valid_severity_modifier_rule", + "tag": "Security Monitoring", + "operationId": "CreateSecurityFindingsAutomationSeverityModifierRule" + }, { "parameters": [ { diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index 14f3d34a11d..86e4ed5cf57 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature @@ -952,6 +952,30 @@ Feature: Security Monitoring And the response "data.attributes.exclusion_filters[0].name" is equal to "Exclude staging" And the response "data.attributes.exclusion_filters[0].query" is equal to "source:staging" + @generated @skip @team:DataDog/k9-automation + Scenario: Create a severity modifier rule returns "Bad Request" response + Given operation "CreateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "CreateSecurityFindingsAutomationSeverityModifierRule" request + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-automation + Scenario: Create a severity modifier rule returns "Successfully created the severity modifier rule" response + Given operation "CreateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "CreateSecurityFindingsAutomationSeverityModifierRule" request + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 201 Successfully created the severity modifier rule + + @generated @skip @team:DataDog/k9-automation + Scenario: Create a severity modifier rule returns "Unprocessable Entity" response + Given operation "CreateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "CreateSecurityFindingsAutomationSeverityModifierRule" request + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 422 Unprocessable Entity + @generated @skip @team:DataDog/cloud-siem Scenario: Create a suppression rule returns "Bad Request" response Given new "CreateSecurityMonitoringSuppression" request @@ -1265,6 +1289,23 @@ Feature: Security Monitoring When the request is sent Then the response status is 204 OK + @generated @skip @team:DataDog/k9-automation + Scenario: Delete a severity modifier rule returns "Not Found" response + Given operation "DeleteSecurityFindingsAutomationSeverityModifierRule" enabled + And new "DeleteSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-automation + Scenario: Delete a severity modifier rule returns "Rule successfully deleted." response + Given operation "DeleteSecurityFindingsAutomationSeverityModifierRule" enabled + And there is a valid "valid_severity_modifier_rule" in the system + And new "DeleteSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "valid_severity_modifier_rule.data.id" + When the request is sent + Then the response status is 204 Rule successfully deleted. + @team:DataDog/cloud-security-posture-management Scenario: Delete a signal-based notification rule returns "Not Found" response Given new "DeleteSignalNotificationRule" request @@ -1866,6 +1907,25 @@ Feature: Security Monitoring And the response "data.attributes.exclusion_filters[0].name" is equal to "Exclude logs from staging" And the response "data.attributes.exclusion_filters[0].query" is equal to "source:staging" + @generated @skip @team:DataDog/k9-automation + Scenario: Get a severity modifier rule returns "Not Found" response + Given operation "GetSecurityFindingsAutomationSeverityModifierRule" enabled + And new "GetSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @team:DataDog/k9-automation + Scenario: Get a severity modifier rule returns "Successfully retrieved the severity modifier rule" response + Given operation "GetSecurityFindingsAutomationSeverityModifierRule" enabled + And there is a valid "valid_severity_modifier_rule" in the system + And new "GetSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "valid_severity_modifier_rule.data.id" + When the request is sent + Then the response status is 200 Successfully retrieved the severity modifier rule + And the response "data.id" is equal to "{{ valid_severity_modifier_rule.data.id }}" + And the response "data.type" is equal to "severity_modifier_rules" + @replay-only @team:DataDog/cloud-siem Scenario: Get a signal's details returns "Not Found" response Given new "GetSecurityMonitoringSignal" request @@ -1987,6 +2047,15 @@ Feature: Security Monitoring And the response "data" has item with field "attributes.filtered_data_type" with value "logs" And the response "data" has item with field "attributes.is_builtin" with value true + @team:DataDog/k9-automation + Scenario: Get all severity modifier rules returns "Successfully retrieved the list of severity modifier rules" response + Given operation "ListSecurityFindingsAutomationSeverityModifierRules" enabled + And there is a valid "valid_severity_modifier_rule" in the system + And new "ListSecurityFindingsAutomationSeverityModifierRules" request + When the request is sent + Then the response status is 200 Successfully retrieved the list of severity modifier rules + And the response "data" has item with field "id" with value "{{ valid_severity_modifier_rule.data.id }}" + @generated @skip @team:DataDog/cloud-siem Scenario: Get all suppression rules returns "OK" response Given new "ListSecurityMonitoringSuppressions" request @@ -2906,6 +2975,31 @@ Feature: Security Monitoring When the request is sent Then the response status is 422 Unprocessable Entity + @generated @skip @team:DataDog/k9-automation + Scenario: Reorder severity modifier rules returns "Bad Request" response + Given operation "ReorderSecurityFindingsAutomationSeverityModifierRules" enabled + And new "ReorderSecurityFindingsAutomationSeverityModifierRules" request + And body with value {"data": [{"id": "00000000-0000-0000-0000-000000000000", "type": "severity_modifier_rules"}]} + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/k9-automation + Scenario: Reorder severity modifier rules returns "Successfully reordered the severity modifier rules" response + Given operation "ReorderSecurityFindingsAutomationSeverityModifierRules" enabled + And there is a valid "valid_severity_modifier_rule" in the system + And new "ReorderSecurityFindingsAutomationSeverityModifierRules" request + And body with value {"data": [{"id": "{{ valid_severity_modifier_rule.data.id }}", "type": "severity_modifier_rules"}]} + When the request is sent + Then the response status is 200 Successfully reordered the severity modifier rules + + @generated @skip @team:DataDog/k9-automation + Scenario: Reorder severity modifier rules returns "Unprocessable Entity" response + Given operation "ReorderSecurityFindingsAutomationSeverityModifierRules" enabled + And new "ReorderSecurityFindingsAutomationSeverityModifierRules" request + And body with value {"data": [{"id": "00000000-0000-0000-0000-000000000000", "type": "severity_modifier_rules"}]} + When the request is sent + Then the response status is 422 Unprocessable Entity + @generated @skip @team:DataDog/k9-automation Scenario: Reorder ticket creation rules returns "Bad Request" response Given operation "ReorderSecurityFindingsAutomationTicketCreationRules" enabled @@ -3390,6 +3484,42 @@ Feature: Security Monitoring And the response "data.attributes.filtered_data_type" is equal to "logs" And the response "data.attributes.name" is equal to "{{ unique }}" + @generated @skip @team:DataDog/k9-automation + Scenario: Update a severity modifier rule returns "Bad Request" response + Given operation "UpdateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "UpdateSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-automation + Scenario: Update a severity modifier rule returns "Not Found" response + Given operation "UpdateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "UpdateSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-automation + Scenario: Update a severity modifier rule returns "Successfully updated the severity modifier rule" response + Given operation "UpdateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "UpdateSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 200 Successfully updated the severity modifier rule + + @generated @skip @team:DataDog/k9-automation + Scenario: Update a severity modifier rule returns "Unprocessable Entity" response + Given operation "UpdateSecurityFindingsAutomationSeverityModifierRule" enabled + And new "UpdateSecurityFindingsAutomationSeverityModifierRule" request + And request contains "rule_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"action": {"description": "Lower severity for dev environment noise", "severity": "low", "type": "set"}, "enabled": true, "name": "Downgrade misconfigurations in dev", "rule": {"finding_types": ["misconfiguration"], "query": "env:prod team:platform"}}, "type": "severity_modifier_rules"}} + When the request is sent + Then the response status is 422 Unprocessable Entity + @generated @skip @team:DataDog/cloud-siem Scenario: Update a suppression rule returns "Bad Request" response Given new "UpdateSecurityMonitoringSuppression" request diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 9c1ff8a4f2f..e5b7bfb5910 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/undo.json @@ -7454,6 +7454,49 @@ "type": "idempotent" } }, + "ListSecurityFindingsAutomationSeverityModifierRules": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "CreateSecurityFindingsAutomationSeverityModifierRule": { + "tag": "Security Monitoring", + "undo": { + "operationId": "DeleteSecurityFindingsAutomationSeverityModifierRule", + "parameters": [ + { + "name": "rule_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "ReorderSecurityFindingsAutomationSeverityModifierRules": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "DeleteSecurityFindingsAutomationSeverityModifierRule": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "GetSecurityFindingsAutomationSeverityModifierRule": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "UpdateSecurityFindingsAutomationSeverityModifierRule": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, "ListSecurityFindingsAutomationTicketCreationRules": { "tag": "Security Monitoring", "undo": {