From cd886d0219902f0a10b2a5d613ff764a2f6776b9 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 4 Feb 2026 12:52:48 +0000 Subject: [PATCH] Regenerate client from commit e7ccb5f of spec repo --- .generator/schemas/v2/openapi.yaml | 435 +++++++++++++++++ .../AssignIntegrationIssues.java | 51 ++ .../security-monitoring/CreateJiraIssue.java | 85 ++++ .../GetJiraIssueMetadata.java | 27 ++ .../com/datadog/api/client/ApiClient.java | 3 + .../client/v2/api/SecurityMonitoringApi.java | 456 ++++++++++++++++++ ...rationAssignmentDataAttributesRequest.java | 223 +++++++++ ...AssignmentDataAttributesRequestAction.java | 65 +++ ...gnmentDataAttributesRequestAssignment.java | 157 ++++++ ...onAssignmentDataAttributesRequestType.java | 65 +++ .../IntegrationAssignmentDataRequest.java | 212 ++++++++ .../model/IntegrationAssignmentRequest.java | 147 ++++++ .../v2/model/IntegrationAssignmentType.java | 57 +++ .../model/JiraIssueDataAttributesRequest.java | 329 +++++++++++++ .../JiraIssueDataAttributesRequestMode.java | 61 +++ .../client/v2/model/JiraIssueDataMeta.java | 190 ++++++++ .../client/v2/model/JiraIssueDataRequest.java | 239 +++++++++ .../api/client/v2/model/JiraIssueFinding.java | 365 ++++++++++++++ .../client/v2/model/JiraIssueFindingId.java | 229 +++++++++ .../api/client/v2/model/JiraIssueRequest.java | 145 ++++++ .../api/client/v2/model/JiraIssueType.java | 53 ++ ...aIssuesMetadataDataAttributesResponse.java | 204 ++++++++ .../model/JiraIssuesMetadataDataResponse.java | 212 ++++++++ .../v2/model/JiraIssuesMetadataResponse.java | 147 ++++++ .../v2/model/JiraIssuesMetadataType.java | 57 +++ .../client/v2/api/security_monitoring.feature | 56 +++ .../com/datadog/api/client/v2/api/undo.json | 22 + 27 files changed, 4292 insertions(+) create mode 100644 examples/v2/security-monitoring/AssignIntegrationIssues.java create mode 100644 examples/v2/security-monitoring/CreateJiraIssue.java create mode 100644 examples/v2/security-monitoring/GetJiraIssueMetadata.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAction.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAssignment.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequestMode.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueDataMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueFinding.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueFindingId.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssueType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataAttributesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataType.java diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index a8908359f48..3fc5b628a32 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -31020,6 +31020,84 @@ components: type: string type: array type: object + IntegrationAssignmentDataAttributesRequest: + properties: + action: + $ref: '#/components/schemas/IntegrationAssignmentDataAttributesRequestAction' + assignment: + $ref: '#/components/schemas/IntegrationAssignmentDataAttributesRequestAssignment' + type: + $ref: '#/components/schemas/IntegrationAssignmentDataAttributesRequestType' + required: + - action + - type + - assignment + type: object + IntegrationAssignmentDataAttributesRequestAction: + description: Action to perform on the assignment. Can be "assign" or "un_assign". + enum: + - assign + - un_assign + example: assign + type: string + x-enum-varnames: + - ASSIGN + - UN_ASSIGN + IntegrationAssignmentDataAttributesRequestAssignment: + properties: + jira: + additionalProperties: + items: + type: string + type: array + description: Map of Jira issue URLs to lists of finding IDs. + example: + https://jira.example.com/browse/SEC-123: + - MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg= + type: object + required: + - jira + type: object + IntegrationAssignmentDataAttributesRequestType: + description: Type of the security issues. Can be "findings" or "vulnerabilities". + enum: + - findings + - vulnerabilities + example: findings + type: string + x-enum-varnames: + - FINDINGS + - VULNERABILITIES + IntegrationAssignmentDataRequest: + properties: + attributes: + $ref: '#/components/schemas/IntegrationAssignmentDataAttributesRequest' + id: + description: Unique identifier of the integration assignment. + example: some_id + type: string + type: + $ref: '#/components/schemas/IntegrationAssignmentType' + required: + - id + - type + - attributes + type: object + IntegrationAssignmentRequest: + properties: + data: + $ref: '#/components/schemas/IntegrationAssignmentDataRequest' + required: + - data + type: object + IntegrationAssignmentType: + description: Integration assignment resource type. + enum: + - issue_assignment + example: issue_assignment + type: string + x-enum-varnames: + - ISSUE_ASSIGNMENT IntegrationIncident: description: Incident integration settings properties: @@ -32337,6 +32415,156 @@ components: $ref: '#/components/schemas/Case3rdPartyTicketStatus' readOnly: true type: object + JiraIssueDataAttributesRequest: + properties: + account_id: + description: Jira account identifier. + example: f7ccdf99-0e22-4378-bdf9-03fde5379fea + type: string + fields: + description: Custom fields for the Jira issue. + example: null + nullable: true + type: object + issue_type: + description: Jira issue type name. + example: story + type: string + issuetype_id: + description: Jira issue type identifier. + example: '1235' + type: string + mode: + $ref: '#/components/schemas/JiraIssueDataAttributesRequestMode' + project_id: + description: Jira project identifier. + example: '1234' + type: string + project_key: + description: Jira project key. + example: SEC + type: string + required: + - account_id + - project_id + - issuetype_id + - project_key + - issue_type + - fields + type: object + JiraIssueDataAttributesRequestMode: + description: Mode for creating the Jira issue. Can be "single" or "multiple". + enum: + - single + - multiple + example: single + type: string + x-enum-varnames: + - SINGLE + - MULTIPLE + JiraIssueDataMeta: + properties: + findings: + items: + $ref: '#/components/schemas/JiraIssueFinding' + type: array + vulnerabilities: + items: + $ref: '#/components/schemas/JiraIssueFinding' + type: array + type: object + JiraIssueDataRequest: + properties: + attributes: + $ref: '#/components/schemas/JiraIssueDataAttributesRequest' + id: + description: Unique identifier of the Jira issue request. + example: ID + type: string + meta: + $ref: '#/components/schemas/JiraIssueDataMeta' + type: + $ref: '#/components/schemas/JiraIssueType' + required: + - id + - type + - attributes + - meta + type: object + JiraIssueFinding: + properties: + description: + description: Description of the finding. + example: Description + type: string + ids: + items: + $ref: '#/components/schemas/JiraIssueFindingId' + type: array + impacted: + description: Number of impacted resources. + example: 1 + format: int64 + type: integer + references: + description: References for the finding. + example: '' + type: string + remediation: + description: Remediation instructions for the finding. + example: Remediation + type: string + severity: + $ref: '#/components/schemas/FindingStatus' + title: + description: Title of the finding. + example: Title + type: string + type: + description: Type of the finding. + example: ciem + type: string + required: + - title + - description + - remediation + - references + - severity + - type + - ids + type: object + JiraIssueFindingId: + properties: + discovered: + description: Timestamp when the finding was discovered. + example: 123213123 + format: int64 + type: integer + id: + description: Identifier of the finding. + example: afa-afa-hze + type: string + resource: + description: Resource associated with the finding. + example: Resource + type: string + tags: + description: Tags associated with the finding. + example: akjasd:asdsad + type: string + required: + - id + - resource + - discovered + - tags + type: object + JiraIssueRequest: + properties: + data: + $ref: '#/components/schemas/JiraIssueDataRequest' + required: + - data + type: object JiraIssueResult: description: Jira issue information properties: @@ -32528,6 +32756,14 @@ components: required: - data type: object + JiraIssueType: + description: Jira issue resource type. + enum: + - jira_issue + example: jira_issue + type: string + x-enum-varnames: + - JIRA_ISSUE JiraIssuesDataType: default: jira_issues description: Jira issues resource type. @@ -32537,6 +32773,55 @@ components: type: string x-enum-varnames: - JIRA_ISSUES + JiraIssuesMetadataDataAttributesResponse: + properties: + account_id: + description: Jira account identifier. + example: jira-account-1234 + type: string + issue_type_id: + description: Jira issue type identifier. + example: '12356' + type: string + project_id: + description: Jira project identifier. + example: jira-project-1234 + type: string + required: + - account_id + - issue_type_id + - project_id + type: object + JiraIssuesMetadataDataResponse: + properties: + attributes: + $ref: '#/components/schemas/JiraIssuesMetadataDataAttributesResponse' + id: + description: Jira issue URL. + example: https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-103394 + type: string + type: + $ref: '#/components/schemas/JiraIssuesMetadataType' + required: + - id + - type + - attributes + type: object + JiraIssuesMetadataResponse: + properties: + data: + $ref: '#/components/schemas/JiraIssuesMetadataDataResponse' + required: + - data + type: object + JiraIssuesMetadataType: + description: Jira issues metadata resource type. + enum: + - jira_issues + example: jira_issues + type: string + x-enum-varnames: + - JIRA_ISSUES JobCreateResponse: description: Run a threat hunting job response. properties: @@ -73275,6 +73560,105 @@ paths: permissions: - security_monitoring_rules_read - security_monitoring_rules_write + /api/v2/cloud_security_management/integrations/assign: + post: + description: 'Assign or un-assign Jira issues to security findings or vulnerabilities. + + This endpoint allows you to associate existing Jira issues with security findings + or vulnerabilities, or remove such associations.' + operationId: AssignIntegrationIssues + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IntegrationAssignmentRequest' + required: true + responses: + '202': + description: Accepted + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Assign or un-assign Jira issues to security findings + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_monitoring_findings_write + - appsec_vm_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/cloud_security_management/jira_issues: + post: + description: 'Create Jira issues for security findings or vulnerabilities. + + This endpoint creates new Jira issues based on the provided security findings + or vulnerability information. The operation is asynchronous and returns immediately + with a 202 Accepted status.' + operationId: CreateJiraIssue + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/JiraIssueRequest' + required: true + responses: + '202': + description: Accepted + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + '500': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Internal Server Error + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Create Jira issues for security findings + tags: + - Security Monitoring + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - security_monitoring_findings_write + - appsec_vm_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/cloud_security_management/resource_filters: get: description: List resource filters. @@ -92151,6 +92535,57 @@ paths: permissions: - security_monitoring_findings_write - appsec_vm_write + /api/v2/security/findings/jira_issues/metadata: + get: + description: 'Retrieve metadata for a Jira issue. + + This endpoint returns metadata about a Jira issue, including account ID, issue + type ID, and project ID, based on the provided Jira issue URL.' + operationId: GetJiraIssueMetadata + parameters: + - description: The Jira issue URL. + example: https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-103394 + in: query + name: url + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/JiraIssuesMetadataResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get Jira issue metadata + tags: + - Security Monitoring + x-permission: + operator: OR + permissions: + - security_monitoring_findings_read + - appsec_vm_read + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/security/findings/search: post: description: 'Get a list of security findings that match a search query. [See diff --git a/examples/v2/security-monitoring/AssignIntegrationIssues.java b/examples/v2/security-monitoring/AssignIntegrationIssues.java new file mode 100644 index 00000000000..67e49ee2809 --- /dev/null +++ b/examples/v2/security-monitoring/AssignIntegrationIssues.java @@ -0,0 +1,51 @@ +// Assign or un-assign Jira issues to security findings returns "Accepted" 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.IntegrationAssignmentDataAttributesRequest; +import com.datadog.api.client.v2.model.IntegrationAssignmentDataAttributesRequestAction; +import com.datadog.api.client.v2.model.IntegrationAssignmentDataAttributesRequestAssignment; +import com.datadog.api.client.v2.model.IntegrationAssignmentDataAttributesRequestType; +import com.datadog.api.client.v2.model.IntegrationAssignmentDataRequest; +import com.datadog.api.client.v2.model.IntegrationAssignmentRequest; +import com.datadog.api.client.v2.model.IntegrationAssignmentType; +import java.util.Collections; +import java.util.Map; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.assignIntegrationIssues", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + IntegrationAssignmentRequest body = + new IntegrationAssignmentRequest() + .data( + new IntegrationAssignmentDataRequest() + .attributes( + new IntegrationAssignmentDataAttributesRequest() + .action(IntegrationAssignmentDataAttributesRequestAction.ASSIGN) + .assignment( + new IntegrationAssignmentDataAttributesRequestAssignment() + .jira( + Map.ofEntries( + Map.entry( + "https://jira.example.com/browse/SEC-123", + Collections.singletonList( + "MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="))))) + .type(IntegrationAssignmentDataAttributesRequestType.FINDINGS)) + .id("some_id") + .type(IntegrationAssignmentType.ISSUE_ASSIGNMENT)); + + try { + apiInstance.assignIntegrationIssues(body); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#assignIntegrationIssues"); + 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/CreateJiraIssue.java b/examples/v2/security-monitoring/CreateJiraIssue.java new file mode 100644 index 00000000000..51b6f868312 --- /dev/null +++ b/examples/v2/security-monitoring/CreateJiraIssue.java @@ -0,0 +1,85 @@ +// Create Jira issues for security findings returns "Accepted" 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.FindingStatus; +import com.datadog.api.client.v2.model.JiraIssueDataAttributesRequest; +import com.datadog.api.client.v2.model.JiraIssueDataAttributesRequestMode; +import com.datadog.api.client.v2.model.JiraIssueDataMeta; +import com.datadog.api.client.v2.model.JiraIssueDataRequest; +import com.datadog.api.client.v2.model.JiraIssueFinding; +import com.datadog.api.client.v2.model.JiraIssueFindingId; +import com.datadog.api.client.v2.model.JiraIssueRequest; +import com.datadog.api.client.v2.model.JiraIssueType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createJiraIssue", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + JiraIssueRequest body = + new JiraIssueRequest() + .data( + new JiraIssueDataRequest() + .attributes( + new JiraIssueDataAttributesRequest() + .accountId("f7ccdf99-0e22-4378-bdf9-03fde5379fea") + .fields(null) + .issueType("story") + .issuetypeId("1235") + .mode(JiraIssueDataAttributesRequestMode.SINGLE) + .projectId("1234") + .projectKey("SEC")) + .id("ID") + .meta( + new JiraIssueDataMeta() + .findings( + Collections.singletonList( + new JiraIssueFinding() + .description("Description") + .ids( + Collections.singletonList( + new JiraIssueFindingId() + .discovered(123213123L) + .id("afa-afa-hze") + .resource("Resource") + .tags("akjasd:asdsad"))) + .impacted(1L) + .references("") + .remediation("Remediation") + .severity(FindingStatus.CRITICAL) + .title("Title") + .type("ciem"))) + .vulnerabilities( + Collections.singletonList( + new JiraIssueFinding() + .description("Description") + .ids( + Collections.singletonList( + new JiraIssueFindingId() + .discovered(123213123L) + .id("afa-afa-hze") + .resource("Resource") + .tags("akjasd:asdsad"))) + .impacted(1L) + .references("") + .remediation("Remediation") + .severity(FindingStatus.CRITICAL) + .title("Title") + .type("ciem")))) + .type(JiraIssueType.JIRA_ISSUE)); + + try { + apiInstance.createJiraIssue(body); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#createJiraIssue"); + 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/GetJiraIssueMetadata.java b/examples/v2/security-monitoring/GetJiraIssueMetadata.java new file mode 100644 index 00000000000..38f7ed30ac9 --- /dev/null +++ b/examples/v2/security-monitoring/GetJiraIssueMetadata.java @@ -0,0 +1,27 @@ +// Get Jira issue metadata returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.SecurityMonitoringApi; +import com.datadog.api.client.v2.model.JiraIssuesMetadataResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.getJiraIssueMetadata", true); + SecurityMonitoringApi apiInstance = new SecurityMonitoringApi(defaultClient); + + try { + JiraIssuesMetadataResponse result = + apiInstance.getJiraIssueMetadata( + "https://datadoghq-sandbox-538.atlassian.net/browse/CSMSEC-103394"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling SecurityMonitoringApi#getJiraIssueMetadata"); + 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 ed7b5418859..3027f619ddd 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -776,12 +776,15 @@ public class ApiClient { put("v2.listAPIs", false); put("v2.updateOpenAPI", false); put("v2.activateContentPack", false); + put("v2.assignIntegrationIssues", false); put("v2.cancelThreatHuntingJob", false); put("v2.convertJobResultToSignal", false); + put("v2.createJiraIssue", false); put("v2.deactivateContentPack", false); put("v2.deleteThreatHuntingJob", false); put("v2.getContentPacksStates", false); put("v2.getFinding", false); + put("v2.getJiraIssueMetadata", false); put("v2.getRuleVersionHistory", false); put("v2.getSecretsRules", false); put("v2.getSecurityMonitoringHistsignal", 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 810817d80ec..5154ec5c655 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 @@ -33,6 +33,9 @@ import com.datadog.api.client.v2.model.GetRuleVersionHistoryResponse; import com.datadog.api.client.v2.model.GetSBOMResponse; import com.datadog.api.client.v2.model.GetSuppressionVersionHistoryResponse; +import com.datadog.api.client.v2.model.IntegrationAssignmentRequest; +import com.datadog.api.client.v2.model.JiraIssueRequest; +import com.datadog.api.client.v2.model.JiraIssuesMetadataResponse; import com.datadog.api.client.v2.model.JobCreateResponse; import com.datadog.api.client.v2.model.ListAssetsSBOMsResponse; import com.datadog.api.client.v2.model.ListFindingsResponse; @@ -298,6 +301,156 @@ public CompletableFuture> activateContentPackWithHttpInfoAsync null); } + /** + * Assign or un-assign Jira issues to security findings. + * + *

See {@link #assignIntegrationIssuesWithHttpInfo}. + * + * @param body (required) + * @throws ApiException if fails to make API call + */ + public void assignIntegrationIssues(IntegrationAssignmentRequest body) throws ApiException { + assignIntegrationIssuesWithHttpInfo(body); + } + + /** + * Assign or un-assign Jira issues to security findings. + * + *

See {@link #assignIntegrationIssuesWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture + */ + public CompletableFuture assignIntegrationIssuesAsync(IntegrationAssignmentRequest body) { + return assignIntegrationIssuesWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Assign or un-assign Jira issues to security findings or vulnerabilities. This endpoint allows + * you to associate existing Jira issues with security findings or vulnerabilities, or remove such + * associations. + * + * @param body (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
202 Accepted -
400 Bad Request -
404 Not Found -
429 Too many requests -
500 Internal Server Error -
+ */ + public ApiResponse assignIntegrationIssuesWithHttpInfo(IntegrationAssignmentRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "assignIntegrationIssues"; + 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 assignIntegrationIssues"); + } + // create path and map variables + String localVarPath = "/api/v2/cloud_security_management/integrations/assign"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.assignIntegrationIssues", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Assign or un-assign Jira issues to security findings. + * + *

See {@link #assignIntegrationIssuesWithHttpInfo}. + * + * @param body (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> assignIntegrationIssuesWithHttpInfoAsync( + IntegrationAssignmentRequest body) { + // Check if unstable operation is enabled + String operationId = "assignIntegrationIssues"; + 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 assignIntegrationIssues")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/cloud_security_management/integrations/assign"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.assignIntegrationIssues", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + /** * Attach security findings to a case. * @@ -1599,6 +1752,154 @@ public ApiResponse createCustomFrameworkWithHttpI new GenericType() {}); } + /** + * Create Jira issues for security findings. + * + *

See {@link #createJiraIssueWithHttpInfo}. + * + * @param body (required) + * @throws ApiException if fails to make API call + */ + public void createJiraIssue(JiraIssueRequest body) throws ApiException { + createJiraIssueWithHttpInfo(body); + } + + /** + * Create Jira issues for security findings. + * + *

See {@link #createJiraIssueWithHttpInfoAsync}. + * + * @param body (required) + * @return CompletableFuture + */ + public CompletableFuture createJiraIssueAsync(JiraIssueRequest body) { + return createJiraIssueWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create Jira issues for security findings or vulnerabilities. This endpoint creates new Jira + * issues based on the provided security findings or vulnerability information. The operation is + * asynchronous and returns immediately with a 202 Accepted status. + * + * @param body (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
202 Accepted -
400 Bad Request -
429 Too many requests -
500 Internal Server Error -
+ */ + public ApiResponse createJiraIssueWithHttpInfo(JiraIssueRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createJiraIssue"; + 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 createJiraIssue"); + } + // create path and map variables + String localVarPath = "/api/v2/cloud_security_management/jira_issues"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createJiraIssue", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Create Jira issues for security findings. + * + *

See {@link #createJiraIssueWithHttpInfo}. + * + * @param body (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> createJiraIssueWithHttpInfoAsync( + JiraIssueRequest body) { + // Check if unstable operation is enabled + String operationId = "createJiraIssue"; + 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 createJiraIssue")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/cloud_security_management/jira_issues"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.createJiraIssue", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + /** * Create Jira issues for security findings. * @@ -5179,6 +5480,161 @@ public CompletableFuture> getFindingWithHttpInfo new GenericType() {}); } + /** + * Get Jira issue metadata. + * + *

See {@link #getJiraIssueMetadataWithHttpInfo}. + * + * @param url The Jira issue URL. (required) + * @return JiraIssuesMetadataResponse + * @throws ApiException if fails to make API call + */ + public JiraIssuesMetadataResponse getJiraIssueMetadata(String url) throws ApiException { + return getJiraIssueMetadataWithHttpInfo(url).getData(); + } + + /** + * Get Jira issue metadata. + * + *

See {@link #getJiraIssueMetadataWithHttpInfoAsync}. + * + * @param url The Jira issue URL. (required) + * @return CompletableFuture<JiraIssuesMetadataResponse> + */ + public CompletableFuture getJiraIssueMetadataAsync(String url) { + return getJiraIssueMetadataWithHttpInfoAsync(url) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Retrieve metadata for a Jira issue. This endpoint returns metadata about a Jira issue, + * including account ID, issue type ID, and project ID, based on the provided Jira issue URL. + * + * @param url The Jira issue URL. (required) + * @return ApiResponse<JiraIssuesMetadataResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse getJiraIssueMetadataWithHttpInfo(String url) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "getJiraIssueMetadata"; + 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 'url' is set + if (url == null) { + throw new ApiException( + 400, "Missing the required parameter 'url' when calling getJiraIssueMetadata"); + } + // create path and map variables + String localVarPath = "/api/v2/security/findings/jira_issues/metadata"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "url", url)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getJiraIssueMetadata", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Get Jira issue metadata. + * + *

See {@link #getJiraIssueMetadataWithHttpInfo}. + * + * @param url The Jira issue URL. (required) + * @return CompletableFuture<ApiResponse<JiraIssuesMetadataResponse>> + */ + public CompletableFuture> + getJiraIssueMetadataWithHttpInfoAsync(String url) { + // Check if unstable operation is enabled + String operationId = "getJiraIssueMetadata"; + 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 'url' is set + if (url == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'url' when calling getJiraIssueMetadata")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/security/findings/jira_issues/metadata"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "url", url)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.SecurityMonitoringApi.getJiraIssueMetadata", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** Manage optional parameters to getResourceEvaluationFilters. */ public static class GetResourceEvaluationFiltersOptionalParameters { private String cloudProvider; diff --git a/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequest.java new file mode 100644 index 00000000000..11df6b71311 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequest.java @@ -0,0 +1,223 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + IntegrationAssignmentDataAttributesRequest.JSON_PROPERTY_ACTION, + IntegrationAssignmentDataAttributesRequest.JSON_PROPERTY_ASSIGNMENT, + IntegrationAssignmentDataAttributesRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class IntegrationAssignmentDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACTION = "action"; + private IntegrationAssignmentDataAttributesRequestAction action; + + public static final String JSON_PROPERTY_ASSIGNMENT = "assignment"; + private IntegrationAssignmentDataAttributesRequestAssignment assignment; + + public static final String JSON_PROPERTY_TYPE = "type"; + private IntegrationAssignmentDataAttributesRequestType type; + + public IntegrationAssignmentDataAttributesRequest() {} + + @JsonCreator + public IntegrationAssignmentDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ACTION) + IntegrationAssignmentDataAttributesRequestAction action, + @JsonProperty(required = true, value = JSON_PROPERTY_ASSIGNMENT) + IntegrationAssignmentDataAttributesRequestAssignment assignment, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) + IntegrationAssignmentDataAttributesRequestType type) { + this.action = action; + this.unparsed |= !action.isValid(); + this.assignment = assignment; + this.unparsed |= assignment.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public IntegrationAssignmentDataAttributesRequest action( + IntegrationAssignmentDataAttributesRequestAction action) { + this.action = action; + this.unparsed |= !action.isValid(); + return this; + } + + /** + * Action to perform on the assignment. Can be "assign" or "un_assign". + * + * @return action + */ + @JsonProperty(JSON_PROPERTY_ACTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public IntegrationAssignmentDataAttributesRequestAction getAction() { + return action; + } + + public void setAction(IntegrationAssignmentDataAttributesRequestAction action) { + if (!action.isValid()) { + this.unparsed = true; + } + this.action = action; + } + + public IntegrationAssignmentDataAttributesRequest assignment( + IntegrationAssignmentDataAttributesRequestAssignment assignment) { + this.assignment = assignment; + this.unparsed |= assignment.unparsed; + return this; + } + + /** + * Getassignment + * + * @return assignment + */ + @JsonProperty(JSON_PROPERTY_ASSIGNMENT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public IntegrationAssignmentDataAttributesRequestAssignment getAssignment() { + return assignment; + } + + public void setAssignment(IntegrationAssignmentDataAttributesRequestAssignment assignment) { + this.assignment = assignment; + } + + public IntegrationAssignmentDataAttributesRequest type( + IntegrationAssignmentDataAttributesRequestType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Type of the security issues. Can be "findings" or "vulnerabilities". + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public IntegrationAssignmentDataAttributesRequestType getType() { + return type; + } + + public void setType(IntegrationAssignmentDataAttributesRequestType 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 IntegrationAssignmentDataAttributesRequest + */ + @JsonAnySetter + public IntegrationAssignmentDataAttributesRequest 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 IntegrationAssignmentDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationAssignmentDataAttributesRequest integrationAssignmentDataAttributesRequest = + (IntegrationAssignmentDataAttributesRequest) o; + return Objects.equals(this.action, integrationAssignmentDataAttributesRequest.action) + && Objects.equals(this.assignment, integrationAssignmentDataAttributesRequest.assignment) + && Objects.equals(this.type, integrationAssignmentDataAttributesRequest.type) + && Objects.equals( + this.additionalProperties, + integrationAssignmentDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(action, assignment, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationAssignmentDataAttributesRequest {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" assignment: ").append(toIndentedString(assignment)).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/IntegrationAssignmentDataAttributesRequestAction.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAction.java new file mode 100644 index 00000000000..5d6f4481e6b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAction.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; + +/** Action to perform on the assignment. Can be "assign" or "un_assign". */ +@JsonSerialize( + using = + IntegrationAssignmentDataAttributesRequestAction + .IntegrationAssignmentDataAttributesRequestActionSerializer.class) +public class IntegrationAssignmentDataAttributesRequestAction extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("assign", "un_assign")); + + public static final IntegrationAssignmentDataAttributesRequestAction ASSIGN = + new IntegrationAssignmentDataAttributesRequestAction("assign"); + public static final IntegrationAssignmentDataAttributesRequestAction UN_ASSIGN = + new IntegrationAssignmentDataAttributesRequestAction("un_assign"); + + IntegrationAssignmentDataAttributesRequestAction(String value) { + super(value, allowedValues); + } + + public static class IntegrationAssignmentDataAttributesRequestActionSerializer + extends StdSerializer { + public IntegrationAssignmentDataAttributesRequestActionSerializer( + Class t) { + super(t); + } + + public IntegrationAssignmentDataAttributesRequestActionSerializer() { + this(null); + } + + @Override + public void serialize( + IntegrationAssignmentDataAttributesRequestAction value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static IntegrationAssignmentDataAttributesRequestAction fromValue(String value) { + return new IntegrationAssignmentDataAttributesRequestAction(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAssignment.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAssignment.java new file mode 100644 index 00000000000..e49f0e2a719 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestAssignment.java @@ -0,0 +1,157 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({IntegrationAssignmentDataAttributesRequestAssignment.JSON_PROPERTY_JIRA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class IntegrationAssignmentDataAttributesRequestAssignment { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_JIRA = "jira"; + private Map> jira = new HashMap>(); + + public IntegrationAssignmentDataAttributesRequestAssignment() {} + + @JsonCreator + public IntegrationAssignmentDataAttributesRequestAssignment( + @JsonProperty(required = true, value = JSON_PROPERTY_JIRA) Map> jira) { + this.jira = jira; + } + + public IntegrationAssignmentDataAttributesRequestAssignment jira(Map> jira) { + this.jira = jira; + return this; + } + + public IntegrationAssignmentDataAttributesRequestAssignment putJiraItem( + String key, List jiraItem) { + this.jira.put(key, jiraItem); + return this; + } + + /** + * Map of Jira issue URLs to lists of finding IDs. + * + * @return jira + */ + @JsonProperty(JSON_PROPERTY_JIRA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map> getJira() { + return jira; + } + + public void setJira(Map> jira) { + this.jira = jira; + } + + /** + * 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 IntegrationAssignmentDataAttributesRequestAssignment + */ + @JsonAnySetter + public IntegrationAssignmentDataAttributesRequestAssignment 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 IntegrationAssignmentDataAttributesRequestAssignment object is equal to o. + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationAssignmentDataAttributesRequestAssignment + integrationAssignmentDataAttributesRequestAssignment = + (IntegrationAssignmentDataAttributesRequestAssignment) o; + return Objects.equals(this.jira, integrationAssignmentDataAttributesRequestAssignment.jira) + && Objects.equals( + this.additionalProperties, + integrationAssignmentDataAttributesRequestAssignment.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(jira, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationAssignmentDataAttributesRequestAssignment {\n"); + sb.append(" jira: ").append(toIndentedString(jira)).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/IntegrationAssignmentDataAttributesRequestType.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestType.java new file mode 100644 index 00000000000..755dc78c3c4 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataAttributesRequestType.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; + +/** Type of the security issues. Can be "findings" or "vulnerabilities". */ +@JsonSerialize( + using = + IntegrationAssignmentDataAttributesRequestType + .IntegrationAssignmentDataAttributesRequestTypeSerializer.class) +public class IntegrationAssignmentDataAttributesRequestType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("findings", "vulnerabilities")); + + public static final IntegrationAssignmentDataAttributesRequestType FINDINGS = + new IntegrationAssignmentDataAttributesRequestType("findings"); + public static final IntegrationAssignmentDataAttributesRequestType VULNERABILITIES = + new IntegrationAssignmentDataAttributesRequestType("vulnerabilities"); + + IntegrationAssignmentDataAttributesRequestType(String value) { + super(value, allowedValues); + } + + public static class IntegrationAssignmentDataAttributesRequestTypeSerializer + extends StdSerializer { + public IntegrationAssignmentDataAttributesRequestTypeSerializer( + Class t) { + super(t); + } + + public IntegrationAssignmentDataAttributesRequestTypeSerializer() { + this(null); + } + + @Override + public void serialize( + IntegrationAssignmentDataAttributesRequestType value, + JsonGenerator jgen, + SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static IntegrationAssignmentDataAttributesRequestType fromValue(String value) { + return new IntegrationAssignmentDataAttributesRequestType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataRequest.java new file mode 100644 index 00000000000..f12995db813 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentDataRequest.java @@ -0,0 +1,212 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + IntegrationAssignmentDataRequest.JSON_PROPERTY_ATTRIBUTES, + IntegrationAssignmentDataRequest.JSON_PROPERTY_ID, + IntegrationAssignmentDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class IntegrationAssignmentDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private IntegrationAssignmentDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private IntegrationAssignmentType type; + + public IntegrationAssignmentDataRequest() {} + + @JsonCreator + public IntegrationAssignmentDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + IntegrationAssignmentDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) IntegrationAssignmentType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public IntegrationAssignmentDataRequest attributes( + IntegrationAssignmentDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Getattributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public IntegrationAssignmentDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(IntegrationAssignmentDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public IntegrationAssignmentDataRequest id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the integration assignment. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public IntegrationAssignmentDataRequest type(IntegrationAssignmentType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Integration assignment resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public IntegrationAssignmentType getType() { + return type; + } + + public void setType(IntegrationAssignmentType 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 IntegrationAssignmentDataRequest + */ + @JsonAnySetter + public IntegrationAssignmentDataRequest 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 IntegrationAssignmentDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationAssignmentDataRequest integrationAssignmentDataRequest = + (IntegrationAssignmentDataRequest) o; + return Objects.equals(this.attributes, integrationAssignmentDataRequest.attributes) + && Objects.equals(this.id, integrationAssignmentDataRequest.id) + && Objects.equals(this.type, integrationAssignmentDataRequest.type) + && Objects.equals( + this.additionalProperties, integrationAssignmentDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationAssignmentDataRequest {\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/IntegrationAssignmentRequest.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentRequest.java new file mode 100644 index 00000000000..65a2c4aa0a0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentRequest.java @@ -0,0 +1,147 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({IntegrationAssignmentRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class IntegrationAssignmentRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private IntegrationAssignmentDataRequest data; + + public IntegrationAssignmentRequest() {} + + @JsonCreator + public IntegrationAssignmentRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + IntegrationAssignmentDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public IntegrationAssignmentRequest data(IntegrationAssignmentDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public IntegrationAssignmentDataRequest getData() { + return data; + } + + public void setData(IntegrationAssignmentDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return IntegrationAssignmentRequest + */ + @JsonAnySetter + public IntegrationAssignmentRequest 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 IntegrationAssignmentRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationAssignmentRequest integrationAssignmentRequest = (IntegrationAssignmentRequest) o; + return Objects.equals(this.data, integrationAssignmentRequest.data) + && Objects.equals( + this.additionalProperties, integrationAssignmentRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationAssignmentRequest {\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/IntegrationAssignmentType.java b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentType.java new file mode 100644 index 00000000000..fb707dba485 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/IntegrationAssignmentType.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; + +/** Integration assignment resource type. */ +@JsonSerialize(using = IntegrationAssignmentType.IntegrationAssignmentTypeSerializer.class) +public class IntegrationAssignmentType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("issue_assignment")); + + public static final IntegrationAssignmentType ISSUE_ASSIGNMENT = + new IntegrationAssignmentType("issue_assignment"); + + IntegrationAssignmentType(String value) { + super(value, allowedValues); + } + + public static class IntegrationAssignmentTypeSerializer + extends StdSerializer { + public IntegrationAssignmentTypeSerializer(Class t) { + super(t); + } + + public IntegrationAssignmentTypeSerializer() { + this(null); + } + + @Override + public void serialize( + IntegrationAssignmentType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static IntegrationAssignmentType fromValue(String value) { + return new IntegrationAssignmentType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequest.java new file mode 100644 index 00000000000..c483c241276 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequest.java @@ -0,0 +1,329 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + JiraIssueDataAttributesRequest.JSON_PROPERTY_ACCOUNT_ID, + JiraIssueDataAttributesRequest.JSON_PROPERTY_FIELDS, + JiraIssueDataAttributesRequest.JSON_PROPERTY_ISSUE_TYPE, + JiraIssueDataAttributesRequest.JSON_PROPERTY_ISSUETYPE_ID, + JiraIssueDataAttributesRequest.JSON_PROPERTY_MODE, + JiraIssueDataAttributesRequest.JSON_PROPERTY_PROJECT_ID, + JiraIssueDataAttributesRequest.JSON_PROPERTY_PROJECT_KEY +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssueDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACCOUNT_ID = "account_id"; + private String accountId; + + public static final String JSON_PROPERTY_FIELDS = "fields"; + private Object fields; + + public static final String JSON_PROPERTY_ISSUE_TYPE = "issue_type"; + private String issueType; + + public static final String JSON_PROPERTY_ISSUETYPE_ID = "issuetype_id"; + private String issuetypeId; + + public static final String JSON_PROPERTY_MODE = "mode"; + private JiraIssueDataAttributesRequestMode mode; + + public static final String JSON_PROPERTY_PROJECT_ID = "project_id"; + private String projectId; + + public static final String JSON_PROPERTY_PROJECT_KEY = "project_key"; + private String projectKey; + + public JiraIssueDataAttributesRequest() {} + + @JsonCreator + public JiraIssueDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ACCOUNT_ID) String accountId, + @JsonProperty(required = true, value = JSON_PROPERTY_FIELDS) Object fields, + @JsonProperty(required = true, value = JSON_PROPERTY_ISSUE_TYPE) String issueType, + @JsonProperty(required = true, value = JSON_PROPERTY_ISSUETYPE_ID) String issuetypeId, + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_ID) String projectId, + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_KEY) String projectKey) { + this.accountId = accountId; + this.fields = fields; + if (fields != null) {} + this.issueType = issueType; + this.issuetypeId = issuetypeId; + this.projectId = projectId; + this.projectKey = projectKey; + } + + public JiraIssueDataAttributesRequest accountId(String accountId) { + this.accountId = accountId; + return this; + } + + /** + * Jira account identifier. + * + * @return accountId + */ + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public JiraIssueDataAttributesRequest fields(Object fields) { + this.fields = fields; + if (fields != null) {} + return this; + } + + /** + * Custom fields for the Jira issue. + * + * @return fields + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FIELDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Object getFields() { + return fields; + } + + public void setFields(Object fields) { + this.fields = fields; + } + + public JiraIssueDataAttributesRequest issueType(String issueType) { + this.issueType = issueType; + return this; + } + + /** + * Jira issue type name. + * + * @return issueType + */ + @JsonProperty(JSON_PROPERTY_ISSUE_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getIssueType() { + return issueType; + } + + public void setIssueType(String issueType) { + this.issueType = issueType; + } + + public JiraIssueDataAttributesRequest issuetypeId(String issuetypeId) { + this.issuetypeId = issuetypeId; + return this; + } + + /** + * Jira issue type identifier. + * + * @return issuetypeId + */ + @JsonProperty(JSON_PROPERTY_ISSUETYPE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getIssuetypeId() { + return issuetypeId; + } + + public void setIssuetypeId(String issuetypeId) { + this.issuetypeId = issuetypeId; + } + + public JiraIssueDataAttributesRequest mode(JiraIssueDataAttributesRequestMode mode) { + this.mode = mode; + this.unparsed |= !mode.isValid(); + return this; + } + + /** + * Mode for creating the Jira issue. Can be "single" or "multiple". + * + * @return mode + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MODE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JiraIssueDataAttributesRequestMode getMode() { + return mode; + } + + public void setMode(JiraIssueDataAttributesRequestMode mode) { + if (!mode.isValid()) { + this.unparsed = true; + } + this.mode = mode; + } + + public JiraIssueDataAttributesRequest projectId(String projectId) { + this.projectId = projectId; + return this; + } + + /** + * Jira project identifier. + * + * @return projectId + */ + @JsonProperty(JSON_PROPERTY_PROJECT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public JiraIssueDataAttributesRequest projectKey(String projectKey) { + this.projectKey = projectKey; + return this; + } + + /** + * Jira project key. + * + * @return projectKey + */ + @JsonProperty(JSON_PROPERTY_PROJECT_KEY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProjectKey() { + return projectKey; + } + + public void setProjectKey(String projectKey) { + this.projectKey = projectKey; + } + + /** + * 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 JiraIssueDataAttributesRequest + */ + @JsonAnySetter + public JiraIssueDataAttributesRequest 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 JiraIssueDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssueDataAttributesRequest jiraIssueDataAttributesRequest = + (JiraIssueDataAttributesRequest) o; + return Objects.equals(this.accountId, jiraIssueDataAttributesRequest.accountId) + && Objects.equals(this.fields, jiraIssueDataAttributesRequest.fields) + && Objects.equals(this.issueType, jiraIssueDataAttributesRequest.issueType) + && Objects.equals(this.issuetypeId, jiraIssueDataAttributesRequest.issuetypeId) + && Objects.equals(this.mode, jiraIssueDataAttributesRequest.mode) + && Objects.equals(this.projectId, jiraIssueDataAttributesRequest.projectId) + && Objects.equals(this.projectKey, jiraIssueDataAttributesRequest.projectKey) + && Objects.equals( + this.additionalProperties, jiraIssueDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + accountId, + fields, + issueType, + issuetypeId, + mode, + projectId, + projectKey, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssueDataAttributesRequest {\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" fields: ").append(toIndentedString(fields)).append("\n"); + sb.append(" issueType: ").append(toIndentedString(issueType)).append("\n"); + sb.append(" issuetypeId: ").append(toIndentedString(issuetypeId)).append("\n"); + sb.append(" mode: ").append(toIndentedString(mode)).append("\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); + sb.append(" projectKey: ").append(toIndentedString(projectKey)).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/JiraIssueDataAttributesRequestMode.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequestMode.java new file mode 100644 index 00000000000..b1b54ef13ee --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataAttributesRequestMode.java @@ -0,0 +1,61 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Mode for creating the Jira issue. Can be "single" or "multiple". */ +@JsonSerialize( + using = JiraIssueDataAttributesRequestMode.JiraIssueDataAttributesRequestModeSerializer.class) +public class JiraIssueDataAttributesRequestMode extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("single", "multiple")); + + public static final JiraIssueDataAttributesRequestMode SINGLE = + new JiraIssueDataAttributesRequestMode("single"); + public static final JiraIssueDataAttributesRequestMode MULTIPLE = + new JiraIssueDataAttributesRequestMode("multiple"); + + JiraIssueDataAttributesRequestMode(String value) { + super(value, allowedValues); + } + + public static class JiraIssueDataAttributesRequestModeSerializer + extends StdSerializer { + public JiraIssueDataAttributesRequestModeSerializer( + Class t) { + super(t); + } + + public JiraIssueDataAttributesRequestModeSerializer() { + this(null); + } + + @Override + public void serialize( + JiraIssueDataAttributesRequestMode value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static JiraIssueDataAttributesRequestMode fromValue(String value) { + return new JiraIssueDataAttributesRequestMode(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataMeta.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataMeta.java new file mode 100644 index 00000000000..99c385df042 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataMeta.java @@ -0,0 +1,190 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({ + JiraIssueDataMeta.JSON_PROPERTY_FINDINGS, + JiraIssueDataMeta.JSON_PROPERTY_VULNERABILITIES +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssueDataMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_FINDINGS = "findings"; + private List findings = null; + + public static final String JSON_PROPERTY_VULNERABILITIES = "vulnerabilities"; + private List vulnerabilities = null; + + public JiraIssueDataMeta findings(List findings) { + this.findings = findings; + for (JiraIssueFinding item : findings) { + this.unparsed |= item.unparsed; + } + return this; + } + + public JiraIssueDataMeta addFindingsItem(JiraIssueFinding findingsItem) { + if (this.findings == null) { + this.findings = new ArrayList<>(); + } + this.findings.add(findingsItem); + this.unparsed |= findingsItem.unparsed; + return this; + } + + /** + * Getfindings + * + * @return findings + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_FINDINGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getFindings() { + return findings; + } + + public void setFindings(List findings) { + this.findings = findings; + } + + public JiraIssueDataMeta vulnerabilities(List vulnerabilities) { + this.vulnerabilities = vulnerabilities; + for (JiraIssueFinding item : vulnerabilities) { + this.unparsed |= item.unparsed; + } + return this; + } + + public JiraIssueDataMeta addVulnerabilitiesItem(JiraIssueFinding vulnerabilitiesItem) { + if (this.vulnerabilities == null) { + this.vulnerabilities = new ArrayList<>(); + } + this.vulnerabilities.add(vulnerabilitiesItem); + this.unparsed |= vulnerabilitiesItem.unparsed; + return this; + } + + /** + * Getvulnerabilities + * + * @return vulnerabilities + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_VULNERABILITIES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getVulnerabilities() { + return vulnerabilities; + } + + public void setVulnerabilities(List vulnerabilities) { + this.vulnerabilities = vulnerabilities; + } + + /** + * 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 JiraIssueDataMeta + */ + @JsonAnySetter + public JiraIssueDataMeta 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 JiraIssueDataMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssueDataMeta jiraIssueDataMeta = (JiraIssueDataMeta) o; + return Objects.equals(this.findings, jiraIssueDataMeta.findings) + && Objects.equals(this.vulnerabilities, jiraIssueDataMeta.vulnerabilities) + && Objects.equals(this.additionalProperties, jiraIssueDataMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(findings, vulnerabilities, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssueDataMeta {\n"); + sb.append(" findings: ").append(toIndentedString(findings)).append("\n"); + sb.append(" vulnerabilities: ").append(toIndentedString(vulnerabilities)).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/JiraIssueDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataRequest.java new file mode 100644 index 00000000000..d79730b5a10 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueDataRequest.java @@ -0,0 +1,239 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + JiraIssueDataRequest.JSON_PROPERTY_ATTRIBUTES, + JiraIssueDataRequest.JSON_PROPERTY_ID, + JiraIssueDataRequest.JSON_PROPERTY_META, + JiraIssueDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssueDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private JiraIssueDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_META = "meta"; + private JiraIssueDataMeta meta; + + public static final String JSON_PROPERTY_TYPE = "type"; + private JiraIssueType type; + + public JiraIssueDataRequest() {} + + @JsonCreator + public JiraIssueDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + JiraIssueDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_META) JiraIssueDataMeta meta, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) JiraIssueType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.meta = meta; + this.unparsed |= meta.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public JiraIssueDataRequest attributes(JiraIssueDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Getattributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssueDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(JiraIssueDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public JiraIssueDataRequest id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the Jira issue request. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public JiraIssueDataRequest meta(JiraIssueDataMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Getmeta + * + * @return meta + */ + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssueDataMeta getMeta() { + return meta; + } + + public void setMeta(JiraIssueDataMeta meta) { + this.meta = meta; + } + + public JiraIssueDataRequest type(JiraIssueType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Jira issue resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssueType getType() { + return type; + } + + public void setType(JiraIssueType 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 JiraIssueDataRequest + */ + @JsonAnySetter + public JiraIssueDataRequest 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 JiraIssueDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssueDataRequest jiraIssueDataRequest = (JiraIssueDataRequest) o; + return Objects.equals(this.attributes, jiraIssueDataRequest.attributes) + && Objects.equals(this.id, jiraIssueDataRequest.id) + && Objects.equals(this.meta, jiraIssueDataRequest.meta) + && Objects.equals(this.type, jiraIssueDataRequest.type) + && Objects.equals(this.additionalProperties, jiraIssueDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, meta, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssueDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueFinding.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueFinding.java new file mode 100644 index 00000000000..a20e7184bbc --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueFinding.java @@ -0,0 +1,365 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + JiraIssueFinding.JSON_PROPERTY_DESCRIPTION, + JiraIssueFinding.JSON_PROPERTY_IDS, + JiraIssueFinding.JSON_PROPERTY_IMPACTED, + JiraIssueFinding.JSON_PROPERTY_REFERENCES, + JiraIssueFinding.JSON_PROPERTY_REMEDIATION, + JiraIssueFinding.JSON_PROPERTY_SEVERITY, + JiraIssueFinding.JSON_PROPERTY_TITLE, + JiraIssueFinding.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssueFinding { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_IDS = "ids"; + private List ids = new ArrayList<>(); + + public static final String JSON_PROPERTY_IMPACTED = "impacted"; + private Long impacted; + + public static final String JSON_PROPERTY_REFERENCES = "references"; + private String references; + + public static final String JSON_PROPERTY_REMEDIATION = "remediation"; + private String remediation; + + public static final String JSON_PROPERTY_SEVERITY = "severity"; + private FindingStatus severity; + + public static final String JSON_PROPERTY_TITLE = "title"; + private String title; + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type; + + public JiraIssueFinding() {} + + @JsonCreator + public JiraIssueFinding( + @JsonProperty(required = true, value = JSON_PROPERTY_DESCRIPTION) String description, + @JsonProperty(required = true, value = JSON_PROPERTY_IDS) List ids, + @JsonProperty(required = true, value = JSON_PROPERTY_REFERENCES) String references, + @JsonProperty(required = true, value = JSON_PROPERTY_REMEDIATION) String remediation, + @JsonProperty(required = true, value = JSON_PROPERTY_SEVERITY) FindingStatus severity, + @JsonProperty(required = true, value = JSON_PROPERTY_TITLE) String title, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) String type) { + this.description = description; + this.ids = ids; + this.references = references; + this.remediation = remediation; + this.severity = severity; + this.unparsed |= !severity.isValid(); + this.title = title; + this.type = type; + } + + public JiraIssueFinding description(String description) { + this.description = description; + return this; + } + + /** + * Description of the finding. + * + * @return description + */ + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public JiraIssueFinding ids(List ids) { + this.ids = ids; + for (JiraIssueFindingId item : ids) { + this.unparsed |= item.unparsed; + } + return this; + } + + public JiraIssueFinding addIdsItem(JiraIssueFindingId idsItem) { + this.ids.add(idsItem); + this.unparsed |= idsItem.unparsed; + return this; + } + + /** + * Getids + * + * @return ids + */ + @JsonProperty(JSON_PROPERTY_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getIds() { + return ids; + } + + public void setIds(List ids) { + this.ids = ids; + } + + public JiraIssueFinding impacted(Long impacted) { + this.impacted = impacted; + return this; + } + + /** + * Number of impacted resources. + * + * @return impacted + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_IMPACTED) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getImpacted() { + return impacted; + } + + public void setImpacted(Long impacted) { + this.impacted = impacted; + } + + public JiraIssueFinding references(String references) { + this.references = references; + return this; + } + + /** + * References for the finding. + * + * @return references + */ + @JsonProperty(JSON_PROPERTY_REFERENCES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getReferences() { + return references; + } + + public void setReferences(String references) { + this.references = references; + } + + public JiraIssueFinding remediation(String remediation) { + this.remediation = remediation; + return this; + } + + /** + * Remediation instructions for the finding. + * + * @return remediation + */ + @JsonProperty(JSON_PROPERTY_REMEDIATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getRemediation() { + return remediation; + } + + public void setRemediation(String remediation) { + this.remediation = remediation; + } + + public JiraIssueFinding severity(FindingStatus severity) { + this.severity = severity; + this.unparsed |= !severity.isValid(); + return this; + } + + /** + * The status of the finding. + * + * @return severity + */ + @JsonProperty(JSON_PROPERTY_SEVERITY) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public FindingStatus getSeverity() { + return severity; + } + + public void setSeverity(FindingStatus severity) { + if (!severity.isValid()) { + this.unparsed = true; + } + this.severity = severity; + } + + public JiraIssueFinding title(String title) { + this.title = title; + return this; + } + + /** + * Title of the finding. + * + * @return title + */ + @JsonProperty(JSON_PROPERTY_TITLE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public JiraIssueFinding type(String type) { + this.type = type; + return this; + } + + /** + * Type of the finding. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return JiraIssueFinding + */ + @JsonAnySetter + public JiraIssueFinding 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 JiraIssueFinding object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssueFinding jiraIssueFinding = (JiraIssueFinding) o; + return Objects.equals(this.description, jiraIssueFinding.description) + && Objects.equals(this.ids, jiraIssueFinding.ids) + && Objects.equals(this.impacted, jiraIssueFinding.impacted) + && Objects.equals(this.references, jiraIssueFinding.references) + && Objects.equals(this.remediation, jiraIssueFinding.remediation) + && Objects.equals(this.severity, jiraIssueFinding.severity) + && Objects.equals(this.title, jiraIssueFinding.title) + && Objects.equals(this.type, jiraIssueFinding.type) + && Objects.equals(this.additionalProperties, jiraIssueFinding.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + description, + ids, + impacted, + references, + remediation, + severity, + title, + type, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssueFinding {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" ids: ").append(toIndentedString(ids)).append("\n"); + sb.append(" impacted: ").append(toIndentedString(impacted)).append("\n"); + sb.append(" references: ").append(toIndentedString(references)).append("\n"); + sb.append(" remediation: ").append(toIndentedString(remediation)).append("\n"); + sb.append(" severity: ").append(toIndentedString(severity)).append("\n"); + sb.append(" title: ").append(toIndentedString(title)).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/JiraIssueFindingId.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueFindingId.java new file mode 100644 index 00000000000..fd98d290545 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueFindingId.java @@ -0,0 +1,229 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({ + JiraIssueFindingId.JSON_PROPERTY_DISCOVERED, + JiraIssueFindingId.JSON_PROPERTY_ID, + JiraIssueFindingId.JSON_PROPERTY_RESOURCE, + JiraIssueFindingId.JSON_PROPERTY_TAGS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssueFindingId { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DISCOVERED = "discovered"; + private Long discovered; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_RESOURCE = "resource"; + private String resource; + + public static final String JSON_PROPERTY_TAGS = "tags"; + private String tags; + + public JiraIssueFindingId() {} + + @JsonCreator + public JiraIssueFindingId( + @JsonProperty(required = true, value = JSON_PROPERTY_DISCOVERED) Long discovered, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_RESOURCE) String resource, + @JsonProperty(required = true, value = JSON_PROPERTY_TAGS) String tags) { + this.discovered = discovered; + this.id = id; + this.resource = resource; + this.tags = tags; + } + + public JiraIssueFindingId discovered(Long discovered) { + this.discovered = discovered; + return this; + } + + /** + * Timestamp when the finding was discovered. + * + * @return discovered + */ + @JsonProperty(JSON_PROPERTY_DISCOVERED) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getDiscovered() { + return discovered; + } + + public void setDiscovered(Long discovered) { + this.discovered = discovered; + } + + public JiraIssueFindingId id(String id) { + this.id = id; + return this; + } + + /** + * Identifier of the finding. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public JiraIssueFindingId resource(String resource) { + this.resource = resource; + return this; + } + + /** + * Resource associated with the finding. + * + * @return resource + */ + @JsonProperty(JSON_PROPERTY_RESOURCE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getResource() { + return resource; + } + + public void setResource(String resource) { + this.resource = resource; + } + + public JiraIssueFindingId tags(String tags) { + this.tags = tags; + return this; + } + + /** + * Tags associated with the finding. + * + * @return tags + */ + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTags() { + return tags; + } + + public void setTags(String tags) { + this.tags = tags; + } + + /** + * 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 JiraIssueFindingId + */ + @JsonAnySetter + public JiraIssueFindingId 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 JiraIssueFindingId object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssueFindingId jiraIssueFindingId = (JiraIssueFindingId) o; + return Objects.equals(this.discovered, jiraIssueFindingId.discovered) + && Objects.equals(this.id, jiraIssueFindingId.id) + && Objects.equals(this.resource, jiraIssueFindingId.resource) + && Objects.equals(this.tags, jiraIssueFindingId.tags) + && Objects.equals(this.additionalProperties, jiraIssueFindingId.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(discovered, id, resource, tags, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssueFindingId {\n"); + sb.append(" discovered: ").append(toIndentedString(discovered)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" resource: ").append(toIndentedString(resource)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).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/JiraIssueRequest.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueRequest.java new file mode 100644 index 00000000000..1810e44c838 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueRequest.java @@ -0,0 +1,145 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** */ +@JsonPropertyOrder({JiraIssueRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssueRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private JiraIssueDataRequest data; + + public JiraIssueRequest() {} + + @JsonCreator + public JiraIssueRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) JiraIssueDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public JiraIssueRequest data(JiraIssueDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssueDataRequest getData() { + return data; + } + + public void setData(JiraIssueDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return JiraIssueRequest + */ + @JsonAnySetter + public JiraIssueRequest 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 JiraIssueRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssueRequest jiraIssueRequest = (JiraIssueRequest) o; + return Objects.equals(this.data, jiraIssueRequest.data) + && Objects.equals(this.additionalProperties, jiraIssueRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssueRequest {\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/JiraIssueType.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueType.java new file mode 100644 index 00000000000..7e41ffdf143 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueType.java @@ -0,0 +1,53 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Jira issue resource type. */ +@JsonSerialize(using = JiraIssueType.JiraIssueTypeSerializer.class) +public class JiraIssueType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("jira_issue")); + + public static final JiraIssueType JIRA_ISSUE = new JiraIssueType("jira_issue"); + + JiraIssueType(String value) { + super(value, allowedValues); + } + + public static class JiraIssueTypeSerializer extends StdSerializer { + public JiraIssueTypeSerializer(Class t) { + super(t); + } + + public JiraIssueTypeSerializer() { + this(null); + } + + @Override + public void serialize(JiraIssueType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static JiraIssueType fromValue(String value) { + return new JiraIssueType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataAttributesResponse.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataAttributesResponse.java new file mode 100644 index 00000000000..f5af8c5e6ab --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataAttributesResponse.java @@ -0,0 +1,204 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + JiraIssuesMetadataDataAttributesResponse.JSON_PROPERTY_ACCOUNT_ID, + JiraIssuesMetadataDataAttributesResponse.JSON_PROPERTY_ISSUE_TYPE_ID, + JiraIssuesMetadataDataAttributesResponse.JSON_PROPERTY_PROJECT_ID +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssuesMetadataDataAttributesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ACCOUNT_ID = "account_id"; + private String accountId; + + public static final String JSON_PROPERTY_ISSUE_TYPE_ID = "issue_type_id"; + private String issueTypeId; + + public static final String JSON_PROPERTY_PROJECT_ID = "project_id"; + private String projectId; + + public JiraIssuesMetadataDataAttributesResponse() {} + + @JsonCreator + public JiraIssuesMetadataDataAttributesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ACCOUNT_ID) String accountId, + @JsonProperty(required = true, value = JSON_PROPERTY_ISSUE_TYPE_ID) String issueTypeId, + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_ID) String projectId) { + this.accountId = accountId; + this.issueTypeId = issueTypeId; + this.projectId = projectId; + } + + public JiraIssuesMetadataDataAttributesResponse accountId(String accountId) { + this.accountId = accountId; + return this; + } + + /** + * Jira account identifier. + * + * @return accountId + */ + @JsonProperty(JSON_PROPERTY_ACCOUNT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public JiraIssuesMetadataDataAttributesResponse issueTypeId(String issueTypeId) { + this.issueTypeId = issueTypeId; + return this; + } + + /** + * Jira issue type identifier. + * + * @return issueTypeId + */ + @JsonProperty(JSON_PROPERTY_ISSUE_TYPE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getIssueTypeId() { + return issueTypeId; + } + + public void setIssueTypeId(String issueTypeId) { + this.issueTypeId = issueTypeId; + } + + public JiraIssuesMetadataDataAttributesResponse projectId(String projectId) { + this.projectId = projectId; + return this; + } + + /** + * Jira project identifier. + * + * @return projectId + */ + @JsonProperty(JSON_PROPERTY_PROJECT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + /** + * 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 JiraIssuesMetadataDataAttributesResponse + */ + @JsonAnySetter + public JiraIssuesMetadataDataAttributesResponse 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 JiraIssuesMetadataDataAttributesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssuesMetadataDataAttributesResponse jiraIssuesMetadataDataAttributesResponse = + (JiraIssuesMetadataDataAttributesResponse) o; + return Objects.equals(this.accountId, jiraIssuesMetadataDataAttributesResponse.accountId) + && Objects.equals(this.issueTypeId, jiraIssuesMetadataDataAttributesResponse.issueTypeId) + && Objects.equals(this.projectId, jiraIssuesMetadataDataAttributesResponse.projectId) + && Objects.equals( + this.additionalProperties, + jiraIssuesMetadataDataAttributesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(accountId, issueTypeId, projectId, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssuesMetadataDataAttributesResponse {\n"); + sb.append(" accountId: ").append(toIndentedString(accountId)).append("\n"); + sb.append(" issueTypeId: ").append(toIndentedString(issueTypeId)).append("\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).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/JiraIssuesMetadataDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataResponse.java new file mode 100644 index 00000000000..2bc69fd9e72 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataDataResponse.java @@ -0,0 +1,212 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({ + JiraIssuesMetadataDataResponse.JSON_PROPERTY_ATTRIBUTES, + JiraIssuesMetadataDataResponse.JSON_PROPERTY_ID, + JiraIssuesMetadataDataResponse.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssuesMetadataDataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private JiraIssuesMetadataDataAttributesResponse attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private JiraIssuesMetadataType type; + + public JiraIssuesMetadataDataResponse() {} + + @JsonCreator + public JiraIssuesMetadataDataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + JiraIssuesMetadataDataAttributesResponse attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) JiraIssuesMetadataType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public JiraIssuesMetadataDataResponse attributes( + JiraIssuesMetadataDataAttributesResponse attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Getattributes + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssuesMetadataDataAttributesResponse getAttributes() { + return attributes; + } + + public void setAttributes(JiraIssuesMetadataDataAttributesResponse attributes) { + this.attributes = attributes; + } + + public JiraIssuesMetadataDataResponse id(String id) { + this.id = id; + return this; + } + + /** + * Jira issue URL. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public JiraIssuesMetadataDataResponse type(JiraIssuesMetadataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Jira issues metadata resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssuesMetadataType getType() { + return type; + } + + public void setType(JiraIssuesMetadataType 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 JiraIssuesMetadataDataResponse + */ + @JsonAnySetter + public JiraIssuesMetadataDataResponse 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 JiraIssuesMetadataDataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssuesMetadataDataResponse jiraIssuesMetadataDataResponse = + (JiraIssuesMetadataDataResponse) o; + return Objects.equals(this.attributes, jiraIssuesMetadataDataResponse.attributes) + && Objects.equals(this.id, jiraIssuesMetadataDataResponse.id) + && Objects.equals(this.type, jiraIssuesMetadataDataResponse.type) + && Objects.equals( + this.additionalProperties, jiraIssuesMetadataDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssuesMetadataDataResponse {\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/JiraIssuesMetadataResponse.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataResponse.java new file mode 100644 index 00000000000..95056fafbf5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataResponse.java @@ -0,0 +1,147 @@ +/* + * 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; + +/** */ +@JsonPropertyOrder({JiraIssuesMetadataResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class JiraIssuesMetadataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private JiraIssuesMetadataDataResponse data; + + public JiraIssuesMetadataResponse() {} + + @JsonCreator + public JiraIssuesMetadataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + JiraIssuesMetadataDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public JiraIssuesMetadataResponse data(JiraIssuesMetadataDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Getdata + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public JiraIssuesMetadataDataResponse getData() { + return data; + } + + public void setData(JiraIssuesMetadataDataResponse data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return JiraIssuesMetadataResponse + */ + @JsonAnySetter + public JiraIssuesMetadataResponse 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 JiraIssuesMetadataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + JiraIssuesMetadataResponse jiraIssuesMetadataResponse = (JiraIssuesMetadataResponse) o; + return Objects.equals(this.data, jiraIssuesMetadataResponse.data) + && Objects.equals( + this.additionalProperties, jiraIssuesMetadataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class JiraIssuesMetadataResponse {\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/JiraIssuesMetadataType.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataType.java new file mode 100644 index 00000000000..b027f850d9d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssuesMetadataType.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; + +/** Jira issues metadata resource type. */ +@JsonSerialize(using = JiraIssuesMetadataType.JiraIssuesMetadataTypeSerializer.class) +public class JiraIssuesMetadataType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("jira_issues")); + + public static final JiraIssuesMetadataType JIRA_ISSUES = + new JiraIssuesMetadataType("jira_issues"); + + JiraIssuesMetadataType(String value) { + super(value, allowedValues); + } + + public static class JiraIssuesMetadataTypeSerializer + extends StdSerializer { + public JiraIssuesMetadataTypeSerializer(Class t) { + super(t); + } + + public JiraIssuesMetadataTypeSerializer() { + this(null); + } + + @Override + public void serialize( + JiraIssuesMetadataType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static JiraIssuesMetadataType fromValue(String value) { + return new JiraIssuesMetadataType(value); + } +} diff --git a/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature b/src/test/resources/com/datadog/api/client/v2/api/security_monitoring.feature index df5e32bcc4d..1924cbc0241 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 @@ -25,6 +25,30 @@ Feature: Security Monitoring When the request is sent Then the response status is 404 Not Found + @generated @skip @team:DataDog/k9-investigation + Scenario: Assign or un-assign Jira issues to security findings returns "Accepted" response + Given operation "AssignIntegrationIssues" enabled + And new "AssignIntegrationIssues" request + And body with value {"data": {"attributes": {"action": "assign", "assignment": {"jira": {"https://jira.example.com/browse/SEC-123": ["MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="]}}, "type": "findings"}, "id": "some_id", "type": "issue_assignment"}} + When the request is sent + Then the response status is 202 Accepted + + @generated @skip @team:DataDog/k9-investigation + Scenario: Assign or un-assign Jira issues to security findings returns "Bad Request" response + Given operation "AssignIntegrationIssues" enabled + And new "AssignIntegrationIssues" request + And body with value {"data": {"attributes": {"action": "assign", "assignment": {"jira": {"https://jira.example.com/browse/SEC-123": ["MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="]}}, "type": "findings"}, "id": "some_id", "type": "issue_assignment"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-investigation + Scenario: Assign or un-assign Jira issues to security findings returns "Not Found" response + Given operation "AssignIntegrationIssues" enabled + And new "AssignIntegrationIssues" request + And body with value {"data": {"attributes": {"action": "assign", "assignment": {"jira": {"https://jira.example.com/browse/SEC-123": ["MDBjMzdhYzgyNGZkZGJiZmY0OGNmYjNiMWQ2ODY0YmR-OTc0YjMzNjM1Y2UyODA2YTEyNWQxYmNkZjhmODllNzg="]}}, "type": "findings"}, "id": "some_id", "type": "issue_assignment"}} + When the request is sent + Then the response status is 404 Not Found + @team:DataDog/k9-investigation Scenario: Attach security finding to a Jira issue returns "OK" response Given new "AttachJiraIssue" request @@ -330,6 +354,14 @@ Feature: Security Monitoring And the response "data[0].attributes.insights[0].type" is equal to "SECURITY_FINDING" And the response "data[0].attributes.jira_issue.status" is equal to "COMPLETED" + @generated @skip @team:DataDog/k9-investigation + Scenario: Create Jira issues for security findings returns "Accepted" response + Given operation "CreateJiraIssue" enabled + And new "CreateJiraIssue" request + And body with value {"data": {"attributes": {"account_id": "f7ccdf99-0e22-4378-bdf9-03fde5379fea", "fields": null, "issue_type": "story", "issuetype_id": "1235", "mode": "single", "project_id": "1234", "project_key": "SEC"}, "id": "ID", "meta": {"findings": [{"description": "Description", "ids": [{"discovered": 123213123, "id": "afa-afa-hze", "resource": "Resource", "tags": "akjasd:asdsad"}], "impacted": 1, "references": "", "remediation": "Remediation", "severity": "critical", "title": "Title", "type": "ciem"}], "vulnerabilities": [{"description": "Description", "ids": [{"discovered": 123213123, "id": "afa-afa-hze", "resource": "Resource", "tags": "akjasd:asdsad"}], "impacted": 1, "references": "", "remediation": "Remediation", "severity": "critical", "title": "Title", "type": "ciem"}]}, "type": "jira_issue"}} + When the request is sent + Then the response status is 202 Accepted + @team:DataDog/k9-investigation Scenario: Create Jira issues for security findings returns "Bad Request" response Given new "CreateJiraIssues" request @@ -887,6 +919,30 @@ Feature: Security Monitoring When the request is sent Then the response status is 404 Not Found + @generated @skip @team:DataDog/k9-investigation + Scenario: Get Jira issue metadata returns "Bad Request" response + Given operation "GetJiraIssueMetadata" enabled + And new "GetJiraIssueMetadata" request + And request contains "url" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-investigation + Scenario: Get Jira issue metadata returns "Not Found" response + Given operation "GetJiraIssueMetadata" enabled + And new "GetJiraIssueMetadata" request + And request contains "url" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-investigation + Scenario: Get Jira issue metadata returns "OK" response + Given operation "GetJiraIssueMetadata" enabled + And new "GetJiraIssueMetadata" request + And request contains "url" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-vm Scenario: Get SBOM returns "Bad request: The server cannot process the request due to invalid syntax in the request." response Given new "GetSBOM" request 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 7e549784ee6..2a6ca074caf 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 @@ -999,6 +999,22 @@ "type": "idempotent" } }, + "AssignIntegrationIssues": { + "tag": "Security Monitoring", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "CreateJiraIssue": { + "tag": "Security Monitoring", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, "GetResourceEvaluationFilters": { "tag": "Security Monitoring", "undo": { @@ -4249,6 +4265,12 @@ "type": "unsafe" } }, + "GetJiraIssueMetadata": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "SearchSecurityFindings": { "tag": "Security Monitoring", "undo": {