diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 3abfaf3ebf6..3e7aab25b5c 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -29738,6 +29738,81 @@ components:
required:
- errors
type: object
+ JiraAccountAttributes:
+ description: Attributes of a Jira account
+ properties:
+ consumer_key:
+ description: The consumer key for the Jira account
+ example: consumer-key-1
+ type: string
+ instance_url:
+ description: The URL of the Jira instance
+ example: https://example.atlassian.net
+ type: string
+ last_webhook_timestamp:
+ description: Timestamp of the last webhook received
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
+ required:
+ - consumer_key
+ - instance_url
+ type: object
+ JiraAccountData:
+ description: Data object for a Jira account
+ properties:
+ attributes:
+ $ref: '#/components/schemas/JiraAccountAttributes'
+ id:
+ description: Unique identifier for the Jira account
+ example: account-1
+ type: string
+ type:
+ $ref: '#/components/schemas/JiraAccountType'
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ JiraAccountRelationship:
+ description: Relationship to a Jira account
+ properties:
+ data:
+ $ref: '#/components/schemas/JiraAccountData'
+ required:
+ - data
+ type: object
+ JiraAccountType:
+ description: Type identifier for Jira account resources
+ enum:
+ - jira-account
+ example: jira-account
+ type: string
+ x-enum-varnames:
+ - JIRA_ACCOUNT
+ JiraAccountsData:
+ description: Array of Jira account data objects
+ items:
+ $ref: '#/components/schemas/JiraAccountData'
+ type: array
+ JiraAccountsMeta:
+ description: Metadata for Jira accounts response
+ properties:
+ public_key:
+ description: Public key for the Jira integration
+ example: c29tZSBkYXRhIHdpdGggACBhbmQg77u/
+ type: string
+ type: object
+ JiraAccountsResponse:
+ description: Response containing Jira accounts
+ properties:
+ data:
+ $ref: '#/components/schemas/JiraAccountsData'
+ meta:
+ $ref: '#/components/schemas/JiraAccountsMeta'
+ required:
+ - data
+ type: object
JiraIntegrationMetadata:
description: Incident integration metadata for the Jira integration.
properties:
@@ -29803,6 +29878,181 @@ components:
description: Jira project key
type: string
type: object
+ JiraIssueTemplateCreateRequest:
+ description: Request to create a Jira issue template
+ properties:
+ data:
+ $ref: '#/components/schemas/JiraIssueTemplateCreateRequestData'
+ type: object
+ JiraIssueTemplateCreateRequestAttributes:
+ description: Attributes for creating a Jira issue template
+ properties:
+ fields:
+ additionalProperties: {}
+ description: Custom fields for the Jira issue template
+ example:
+ description:
+ payload: Test
+ type: json
+ type: object
+ issue_type_id:
+ description: The ID of the Jira issue type
+ example: '12730'
+ type: string
+ jira-account:
+ $ref: '#/components/schemas/JiraIssueTemplateCreateRequestAttributesJiraAccount'
+ name:
+ description: The name of the issue template
+ example: test-template
+ type: string
+ project_id:
+ description: The ID of the Jira project
+ example: '10772'
+ type: string
+ type: object
+ JiraIssueTemplateCreateRequestAttributesJiraAccount:
+ description: Reference to the Jira account
+ properties:
+ id:
+ description: The ID of the Jira account
+ example: 80f16d40-1fba-486e-b1fc-983e6ca19bec
+ format: uuid
+ type: string
+ required:
+ - id
+ type: object
+ JiraIssueTemplateCreateRequestData:
+ description: Data object for creating a Jira issue template
+ properties:
+ attributes:
+ $ref: '#/components/schemas/JiraIssueTemplateCreateRequestAttributes'
+ type:
+ $ref: '#/components/schemas/JiraIssueTemplateType'
+ type: object
+ JiraIssueTemplateData:
+ description: Data object for a Jira issue template
+ properties:
+ attributes:
+ $ref: '#/components/schemas/JiraIssueTemplateDataAttributes'
+ id:
+ description: Unique identifier for the Jira issue template
+ example: 65b3341b-0680-47f9-a6d4-134db45c603e
+ format: uuid
+ type: string
+ relationships:
+ $ref: '#/components/schemas/JiraIssueTemplateDataRelationships'
+ type:
+ $ref: '#/components/schemas/JiraIssueTemplateType'
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ JiraIssueTemplateDataAttributes:
+ description: Attributes of a Jira issue template
+ properties:
+ fields:
+ additionalProperties: {}
+ description: Custom fields for the Jira issue template
+ example:
+ description:
+ payload: Test Description
+ type: json
+ type: object
+ issue_type_id:
+ description: The ID of the Jira issue type
+ example: '456'
+ type: string
+ name:
+ description: The name of the issue template
+ example: Test Template
+ type: string
+ project_id:
+ description: The ID of the Jira project
+ example: '123'
+ type: string
+ required:
+ - name
+ - project_id
+ - issue_type_id
+ - fields
+ type: object
+ JiraIssueTemplateDataRelationships:
+ description: Relationships of a Jira issue template
+ properties:
+ jira-account:
+ $ref: '#/components/schemas/JiraAccountRelationship'
+ required:
+ - jira-account
+ type: object
+ JiraIssueTemplateResponse:
+ description: Response containing a single Jira issue template
+ properties:
+ data:
+ $ref: '#/components/schemas/JiraIssueTemplateData'
+ included:
+ $ref: '#/components/schemas/JiraAccountsData'
+ required:
+ - data
+ type: object
+ JiraIssueTemplateType:
+ description: Type identifier for Jira issue template resources
+ enum:
+ - jira-issue-template
+ example: jira-issue-template
+ type: string
+ x-enum-varnames:
+ - JIRA_ISSUE_TEMPLATE
+ JiraIssueTemplateUpdateRequest:
+ description: Request to update a Jira issue template
+ properties:
+ data:
+ $ref: '#/components/schemas/JiraIssueTemplateUpdateRequestData'
+ required:
+ - data
+ type: object
+ JiraIssueTemplateUpdateRequestAttributes:
+ description: Attributes for updating a Jira issue template
+ properties:
+ fields:
+ additionalProperties: {}
+ description: Custom fields for the Jira issue template
+ example:
+ description:
+ payload: Updated Description
+ type: json
+ type: object
+ name:
+ description: The name of the issue template
+ example: test_template_updated
+ type: string
+ type: object
+ JiraIssueTemplateUpdateRequestData:
+ description: Data object for updating a Jira issue template
+ properties:
+ attributes:
+ $ref: '#/components/schemas/JiraIssueTemplateUpdateRequestAttributes'
+ type:
+ $ref: '#/components/schemas/JiraIssueTemplateType'
+ required:
+ - type
+ - attributes
+ type: object
+ JiraIssueTemplatesData:
+ description: Array of Jira issue template data objects
+ items:
+ $ref: '#/components/schemas/JiraIssueTemplateData'
+ type: array
+ JiraIssueTemplatesResponse:
+ description: Response containing Jira issue templates
+ properties:
+ data:
+ $ref: '#/components/schemas/JiraIssueTemplatesData'
+ included:
+ $ref: '#/components/schemas/JiraAccountsData'
+ required:
+ - data
+ type: object
JiraIssuesDataType:
default: jira_issues
description: Jira issues resource type.
@@ -72916,6 +73166,213 @@ paths:
operator: OR
permissions:
- gcp_configuration_edit
+ /api/v2/integration/jira/accounts:
+ get:
+ description: Get all Jira accounts for the organization.
+ operationId: ListJiraAccounts
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraAccountsResponse'
+ description: OK
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: List Jira accounts
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/integration/jira/accounts/{account_id}:
+ delete:
+ description: Delete a Jira account by ID.
+ operationId: DeleteJiraAccount
+ parameters:
+ - description: The ID of the Jira account to delete
+ example: 65b3341b-0680-47f9-a6d4-134db45c603e
+ in: path
+ name: account_id
+ required: true
+ schema:
+ format: uuid
+ type: string
+ responses:
+ '204':
+ description: No Content
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Delete Jira account
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/integration/jira/issue-templates:
+ get:
+ description: Get all Jira issue templates for the organization.
+ operationId: ListJiraIssueTemplates
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraIssueTemplatesResponse'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: List Jira issue templates
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ post:
+ description: Create a new Jira issue template.
+ operationId: CreateJiraIssueTemplate
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraIssueTemplateCreateRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraIssueTemplateResponse'
+ description: Created
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Create Jira issue template
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/integration/jira/issue-templates/{issue_template_id}:
+ delete:
+ description: Delete a Jira issue template by ID.
+ operationId: DeleteJiraIssueTemplate
+ parameters:
+ - description: The ID of the Jira issue template to delete
+ example: 65b3341b-0680-47f9-a6d4-134db45c603e
+ in: path
+ name: issue_template_id
+ required: true
+ schema:
+ format: uuid
+ type: string
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Delete Jira issue template
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ get:
+ description: Get a Jira issue template by ID.
+ operationId: GetJiraIssueTemplate
+ parameters:
+ - description: The ID of the Jira issue template to retrieve
+ example: 65b3341b-0680-47f9-a6d4-134db45c603e
+ in: path
+ name: issue_template_id
+ required: true
+ schema:
+ format: uuid
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraIssueTemplateResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Get Jira issue template
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ patch:
+ description: Update a Jira issue template by ID.
+ operationId: UpdateJiraIssueTemplate
+ parameters:
+ - description: The ID of the Jira issue template to update
+ example: 65b3341b-0680-47f9-a6d4-134db45c603e
+ in: path
+ name: issue_template_id
+ required: true
+ schema:
+ format: uuid
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraIssueTemplateUpdateRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JiraIssueTemplateResponse'
+ description: OK
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Update Jira issue template
+ tags:
+ - Jira Integration
+ x-unstable: '**Note**: This endpoint is in public beta and it''s subject to
+ change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
/api/v2/integration/ms-teams/configuration/channel/{tenant_name}/{team_name}/{channel_name}:
get:
description: Get the tenant, team, and channel ID of a channel in the Datadog
@@ -92567,6 +93024,9 @@ tags:
and todos. See the [Incident Management page](https://docs.datadoghq.com/service_management/incident_management/)
for more information.
name: Incidents
+- description: Manage your Jira Integration. Atlassian Jira is a project management
+ and issue tracking tool for teams to coordinate work and handle tasks efficiently.
+ name: Jira Integration
- description: 'Manage your Datadog API and application keys. You need an API key
and an
diff --git a/examples/v2/jira-integration/CreateJiraIssueTemplate.java b/examples/v2/jira-integration/CreateJiraIssueTemplate.java
new file mode 100644
index 00000000000..75bf7e5b9c1
--- /dev/null
+++ b/examples/v2/jira-integration/CreateJiraIssueTemplate.java
@@ -0,0 +1,50 @@
+// Create Jira issue template returns "Created" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import com.datadog.api.client.v2.model.JiraIssueTemplateCreateRequest;
+import com.datadog.api.client.v2.model.JiraIssueTemplateCreateRequestAttributes;
+import com.datadog.api.client.v2.model.JiraIssueTemplateCreateRequestAttributesJiraAccount;
+import com.datadog.api.client.v2.model.JiraIssueTemplateCreateRequestData;
+import com.datadog.api.client.v2.model.JiraIssueTemplateResponse;
+import com.datadog.api.client.v2.model.JiraIssueTemplateType;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createJiraIssueTemplate", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ JiraIssueTemplateCreateRequest body =
+ new JiraIssueTemplateCreateRequest()
+ .data(
+ new JiraIssueTemplateCreateRequestData()
+ .attributes(
+ new JiraIssueTemplateCreateRequestAttributes()
+ .fields(
+ Map.ofEntries(
+ Map.entry(
+ "description", "{'payload': 'Test', 'type': 'json'}")))
+ .issueTypeId("12730")
+ .jiraAccount(
+ new JiraIssueTemplateCreateRequestAttributesJiraAccount()
+ .id(UUID.fromString("80f16d40-1fba-486e-b1fc-983e6ca19bec")))
+ .name("test-template")
+ .projectId("10772"))
+ .type(JiraIssueTemplateType.JIRA_ISSUE_TEMPLATE));
+
+ try {
+ JiraIssueTemplateResponse result = apiInstance.createJiraIssueTemplate(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#createJiraIssueTemplate");
+ 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/jira-integration/DeleteJiraAccount.java b/examples/v2/jira-integration/DeleteJiraAccount.java
new file mode 100644
index 00000000000..ec97ffe0cbf
--- /dev/null
+++ b/examples/v2/jira-integration/DeleteJiraAccount.java
@@ -0,0 +1,24 @@
+// Delete Jira account returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteJiraAccount", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ try {
+ apiInstance.deleteJiraAccount(UUID.fromString("65b3341b-0680-47f9-a6d4-134db45c603e"));
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#deleteJiraAccount");
+ 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/jira-integration/DeleteJiraIssueTemplate.java b/examples/v2/jira-integration/DeleteJiraIssueTemplate.java
new file mode 100644
index 00000000000..a272f038aa3
--- /dev/null
+++ b/examples/v2/jira-integration/DeleteJiraIssueTemplate.java
@@ -0,0 +1,24 @@
+// Delete Jira issue template returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteJiraIssueTemplate", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ try {
+ apiInstance.deleteJiraIssueTemplate(UUID.fromString("65b3341b-0680-47f9-a6d4-134db45c603e"));
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#deleteJiraIssueTemplate");
+ 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/jira-integration/GetJiraIssueTemplate.java b/examples/v2/jira-integration/GetJiraIssueTemplate.java
new file mode 100644
index 00000000000..0bdf26b8b08
--- /dev/null
+++ b/examples/v2/jira-integration/GetJiraIssueTemplate.java
@@ -0,0 +1,27 @@
+// Get Jira issue template returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import com.datadog.api.client.v2.model.JiraIssueTemplateResponse;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.getJiraIssueTemplate", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ try {
+ JiraIssueTemplateResponse result =
+ apiInstance.getJiraIssueTemplate(UUID.fromString("65b3341b-0680-47f9-a6d4-134db45c603e"));
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#getJiraIssueTemplate");
+ 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/jira-integration/ListJiraAccounts.java b/examples/v2/jira-integration/ListJiraAccounts.java
new file mode 100644
index 00000000000..313141b7f5a
--- /dev/null
+++ b/examples/v2/jira-integration/ListJiraAccounts.java
@@ -0,0 +1,25 @@
+// List Jira accounts returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import com.datadog.api.client.v2.model.JiraAccountsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listJiraAccounts", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ try {
+ JiraAccountsResponse result = apiInstance.listJiraAccounts();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#listJiraAccounts");
+ 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/jira-integration/ListJiraIssueTemplates.java b/examples/v2/jira-integration/ListJiraIssueTemplates.java
new file mode 100644
index 00000000000..d82c4699b1a
--- /dev/null
+++ b/examples/v2/jira-integration/ListJiraIssueTemplates.java
@@ -0,0 +1,25 @@
+// List Jira issue templates returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import com.datadog.api.client.v2.model.JiraIssueTemplatesResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listJiraIssueTemplates", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ try {
+ JiraIssueTemplatesResponse result = apiInstance.listJiraIssueTemplates();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#listJiraIssueTemplates");
+ 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/jira-integration/UpdateJiraIssueTemplate.java b/examples/v2/jira-integration/UpdateJiraIssueTemplate.java
new file mode 100644
index 00000000000..128ff85a4d3
--- /dev/null
+++ b/examples/v2/jira-integration/UpdateJiraIssueTemplate.java
@@ -0,0 +1,47 @@
+// Update Jira issue template returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.JiraIntegrationApi;
+import com.datadog.api.client.v2.model.JiraIssueTemplateResponse;
+import com.datadog.api.client.v2.model.JiraIssueTemplateType;
+import com.datadog.api.client.v2.model.JiraIssueTemplateUpdateRequest;
+import com.datadog.api.client.v2.model.JiraIssueTemplateUpdateRequestAttributes;
+import com.datadog.api.client.v2.model.JiraIssueTemplateUpdateRequestData;
+import java.util.Map;
+import java.util.UUID;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateJiraIssueTemplate", true);
+ JiraIntegrationApi apiInstance = new JiraIntegrationApi(defaultClient);
+
+ JiraIssueTemplateUpdateRequest body =
+ new JiraIssueTemplateUpdateRequest()
+ .data(
+ new JiraIssueTemplateUpdateRequestData()
+ .attributes(
+ new JiraIssueTemplateUpdateRequestAttributes()
+ .fields(
+ Map.ofEntries(
+ Map.entry(
+ "description",
+ "{'payload': 'Updated Description', 'type': 'json'}")))
+ .name("test_template_updated"))
+ .type(JiraIssueTemplateType.JIRA_ISSUE_TEMPLATE));
+
+ try {
+ JiraIssueTemplateResponse result =
+ apiInstance.updateJiraIssueTemplate(
+ UUID.fromString("65b3341b-0680-47f9-a6d4-134db45c603e"), body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling JiraIntegrationApi#updateJiraIssueTemplate");
+ 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 fef72371100..80129e2535b 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -851,6 +851,13 @@ public class ApiClient {
put("v2.updateIncidentNotificationTemplate", false);
put("v2.updateIncidentTodo", false);
put("v2.updateIncidentType", false);
+ put("v2.createJiraIssueTemplate", false);
+ put("v2.deleteJiraAccount", false);
+ put("v2.deleteJiraIssueTemplate", false);
+ put("v2.getJiraIssueTemplate", false);
+ put("v2.listJiraAccounts", false);
+ put("v2.listJiraIssueTemplates", false);
+ put("v2.updateJiraIssueTemplate", false);
put("v2.addRoleToRestrictionQuery", false);
put("v2.createRestrictionQuery", false);
put("v2.deleteRestrictionQuery", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/JiraIntegrationApi.java b/src/main/java/com/datadog/api/client/v2/api/JiraIntegrationApi.java
new file mode 100644
index 00000000000..2a2bf19ab4f
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/JiraIntegrationApi.java
@@ -0,0 +1,1095 @@
+package com.datadog.api.client.v2.api;
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.ApiResponse;
+import com.datadog.api.client.Pair;
+import com.datadog.api.client.v2.model.JiraAccountsResponse;
+import com.datadog.api.client.v2.model.JiraIssueTemplateCreateRequest;
+import com.datadog.api.client.v2.model.JiraIssueTemplateResponse;
+import com.datadog.api.client.v2.model.JiraIssueTemplateUpdateRequest;
+import com.datadog.api.client.v2.model.JiraIssueTemplatesResponse;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIntegrationApi {
+ private ApiClient apiClient;
+
+ public JiraIntegrationApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public JiraIntegrationApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Create Jira issue template.
+ *
+ *
See {@link #createJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return JiraIssueTemplateResponse
+ * @throws ApiException if fails to make API call
+ */
+ public JiraIssueTemplateResponse createJiraIssueTemplate(JiraIssueTemplateCreateRequest body)
+ throws ApiException {
+ return createJiraIssueTemplateWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create Jira issue template.
+ *
+ *
See {@link #createJiraIssueTemplateWithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<JiraIssueTemplateResponse>
+ */
+ public CompletableFuture createJiraIssueTemplateAsync(
+ JiraIssueTemplateCreateRequest body) {
+ return createJiraIssueTemplateWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new Jira issue template.
+ *
+ * @param body (required)
+ * @return ApiResponse<JiraIssueTemplateResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 201 | Created | - |
+ * | 400 | Bad Request | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createJiraIssueTemplateWithHttpInfo(
+ JiraIssueTemplateCreateRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createJiraIssueTemplate";
+ 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 createJiraIssueTemplate");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/jira/issue-templates";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.createJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create Jira issue template.
+ *
+ * See {@link #createJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<JiraIssueTemplateResponse>>
+ */
+ public CompletableFuture>
+ createJiraIssueTemplateWithHttpInfoAsync(JiraIssueTemplateCreateRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createJiraIssueTemplate";
+ 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 createJiraIssueTemplate"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/jira/issue-templates";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.createJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Delete Jira account.
+ *
+ * See {@link #deleteJiraAccountWithHttpInfo}.
+ *
+ * @param accountId The ID of the Jira account to delete (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteJiraAccount(UUID accountId) throws ApiException {
+ deleteJiraAccountWithHttpInfo(accountId);
+ }
+
+ /**
+ * Delete Jira account.
+ *
+ *
See {@link #deleteJiraAccountWithHttpInfoAsync}.
+ *
+ * @param accountId The ID of the Jira account to delete (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteJiraAccountAsync(UUID accountId) {
+ return deleteJiraAccountWithHttpInfoAsync(accountId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete a Jira account by ID.
+ *
+ * @param accountId The ID of the Jira account to delete (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 400 | Bad Request | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteJiraAccountWithHttpInfo(UUID accountId) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteJiraAccount";
+ 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 'accountId' is set
+ if (accountId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'accountId' when calling deleteJiraAccount");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/accounts/{account_id}"
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.deleteJiraAccount",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete Jira account.
+ *
+ * See {@link #deleteJiraAccountWithHttpInfo}.
+ *
+ * @param accountId The ID of the Jira account to delete (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteJiraAccountWithHttpInfoAsync(UUID accountId) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteJiraAccount";
+ 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 'accountId' is set
+ if (accountId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'accountId' when calling deleteJiraAccount"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/accounts/{account_id}"
+ .replaceAll("\\{" + "account_id" + "\\}", apiClient.escapeString(accountId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.deleteJiraAccount",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete Jira issue template.
+ *
+ * See {@link #deleteJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to delete (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteJiraIssueTemplate(UUID issueTemplateId) throws ApiException {
+ deleteJiraIssueTemplateWithHttpInfo(issueTemplateId);
+ }
+
+ /**
+ * Delete Jira issue template.
+ *
+ *
See {@link #deleteJiraIssueTemplateWithHttpInfoAsync}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to delete (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteJiraIssueTemplateAsync(UUID issueTemplateId) {
+ return deleteJiraIssueTemplateWithHttpInfoAsync(issueTemplateId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete a Jira issue template by ID.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to delete (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteJiraIssueTemplateWithHttpInfo(UUID issueTemplateId)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteJiraIssueTemplate";
+ 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 'issueTemplateId' is set
+ if (issueTemplateId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'issueTemplateId' when calling deleteJiraIssueTemplate");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/issue-templates/{issue_template_id}"
+ .replaceAll(
+ "\\{" + "issue_template_id" + "\\}",
+ apiClient.escapeString(issueTemplateId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.deleteJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete Jira issue template.
+ *
+ * See {@link #deleteJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to delete (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteJiraIssueTemplateWithHttpInfoAsync(
+ UUID issueTemplateId) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteJiraIssueTemplate";
+ 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 'issueTemplateId' is set
+ if (issueTemplateId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'issueTemplateId' when calling"
+ + " deleteJiraIssueTemplate"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/issue-templates/{issue_template_id}"
+ .replaceAll(
+ "\\{" + "issue_template_id" + "\\}",
+ apiClient.escapeString(issueTemplateId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.deleteJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Get Jira issue template.
+ *
+ * See {@link #getJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to retrieve (required)
+ * @return JiraIssueTemplateResponse
+ * @throws ApiException if fails to make API call
+ */
+ public JiraIssueTemplateResponse getJiraIssueTemplate(UUID issueTemplateId) throws ApiException {
+ return getJiraIssueTemplateWithHttpInfo(issueTemplateId).getData();
+ }
+
+ /**
+ * Get Jira issue template.
+ *
+ *
See {@link #getJiraIssueTemplateWithHttpInfoAsync}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to retrieve (required)
+ * @return CompletableFuture<JiraIssueTemplateResponse>
+ */
+ public CompletableFuture getJiraIssueTemplateAsync(
+ UUID issueTemplateId) {
+ return getJiraIssueTemplateWithHttpInfoAsync(issueTemplateId)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get a Jira issue template by ID.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to retrieve (required)
+ * @return ApiResponse<JiraIssueTemplateResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse getJiraIssueTemplateWithHttpInfo(
+ UUID issueTemplateId) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "getJiraIssueTemplate";
+ 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 'issueTemplateId' is set
+ if (issueTemplateId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'issueTemplateId' when calling getJiraIssueTemplate");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/issue-templates/{issue_template_id}"
+ .replaceAll(
+ "\\{" + "issue_template_id" + "\\}",
+ apiClient.escapeString(issueTemplateId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.getJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get Jira issue template.
+ *
+ * See {@link #getJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to retrieve (required)
+ * @return CompletableFuture<ApiResponse<JiraIssueTemplateResponse>>
+ */
+ public CompletableFuture>
+ getJiraIssueTemplateWithHttpInfoAsync(UUID issueTemplateId) {
+ // Check if unstable operation is enabled
+ String operationId = "getJiraIssueTemplate";
+ 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 'issueTemplateId' is set
+ if (issueTemplateId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'issueTemplateId' when calling"
+ + " getJiraIssueTemplate"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/issue-templates/{issue_template_id}"
+ .replaceAll(
+ "\\{" + "issue_template_id" + "\\}",
+ apiClient.escapeString(issueTemplateId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.getJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List Jira accounts.
+ *
+ * See {@link #listJiraAccountsWithHttpInfo}.
+ *
+ * @return JiraAccountsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public JiraAccountsResponse listJiraAccounts() throws ApiException {
+ return listJiraAccountsWithHttpInfo().getData();
+ }
+
+ /**
+ * List Jira accounts.
+ *
+ *
See {@link #listJiraAccountsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<JiraAccountsResponse>
+ */
+ public CompletableFuture listJiraAccountsAsync() {
+ return listJiraAccountsWithHttpInfoAsync()
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get all Jira accounts for the organization.
+ *
+ * @return ApiResponse<JiraAccountsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listJiraAccountsWithHttpInfo() throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listJiraAccounts";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/jira/accounts";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.listJiraAccounts",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List Jira accounts.
+ *
+ * See {@link #listJiraAccountsWithHttpInfo}.
+ *
+ * @return CompletableFuture<ApiResponse<JiraAccountsResponse>>
+ */
+ public CompletableFuture> listJiraAccountsWithHttpInfoAsync() {
+ // Check if unstable operation is enabled
+ String operationId = "listJiraAccounts";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/jira/accounts";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.listJiraAccounts",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List Jira issue templates.
+ *
+ * See {@link #listJiraIssueTemplatesWithHttpInfo}.
+ *
+ * @return JiraIssueTemplatesResponse
+ * @throws ApiException if fails to make API call
+ */
+ public JiraIssueTemplatesResponse listJiraIssueTemplates() throws ApiException {
+ return listJiraIssueTemplatesWithHttpInfo().getData();
+ }
+
+ /**
+ * List Jira issue templates.
+ *
+ *
See {@link #listJiraIssueTemplatesWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<JiraIssueTemplatesResponse>
+ */
+ public CompletableFuture listJiraIssueTemplatesAsync() {
+ return listJiraIssueTemplatesWithHttpInfoAsync()
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get all Jira issue templates for the organization.
+ *
+ * @return ApiResponse<JiraIssueTemplatesResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listJiraIssueTemplatesWithHttpInfo()
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listJiraIssueTemplates";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/jira/issue-templates";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.listJiraIssueTemplates",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List Jira issue templates.
+ *
+ * See {@link #listJiraIssueTemplatesWithHttpInfo}.
+ *
+ * @return CompletableFuture<ApiResponse<JiraIssueTemplatesResponse>>
+ */
+ public CompletableFuture>
+ listJiraIssueTemplatesWithHttpInfoAsync() {
+ // Check if unstable operation is enabled
+ String operationId = "listJiraIssueTemplates";
+ 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;
+ // create path and map variables
+ String localVarPath = "/api/v2/integration/jira/issue-templates";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.listJiraIssueTemplates",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update Jira issue template.
+ *
+ * See {@link #updateJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to update (required)
+ * @param body (required)
+ * @return JiraIssueTemplateResponse
+ * @throws ApiException if fails to make API call
+ */
+ public JiraIssueTemplateResponse updateJiraIssueTemplate(
+ UUID issueTemplateId, JiraIssueTemplateUpdateRequest body) throws ApiException {
+ return updateJiraIssueTemplateWithHttpInfo(issueTemplateId, body).getData();
+ }
+
+ /**
+ * Update Jira issue template.
+ *
+ *
See {@link #updateJiraIssueTemplateWithHttpInfoAsync}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to update (required)
+ * @param body (required)
+ * @return CompletableFuture<JiraIssueTemplateResponse>
+ */
+ public CompletableFuture updateJiraIssueTemplateAsync(
+ UUID issueTemplateId, JiraIssueTemplateUpdateRequest body) {
+ return updateJiraIssueTemplateWithHttpInfoAsync(issueTemplateId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Update a Jira issue template by ID.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to update (required)
+ * @param body (required)
+ * @return ApiResponse<JiraIssueTemplateResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse updateJiraIssueTemplateWithHttpInfo(
+ UUID issueTemplateId, JiraIssueTemplateUpdateRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "updateJiraIssueTemplate";
+ 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 'issueTemplateId' is set
+ if (issueTemplateId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'issueTemplateId' when calling updateJiraIssueTemplate");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateJiraIssueTemplate");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/issue-templates/{issue_template_id}"
+ .replaceAll(
+ "\\{" + "issue_template_id" + "\\}",
+ apiClient.escapeString(issueTemplateId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.updateJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Update Jira issue template.
+ *
+ * See {@link #updateJiraIssueTemplateWithHttpInfo}.
+ *
+ * @param issueTemplateId The ID of the Jira issue template to update (required)
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<JiraIssueTemplateResponse>>
+ */
+ public CompletableFuture>
+ updateJiraIssueTemplateWithHttpInfoAsync(
+ UUID issueTemplateId, JiraIssueTemplateUpdateRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "updateJiraIssueTemplate";
+ 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 'issueTemplateId' is set
+ if (issueTemplateId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'issueTemplateId' when calling"
+ + " updateJiraIssueTemplate"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling updateJiraIssueTemplate"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/integration/jira/issue-templates/{issue_template_id}"
+ .replaceAll(
+ "\\{" + "issue_template_id" + "\\}",
+ apiClient.escapeString(issueTemplateId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.JiraIntegrationApi.updateJiraIssueTemplate",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "PATCH",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraAccountAttributes.java b/src/main/java/com/datadog/api/client/v2/model/JiraAccountAttributes.java
new file mode 100644
index 00000000000..977f7e2fd5a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraAccountAttributes.java
@@ -0,0 +1,203 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.time.OffsetDateTime;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes of a Jira account */
+@JsonPropertyOrder({
+ JiraAccountAttributes.JSON_PROPERTY_CONSUMER_KEY,
+ JiraAccountAttributes.JSON_PROPERTY_INSTANCE_URL,
+ JiraAccountAttributes.JSON_PROPERTY_LAST_WEBHOOK_TIMESTAMP
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraAccountAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CONSUMER_KEY = "consumer_key";
+ private String consumerKey;
+
+ public static final String JSON_PROPERTY_INSTANCE_URL = "instance_url";
+ private String instanceUrl;
+
+ public static final String JSON_PROPERTY_LAST_WEBHOOK_TIMESTAMP = "last_webhook_timestamp";
+ private OffsetDateTime lastWebhookTimestamp;
+
+ public JiraAccountAttributes() {}
+
+ @JsonCreator
+ public JiraAccountAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_CONSUMER_KEY) String consumerKey,
+ @JsonProperty(required = true, value = JSON_PROPERTY_INSTANCE_URL) String instanceUrl) {
+ this.consumerKey = consumerKey;
+ this.instanceUrl = instanceUrl;
+ }
+
+ public JiraAccountAttributes consumerKey(String consumerKey) {
+ this.consumerKey = consumerKey;
+ return this;
+ }
+
+ /**
+ * The consumer key for the Jira account
+ *
+ * @return consumerKey
+ */
+ @JsonProperty(JSON_PROPERTY_CONSUMER_KEY)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getConsumerKey() {
+ return consumerKey;
+ }
+
+ public void setConsumerKey(String consumerKey) {
+ this.consumerKey = consumerKey;
+ }
+
+ public JiraAccountAttributes instanceUrl(String instanceUrl) {
+ this.instanceUrl = instanceUrl;
+ return this;
+ }
+
+ /**
+ * The URL of the Jira instance
+ *
+ * @return instanceUrl
+ */
+ @JsonProperty(JSON_PROPERTY_INSTANCE_URL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getInstanceUrl() {
+ return instanceUrl;
+ }
+
+ public void setInstanceUrl(String instanceUrl) {
+ this.instanceUrl = instanceUrl;
+ }
+
+ public JiraAccountAttributes lastWebhookTimestamp(OffsetDateTime lastWebhookTimestamp) {
+ this.lastWebhookTimestamp = lastWebhookTimestamp;
+ return this;
+ }
+
+ /**
+ * Timestamp of the last webhook received
+ *
+ * @return lastWebhookTimestamp
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_LAST_WEBHOOK_TIMESTAMP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public OffsetDateTime getLastWebhookTimestamp() {
+ return lastWebhookTimestamp;
+ }
+
+ public void setLastWebhookTimestamp(OffsetDateTime lastWebhookTimestamp) {
+ this.lastWebhookTimestamp = lastWebhookTimestamp;
+ }
+
+ /**
+ * 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 JiraAccountAttributes
+ */
+ @JsonAnySetter
+ public JiraAccountAttributes 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 JiraAccountAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraAccountAttributes jiraAccountAttributes = (JiraAccountAttributes) o;
+ return Objects.equals(this.consumerKey, jiraAccountAttributes.consumerKey)
+ && Objects.equals(this.instanceUrl, jiraAccountAttributes.instanceUrl)
+ && Objects.equals(this.lastWebhookTimestamp, jiraAccountAttributes.lastWebhookTimestamp)
+ && Objects.equals(this.additionalProperties, jiraAccountAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(consumerKey, instanceUrl, lastWebhookTimestamp, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraAccountAttributes {\n");
+ sb.append(" consumerKey: ").append(toIndentedString(consumerKey)).append("\n");
+ sb.append(" instanceUrl: ").append(toIndentedString(instanceUrl)).append("\n");
+ sb.append(" lastWebhookTimestamp: ")
+ .append(toIndentedString(lastWebhookTimestamp))
+ .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/JiraAccountData.java b/src/main/java/com/datadog/api/client/v2/model/JiraAccountData.java
new file mode 100644
index 00000000000..73bc7becda2
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraAccountData.java
@@ -0,0 +1,209 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Data object for a Jira account */
+@JsonPropertyOrder({
+ JiraAccountData.JSON_PROPERTY_ATTRIBUTES,
+ JiraAccountData.JSON_PROPERTY_ID,
+ JiraAccountData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraAccountData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private JiraAccountAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private JiraAccountType type;
+
+ public JiraAccountData() {}
+
+ @JsonCreator
+ public JiraAccountData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ JiraAccountAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) JiraAccountType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public JiraAccountData attributes(JiraAccountAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes of a Jira account
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraAccountAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(JiraAccountAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public JiraAccountData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the Jira account
+ *
+ * @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 JiraAccountData type(JiraAccountType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Type identifier for Jira account resources
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraAccountType getType() {
+ return type;
+ }
+
+ public void setType(JiraAccountType 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 JiraAccountData
+ */
+ @JsonAnySetter
+ public JiraAccountData 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 JiraAccountData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraAccountData jiraAccountData = (JiraAccountData) o;
+ return Objects.equals(this.attributes, jiraAccountData.attributes)
+ && Objects.equals(this.id, jiraAccountData.id)
+ && Objects.equals(this.type, jiraAccountData.type)
+ && Objects.equals(this.additionalProperties, jiraAccountData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraAccountData {\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/JiraAccountRelationship.java b/src/main/java/com/datadog/api/client/v2/model/JiraAccountRelationship.java
new file mode 100644
index 00000000000..2b7a2135cf4
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraAccountRelationship.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;
+
+/** Relationship to a Jira account */
+@JsonPropertyOrder({JiraAccountRelationship.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraAccountRelationship {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private JiraAccountData data;
+
+ public JiraAccountRelationship() {}
+
+ @JsonCreator
+ public JiraAccountRelationship(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) JiraAccountData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public JiraAccountRelationship data(JiraAccountData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object for a Jira account
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraAccountData getData() {
+ return data;
+ }
+
+ public void setData(JiraAccountData 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 JiraAccountRelationship
+ */
+ @JsonAnySetter
+ public JiraAccountRelationship 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 JiraAccountRelationship object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraAccountRelationship jiraAccountRelationship = (JiraAccountRelationship) o;
+ return Objects.equals(this.data, jiraAccountRelationship.data)
+ && Objects.equals(this.additionalProperties, jiraAccountRelationship.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraAccountRelationship {\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/JiraAccountType.java b/src/main/java/com/datadog/api/client/v2/model/JiraAccountType.java
new file mode 100644
index 00000000000..932435f0ff3
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraAccountType.java
@@ -0,0 +1,54 @@
+/*
+ * 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 identifier for Jira account resources */
+@JsonSerialize(using = JiraAccountType.JiraAccountTypeSerializer.class)
+public class JiraAccountType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("jira-account"));
+
+ public static final JiraAccountType JIRA_ACCOUNT = new JiraAccountType("jira-account");
+
+ JiraAccountType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class JiraAccountTypeSerializer extends StdSerializer {
+ public JiraAccountTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public JiraAccountTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(JiraAccountType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static JiraAccountType fromValue(String value) {
+ return new JiraAccountType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraAccountsMeta.java b/src/main/java/com/datadog/api/client/v2/model/JiraAccountsMeta.java
new file mode 100644
index 00000000000..c6b31b84b3c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraAccountsMeta.java
@@ -0,0 +1,135 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Metadata for Jira accounts response */
+@JsonPropertyOrder({JiraAccountsMeta.JSON_PROPERTY_PUBLIC_KEY})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraAccountsMeta {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_PUBLIC_KEY = "public_key";
+ private String publicKey;
+
+ public JiraAccountsMeta publicKey(String publicKey) {
+ this.publicKey = publicKey;
+ return this;
+ }
+
+ /**
+ * Public key for the Jira integration
+ *
+ * @return publicKey
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PUBLIC_KEY)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getPublicKey() {
+ return publicKey;
+ }
+
+ public void setPublicKey(String publicKey) {
+ this.publicKey = publicKey;
+ }
+
+ /**
+ * 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 JiraAccountsMeta
+ */
+ @JsonAnySetter
+ public JiraAccountsMeta 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 JiraAccountsMeta object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraAccountsMeta jiraAccountsMeta = (JiraAccountsMeta) o;
+ return Objects.equals(this.publicKey, jiraAccountsMeta.publicKey)
+ && Objects.equals(this.additionalProperties, jiraAccountsMeta.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(publicKey, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraAccountsMeta {\n");
+ sb.append(" publicKey: ").append(toIndentedString(publicKey)).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/JiraAccountsResponse.java b/src/main/java/com/datadog/api/client/v2/model/JiraAccountsResponse.java
new file mode 100644
index 00000000000..d808bfc037a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraAccountsResponse.java
@@ -0,0 +1,184 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** Response containing Jira accounts */
+@JsonPropertyOrder({
+ JiraAccountsResponse.JSON_PROPERTY_DATA,
+ JiraAccountsResponse.JSON_PROPERTY_META
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraAccountsResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = new ArrayList<>();
+
+ public static final String JSON_PROPERTY_META = "meta";
+ private JiraAccountsMeta meta;
+
+ public JiraAccountsResponse() {}
+
+ @JsonCreator
+ public JiraAccountsResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) {
+ this.data = data;
+ }
+
+ public JiraAccountsResponse data(List data) {
+ this.data = data;
+ for (JiraAccountData item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public JiraAccountsResponse addDataItem(JiraAccountData dataItem) {
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Array of Jira account data objects
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public JiraAccountsResponse meta(JiraAccountsMeta meta) {
+ this.meta = meta;
+ this.unparsed |= meta.unparsed;
+ return this;
+ }
+
+ /**
+ * Metadata for Jira accounts response
+ *
+ * @return meta
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_META)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JiraAccountsMeta getMeta() {
+ return meta;
+ }
+
+ public void setMeta(JiraAccountsMeta meta) {
+ this.meta = meta;
+ }
+
+ /**
+ * A container for additional, undeclared properties. This is a holder for any undeclared
+ * properties as specified with the 'additionalProperties' keyword in the OAS document.
+ */
+ private Map additionalProperties;
+
+ /**
+ * Set the additional (undeclared) property with the specified name and value. If the property
+ * does not already exist, create it otherwise replace it.
+ *
+ * @param key The arbitrary key to set
+ * @param value The associated value
+ * @return JiraAccountsResponse
+ */
+ @JsonAnySetter
+ public JiraAccountsResponse 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 JiraAccountsResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraAccountsResponse jiraAccountsResponse = (JiraAccountsResponse) o;
+ return Objects.equals(this.data, jiraAccountsResponse.data)
+ && Objects.equals(this.meta, jiraAccountsResponse.meta)
+ && Objects.equals(this.additionalProperties, jiraAccountsResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, meta, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraAccountsResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" meta: ").append(toIndentedString(meta)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequest.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequest.java
new file mode 100644
index 00000000000..098cda304fd
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequest.java
@@ -0,0 +1,138 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Request to create a Jira issue template */
+@JsonPropertyOrder({JiraIssueTemplateCreateRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateCreateRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private JiraIssueTemplateCreateRequestData data;
+
+ public JiraIssueTemplateCreateRequest data(JiraIssueTemplateCreateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object for creating a Jira issue template
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JiraIssueTemplateCreateRequestData getData() {
+ return data;
+ }
+
+ public void setData(JiraIssueTemplateCreateRequestData 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 JiraIssueTemplateCreateRequest
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateCreateRequest 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 JiraIssueTemplateCreateRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateCreateRequest jiraIssueTemplateCreateRequest =
+ (JiraIssueTemplateCreateRequest) o;
+ return Objects.equals(this.data, jiraIssueTemplateCreateRequest.data)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateCreateRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateCreateRequest {\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/JiraIssueTemplateCreateRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequestAttributes.java
new file mode 100644
index 00000000000..b7b8e4dfd3c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequestAttributes.java
@@ -0,0 +1,258 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes for creating a Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateCreateRequestAttributes.JSON_PROPERTY_FIELDS,
+ JiraIssueTemplateCreateRequestAttributes.JSON_PROPERTY_ISSUE_TYPE_ID,
+ JiraIssueTemplateCreateRequestAttributes.JSON_PROPERTY_JIRA_ACCOUNT,
+ JiraIssueTemplateCreateRequestAttributes.JSON_PROPERTY_NAME,
+ JiraIssueTemplateCreateRequestAttributes.JSON_PROPERTY_PROJECT_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateCreateRequestAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FIELDS = "fields";
+ private Map fields = null;
+
+ public static final String JSON_PROPERTY_ISSUE_TYPE_ID = "issue_type_id";
+ private String issueTypeId;
+
+ public static final String JSON_PROPERTY_JIRA_ACCOUNT = "jira-account";
+ private JiraIssueTemplateCreateRequestAttributesJiraAccount jiraAccount;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_PROJECT_ID = "project_id";
+ private String projectId;
+
+ public JiraIssueTemplateCreateRequestAttributes fields(Map fields) {
+ this.fields = fields;
+ return this;
+ }
+
+ public JiraIssueTemplateCreateRequestAttributes putFieldsItem(String key, Object fieldsItem) {
+ if (this.fields == null) {
+ this.fields = new HashMap<>();
+ }
+ this.fields.put(key, fieldsItem);
+ return this;
+ }
+
+ /**
+ * Custom fields for the Jira issue template
+ *
+ * @return fields
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FIELDS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getFields() {
+ return fields;
+ }
+
+ public void setFields(Map fields) {
+ this.fields = fields;
+ }
+
+ public JiraIssueTemplateCreateRequestAttributes issueTypeId(String issueTypeId) {
+ this.issueTypeId = issueTypeId;
+ return this;
+ }
+
+ /**
+ * The ID of the Jira issue type
+ *
+ * @return issueTypeId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ISSUE_TYPE_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getIssueTypeId() {
+ return issueTypeId;
+ }
+
+ public void setIssueTypeId(String issueTypeId) {
+ this.issueTypeId = issueTypeId;
+ }
+
+ public JiraIssueTemplateCreateRequestAttributes jiraAccount(
+ JiraIssueTemplateCreateRequestAttributesJiraAccount jiraAccount) {
+ this.jiraAccount = jiraAccount;
+ this.unparsed |= jiraAccount.unparsed;
+ return this;
+ }
+
+ /**
+ * Reference to the Jira account
+ *
+ * @return jiraAccount
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_JIRA_ACCOUNT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JiraIssueTemplateCreateRequestAttributesJiraAccount getJiraAccount() {
+ return jiraAccount;
+ }
+
+ public void setJiraAccount(JiraIssueTemplateCreateRequestAttributesJiraAccount jiraAccount) {
+ this.jiraAccount = jiraAccount;
+ }
+
+ public JiraIssueTemplateCreateRequestAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The name of the issue template
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public JiraIssueTemplateCreateRequestAttributes projectId(String projectId) {
+ this.projectId = projectId;
+ return this;
+ }
+
+ /**
+ * The ID of the Jira project
+ *
+ * @return projectId
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PROJECT_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ 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 JiraIssueTemplateCreateRequestAttributes
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateCreateRequestAttributes 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 JiraIssueTemplateCreateRequestAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateCreateRequestAttributes jiraIssueTemplateCreateRequestAttributes =
+ (JiraIssueTemplateCreateRequestAttributes) o;
+ return Objects.equals(this.fields, jiraIssueTemplateCreateRequestAttributes.fields)
+ && Objects.equals(this.issueTypeId, jiraIssueTemplateCreateRequestAttributes.issueTypeId)
+ && Objects.equals(this.jiraAccount, jiraIssueTemplateCreateRequestAttributes.jiraAccount)
+ && Objects.equals(this.name, jiraIssueTemplateCreateRequestAttributes.name)
+ && Objects.equals(this.projectId, jiraIssueTemplateCreateRequestAttributes.projectId)
+ && Objects.equals(
+ this.additionalProperties,
+ jiraIssueTemplateCreateRequestAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fields, issueTypeId, jiraAccount, name, projectId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateCreateRequestAttributes {\n");
+ sb.append(" fields: ").append(toIndentedString(fields)).append("\n");
+ sb.append(" issueTypeId: ").append(toIndentedString(issueTypeId)).append("\n");
+ sb.append(" jiraAccount: ").append(toIndentedString(jiraAccount)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/JiraIssueTemplateCreateRequestAttributesJiraAccount.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequestAttributesJiraAccount.java
new file mode 100644
index 00000000000..564f13ffed8
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequestAttributesJiraAccount.java
@@ -0,0 +1,151 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.UUID;
+
+/** Reference to the Jira account */
+@JsonPropertyOrder({JiraIssueTemplateCreateRequestAttributesJiraAccount.JSON_PROPERTY_ID})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateCreateRequestAttributesJiraAccount {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ID = "id";
+ private UUID id;
+
+ public JiraIssueTemplateCreateRequestAttributesJiraAccount() {}
+
+ @JsonCreator
+ public JiraIssueTemplateCreateRequestAttributesJiraAccount(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id) {
+ this.id = id;
+ }
+
+ public JiraIssueTemplateCreateRequestAttributesJiraAccount id(UUID id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * The ID of the Jira account
+ *
+ * @return id
+ */
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public UUID getId() {
+ return id;
+ }
+
+ public void setId(UUID id) {
+ this.id = id;
+ }
+
+ /**
+ * 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 JiraIssueTemplateCreateRequestAttributesJiraAccount
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateCreateRequestAttributesJiraAccount 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 JiraIssueTemplateCreateRequestAttributesJiraAccount object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateCreateRequestAttributesJiraAccount
+ jiraIssueTemplateCreateRequestAttributesJiraAccount =
+ (JiraIssueTemplateCreateRequestAttributesJiraAccount) o;
+ return Objects.equals(this.id, jiraIssueTemplateCreateRequestAttributesJiraAccount.id)
+ && Objects.equals(
+ this.additionalProperties,
+ jiraIssueTemplateCreateRequestAttributesJiraAccount.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateCreateRequestAttributesJiraAccount {\n");
+ sb.append(" id: ").append(toIndentedString(id)).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/JiraIssueTemplateCreateRequestData.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequestData.java
new file mode 100644
index 00000000000..cd6a22f1ff9
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateCreateRequestData.java
@@ -0,0 +1,172 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Data object for creating a Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateCreateRequestData.JSON_PROPERTY_ATTRIBUTES,
+ JiraIssueTemplateCreateRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateCreateRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private JiraIssueTemplateCreateRequestAttributes attributes;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private JiraIssueTemplateType type;
+
+ public JiraIssueTemplateCreateRequestData attributes(
+ JiraIssueTemplateCreateRequestAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes for creating a Jira issue template
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JiraIssueTemplateCreateRequestAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(JiraIssueTemplateCreateRequestAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public JiraIssueTemplateCreateRequestData type(JiraIssueTemplateType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Type identifier for Jira issue template resources
+ *
+ * @return type
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JiraIssueTemplateType getType() {
+ return type;
+ }
+
+ public void setType(JiraIssueTemplateType 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 JiraIssueTemplateCreateRequestData
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateCreateRequestData 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 JiraIssueTemplateCreateRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateCreateRequestData jiraIssueTemplateCreateRequestData =
+ (JiraIssueTemplateCreateRequestData) o;
+ return Objects.equals(this.attributes, jiraIssueTemplateCreateRequestData.attributes)
+ && Objects.equals(this.type, jiraIssueTemplateCreateRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateCreateRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateCreateRequestData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateData.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateData.java
new file mode 100644
index 00000000000..3f4681f9b4c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateData.java
@@ -0,0 +1,238 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.UUID;
+
+/** Data object for a Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateData.JSON_PROPERTY_ATTRIBUTES,
+ JiraIssueTemplateData.JSON_PROPERTY_ID,
+ JiraIssueTemplateData.JSON_PROPERTY_RELATIONSHIPS,
+ JiraIssueTemplateData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private JiraIssueTemplateDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private UUID id;
+
+ public static final String JSON_PROPERTY_RELATIONSHIPS = "relationships";
+ private JiraIssueTemplateDataRelationships relationships;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private JiraIssueTemplateType type;
+
+ public JiraIssueTemplateData() {}
+
+ @JsonCreator
+ public JiraIssueTemplateData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ JiraIssueTemplateDataAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ID) UUID id,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) JiraIssueTemplateType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.id = id;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public JiraIssueTemplateData attributes(JiraIssueTemplateDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes of a Jira issue template
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraIssueTemplateDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(JiraIssueTemplateDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public JiraIssueTemplateData id(UUID id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Unique identifier for the Jira issue template
+ *
+ * @return id
+ */
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public UUID getId() {
+ return id;
+ }
+
+ public void setId(UUID id) {
+ this.id = id;
+ }
+
+ public JiraIssueTemplateData relationships(JiraIssueTemplateDataRelationships relationships) {
+ this.relationships = relationships;
+ this.unparsed |= relationships.unparsed;
+ return this;
+ }
+
+ /**
+ * Relationships of a Jira issue template
+ *
+ * @return relationships
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RELATIONSHIPS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public JiraIssueTemplateDataRelationships getRelationships() {
+ return relationships;
+ }
+
+ public void setRelationships(JiraIssueTemplateDataRelationships relationships) {
+ this.relationships = relationships;
+ }
+
+ public JiraIssueTemplateData type(JiraIssueTemplateType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Type identifier for Jira issue template resources
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraIssueTemplateType getType() {
+ return type;
+ }
+
+ public void setType(JiraIssueTemplateType 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 JiraIssueTemplateData
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateData 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 JiraIssueTemplateData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateData jiraIssueTemplateData = (JiraIssueTemplateData) o;
+ return Objects.equals(this.attributes, jiraIssueTemplateData.attributes)
+ && Objects.equals(this.id, jiraIssueTemplateData.id)
+ && Objects.equals(this.relationships, jiraIssueTemplateData.relationships)
+ && Objects.equals(this.type, jiraIssueTemplateData.type)
+ && Objects.equals(this.additionalProperties, jiraIssueTemplateData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, relationships, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" relationships: ").append(toIndentedString(relationships)).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/JiraIssueTemplateDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateDataAttributes.java
new file mode 100644
index 00000000000..038936ae066
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateDataAttributes.java
@@ -0,0 +1,236 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes of a Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateDataAttributes.JSON_PROPERTY_FIELDS,
+ JiraIssueTemplateDataAttributes.JSON_PROPERTY_ISSUE_TYPE_ID,
+ JiraIssueTemplateDataAttributes.JSON_PROPERTY_NAME,
+ JiraIssueTemplateDataAttributes.JSON_PROPERTY_PROJECT_ID
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FIELDS = "fields";
+ private Map fields = new HashMap();
+
+ public static final String JSON_PROPERTY_ISSUE_TYPE_ID = "issue_type_id";
+ private String issueTypeId;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public static final String JSON_PROPERTY_PROJECT_ID = "project_id";
+ private String projectId;
+
+ public JiraIssueTemplateDataAttributes() {}
+
+ @JsonCreator
+ public JiraIssueTemplateDataAttributes(
+ @JsonProperty(required = true, value = JSON_PROPERTY_FIELDS) Map fields,
+ @JsonProperty(required = true, value = JSON_PROPERTY_ISSUE_TYPE_ID) String issueTypeId,
+ @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name,
+ @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_ID) String projectId) {
+ this.fields = fields;
+ this.issueTypeId = issueTypeId;
+ this.name = name;
+ this.projectId = projectId;
+ }
+
+ public JiraIssueTemplateDataAttributes fields(Map fields) {
+ this.fields = fields;
+ return this;
+ }
+
+ public JiraIssueTemplateDataAttributes putFieldsItem(String key, Object fieldsItem) {
+ this.fields.put(key, fieldsItem);
+ return this;
+ }
+
+ /**
+ * Custom fields for the Jira issue template
+ *
+ * @return fields
+ */
+ @JsonProperty(JSON_PROPERTY_FIELDS)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public Map getFields() {
+ return fields;
+ }
+
+ public void setFields(Map fields) {
+ this.fields = fields;
+ }
+
+ public JiraIssueTemplateDataAttributes issueTypeId(String issueTypeId) {
+ this.issueTypeId = issueTypeId;
+ return this;
+ }
+
+ /**
+ * The ID of the Jira issue type
+ *
+ * @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 JiraIssueTemplateDataAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The name of the issue template
+ *
+ * @return name
+ */
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public JiraIssueTemplateDataAttributes projectId(String projectId) {
+ this.projectId = projectId;
+ return this;
+ }
+
+ /**
+ * The ID of the Jira project
+ *
+ * @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 JiraIssueTemplateDataAttributes
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateDataAttributes 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 JiraIssueTemplateDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateDataAttributes jiraIssueTemplateDataAttributes =
+ (JiraIssueTemplateDataAttributes) o;
+ return Objects.equals(this.fields, jiraIssueTemplateDataAttributes.fields)
+ && Objects.equals(this.issueTypeId, jiraIssueTemplateDataAttributes.issueTypeId)
+ && Objects.equals(this.name, jiraIssueTemplateDataAttributes.name)
+ && Objects.equals(this.projectId, jiraIssueTemplateDataAttributes.projectId)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fields, issueTypeId, name, projectId, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateDataAttributes {\n");
+ sb.append(" fields: ").append(toIndentedString(fields)).append("\n");
+ sb.append(" issueTypeId: ").append(toIndentedString(issueTypeId)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/JiraIssueTemplateDataRelationships.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateDataRelationships.java
new file mode 100644
index 00000000000..5b702e96d14
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateDataRelationships.java
@@ -0,0 +1,148 @@
+/*
+ * 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;
+
+/** Relationships of a Jira issue template */
+@JsonPropertyOrder({JiraIssueTemplateDataRelationships.JSON_PROPERTY_JIRA_ACCOUNT})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateDataRelationships {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_JIRA_ACCOUNT = "jira-account";
+ private JiraAccountRelationship jiraAccount;
+
+ public JiraIssueTemplateDataRelationships() {}
+
+ @JsonCreator
+ public JiraIssueTemplateDataRelationships(
+ @JsonProperty(required = true, value = JSON_PROPERTY_JIRA_ACCOUNT)
+ JiraAccountRelationship jiraAccount) {
+ this.jiraAccount = jiraAccount;
+ this.unparsed |= jiraAccount.unparsed;
+ }
+
+ public JiraIssueTemplateDataRelationships jiraAccount(JiraAccountRelationship jiraAccount) {
+ this.jiraAccount = jiraAccount;
+ this.unparsed |= jiraAccount.unparsed;
+ return this;
+ }
+
+ /**
+ * Relationship to a Jira account
+ *
+ * @return jiraAccount
+ */
+ @JsonProperty(JSON_PROPERTY_JIRA_ACCOUNT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraAccountRelationship getJiraAccount() {
+ return jiraAccount;
+ }
+
+ public void setJiraAccount(JiraAccountRelationship jiraAccount) {
+ this.jiraAccount = jiraAccount;
+ }
+
+ /**
+ * 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 JiraIssueTemplateDataRelationships
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateDataRelationships 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 JiraIssueTemplateDataRelationships object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateDataRelationships jiraIssueTemplateDataRelationships =
+ (JiraIssueTemplateDataRelationships) o;
+ return Objects.equals(this.jiraAccount, jiraIssueTemplateDataRelationships.jiraAccount)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateDataRelationships.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(jiraAccount, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateDataRelationships {\n");
+ sb.append(" jiraAccount: ").append(toIndentedString(jiraAccount)).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/JiraIssueTemplateResponse.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateResponse.java
new file mode 100644
index 00000000000..b86bda33350
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateResponse.java
@@ -0,0 +1,189 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** Response containing a single Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateResponse.JSON_PROPERTY_DATA,
+ JiraIssueTemplateResponse.JSON_PROPERTY_INCLUDED
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private JiraIssueTemplateData data;
+
+ public static final String JSON_PROPERTY_INCLUDED = "included";
+ private List included = null;
+
+ public JiraIssueTemplateResponse() {}
+
+ @JsonCreator
+ public JiraIssueTemplateResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) JiraIssueTemplateData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public JiraIssueTemplateResponse data(JiraIssueTemplateData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object for a Jira issue template
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraIssueTemplateData getData() {
+ return data;
+ }
+
+ public void setData(JiraIssueTemplateData data) {
+ this.data = data;
+ }
+
+ public JiraIssueTemplateResponse included(List included) {
+ this.included = included;
+ for (JiraAccountData item : included) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public JiraIssueTemplateResponse addIncludedItem(JiraAccountData includedItem) {
+ if (this.included == null) {
+ this.included = new ArrayList<>();
+ }
+ this.included.add(includedItem);
+ this.unparsed |= includedItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Array of Jira account data objects
+ *
+ * @return included
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_INCLUDED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getIncluded() {
+ return included;
+ }
+
+ public void setIncluded(List included) {
+ this.included = included;
+ }
+
+ /**
+ * 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 JiraIssueTemplateResponse
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateResponse 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 JiraIssueTemplateResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateResponse jiraIssueTemplateResponse = (JiraIssueTemplateResponse) o;
+ return Objects.equals(this.data, jiraIssueTemplateResponse.data)
+ && Objects.equals(this.included, jiraIssueTemplateResponse.included)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, included, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" included: ").append(toIndentedString(included)).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/JiraIssueTemplateType.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateType.java
new file mode 100644
index 00000000000..13c09c4355a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateType.java
@@ -0,0 +1,56 @@
+/*
+ * 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 identifier for Jira issue template resources */
+@JsonSerialize(using = JiraIssueTemplateType.JiraIssueTemplateTypeSerializer.class)
+public class JiraIssueTemplateType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("jira-issue-template"));
+
+ public static final JiraIssueTemplateType JIRA_ISSUE_TEMPLATE =
+ new JiraIssueTemplateType("jira-issue-template");
+
+ JiraIssueTemplateType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class JiraIssueTemplateTypeSerializer extends StdSerializer {
+ public JiraIssueTemplateTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public JiraIssueTemplateTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ JiraIssueTemplateType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static JiraIssueTemplateType fromValue(String value) {
+ return new JiraIssueTemplateType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequest.java
new file mode 100644
index 00000000000..c4da80facc7
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequest.java
@@ -0,0 +1,148 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Request to update a Jira issue template */
+@JsonPropertyOrder({JiraIssueTemplateUpdateRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateUpdateRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private JiraIssueTemplateUpdateRequestData data;
+
+ public JiraIssueTemplateUpdateRequest() {}
+
+ @JsonCreator
+ public JiraIssueTemplateUpdateRequest(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA)
+ JiraIssueTemplateUpdateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ }
+
+ public JiraIssueTemplateUpdateRequest data(JiraIssueTemplateUpdateRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Data object for updating a Jira issue template
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraIssueTemplateUpdateRequestData getData() {
+ return data;
+ }
+
+ public void setData(JiraIssueTemplateUpdateRequestData 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 JiraIssueTemplateUpdateRequest
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateUpdateRequest 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 JiraIssueTemplateUpdateRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateUpdateRequest jiraIssueTemplateUpdateRequest =
+ (JiraIssueTemplateUpdateRequest) o;
+ return Objects.equals(this.data, jiraIssueTemplateUpdateRequest.data)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateUpdateRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateUpdateRequest {\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/JiraIssueTemplateUpdateRequestAttributes.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequestAttributes.java
new file mode 100644
index 00000000000..765d47b2b0d
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequestAttributes.java
@@ -0,0 +1,175 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** Attributes for updating a Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateUpdateRequestAttributes.JSON_PROPERTY_FIELDS,
+ JiraIssueTemplateUpdateRequestAttributes.JSON_PROPERTY_NAME
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateUpdateRequestAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_FIELDS = "fields";
+ private Map fields = null;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public JiraIssueTemplateUpdateRequestAttributes fields(Map fields) {
+ this.fields = fields;
+ return this;
+ }
+
+ public JiraIssueTemplateUpdateRequestAttributes putFieldsItem(String key, Object fieldsItem) {
+ if (this.fields == null) {
+ this.fields = new HashMap<>();
+ }
+ this.fields.put(key, fieldsItem);
+ return this;
+ }
+
+ /**
+ * Custom fields for the Jira issue template
+ *
+ * @return fields
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_FIELDS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Map getFields() {
+ return fields;
+ }
+
+ public void setFields(Map fields) {
+ this.fields = fields;
+ }
+
+ public JiraIssueTemplateUpdateRequestAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The name of the issue template
+ *
+ * @return name
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * 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 JiraIssueTemplateUpdateRequestAttributes
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateUpdateRequestAttributes 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 JiraIssueTemplateUpdateRequestAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateUpdateRequestAttributes jiraIssueTemplateUpdateRequestAttributes =
+ (JiraIssueTemplateUpdateRequestAttributes) o;
+ return Objects.equals(this.fields, jiraIssueTemplateUpdateRequestAttributes.fields)
+ && Objects.equals(this.name, jiraIssueTemplateUpdateRequestAttributes.name)
+ && Objects.equals(
+ this.additionalProperties,
+ jiraIssueTemplateUpdateRequestAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fields, name, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateUpdateRequestAttributes {\n");
+ sb.append(" fields: ").append(toIndentedString(fields)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).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/JiraIssueTemplateUpdateRequestData.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequestData.java
new file mode 100644
index 00000000000..295faa7e5f2
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplateUpdateRequestData.java
@@ -0,0 +1,184 @@
+/*
+ * 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;
+
+/** Data object for updating a Jira issue template */
+@JsonPropertyOrder({
+ JiraIssueTemplateUpdateRequestData.JSON_PROPERTY_ATTRIBUTES,
+ JiraIssueTemplateUpdateRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplateUpdateRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private JiraIssueTemplateUpdateRequestAttributes attributes;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private JiraIssueTemplateType type;
+
+ public JiraIssueTemplateUpdateRequestData() {}
+
+ @JsonCreator
+ public JiraIssueTemplateUpdateRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES)
+ JiraIssueTemplateUpdateRequestAttributes attributes,
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) JiraIssueTemplateType type) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public JiraIssueTemplateUpdateRequestData attributes(
+ JiraIssueTemplateUpdateRequestAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Attributes for updating a Jira issue template
+ *
+ * @return attributes
+ */
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraIssueTemplateUpdateRequestAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(JiraIssueTemplateUpdateRequestAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public JiraIssueTemplateUpdateRequestData type(JiraIssueTemplateType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Type identifier for Jira issue template resources
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public JiraIssueTemplateType getType() {
+ return type;
+ }
+
+ public void setType(JiraIssueTemplateType 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 JiraIssueTemplateUpdateRequestData
+ */
+ @JsonAnySetter
+ public JiraIssueTemplateUpdateRequestData 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 JiraIssueTemplateUpdateRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplateUpdateRequestData jiraIssueTemplateUpdateRequestData =
+ (JiraIssueTemplateUpdateRequestData) o;
+ return Objects.equals(this.attributes, jiraIssueTemplateUpdateRequestData.attributes)
+ && Objects.equals(this.type, jiraIssueTemplateUpdateRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplateUpdateRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplateUpdateRequestData {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" additionalProperties: ")
+ .append(toIndentedString(additionalProperties))
+ .append("\n");
+ sb.append('}');
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplatesResponse.java b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplatesResponse.java
new file mode 100644
index 00000000000..981d077d129
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/JiraIssueTemplatesResponse.java
@@ -0,0 +1,196 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** Response containing Jira issue templates */
+@JsonPropertyOrder({
+ JiraIssueTemplatesResponse.JSON_PROPERTY_DATA,
+ JiraIssueTemplatesResponse.JSON_PROPERTY_INCLUDED
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class JiraIssueTemplatesResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private List data = new ArrayList<>();
+
+ public static final String JSON_PROPERTY_INCLUDED = "included";
+ private List included = null;
+
+ public JiraIssueTemplatesResponse() {}
+
+ @JsonCreator
+ public JiraIssueTemplatesResponse(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) {
+ this.data = data;
+ }
+
+ public JiraIssueTemplatesResponse data(List data) {
+ this.data = data;
+ for (JiraIssueTemplateData item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public JiraIssueTemplatesResponse addDataItem(JiraIssueTemplateData dataItem) {
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Array of Jira issue template data objects
+ *
+ * @return data
+ */
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public JiraIssueTemplatesResponse included(List included) {
+ this.included = included;
+ for (JiraAccountData item : included) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public JiraIssueTemplatesResponse addIncludedItem(JiraAccountData includedItem) {
+ if (this.included == null) {
+ this.included = new ArrayList<>();
+ }
+ this.included.add(includedItem);
+ this.unparsed |= includedItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Array of Jira account data objects
+ *
+ * @return included
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_INCLUDED)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getIncluded() {
+ return included;
+ }
+
+ public void setIncluded(List included) {
+ this.included = included;
+ }
+
+ /**
+ * 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 JiraIssueTemplatesResponse
+ */
+ @JsonAnySetter
+ public JiraIssueTemplatesResponse 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 JiraIssueTemplatesResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ JiraIssueTemplatesResponse jiraIssueTemplatesResponse = (JiraIssueTemplatesResponse) o;
+ return Objects.equals(this.data, jiraIssueTemplatesResponse.data)
+ && Objects.equals(this.included, jiraIssueTemplatesResponse.included)
+ && Objects.equals(
+ this.additionalProperties, jiraIssueTemplatesResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, included, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class JiraIssueTemplatesResponse {\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" included: ").append(toIndentedString(included)).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/test/resources/com/datadog/api/client/v2/api/jira_integration.feature b/src/test/resources/com/datadog/api/client/v2/api/jira_integration.feature
new file mode 100644
index 00000000000..528a78b7b3b
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/jira_integration.feature
@@ -0,0 +1,105 @@
+@endpoint(jira-integration) @endpoint(jira-integration-v2)
+Feature: Jira Integration
+ Manage your Jira Integration. Atlassian Jira is a project management and
+ issue tracking tool for teams to coordinate work and handle tasks
+ efficiently.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "JiraIntegration" API
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Create Jira issue template returns "Bad Request" response
+ Given operation "CreateJiraIssueTemplate" enabled
+ And new "CreateJiraIssueTemplate" request
+ And body with value {"data": {"attributes": {"fields": {"description": {"payload": "Test", "type": "json"}}, "issue_type_id": "12730", "jira-account": {"id": "80f16d40-1fba-486e-b1fc-983e6ca19bec"}, "name": "test-template", "project_id": "10772"}, "type": "jira-issue-template"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Create Jira issue template returns "Created" response
+ Given operation "CreateJiraIssueTemplate" enabled
+ And new "CreateJiraIssueTemplate" request
+ And body with value {"data": {"attributes": {"fields": {"description": {"payload": "Test", "type": "json"}}, "issue_type_id": "12730", "jira-account": {"id": "80f16d40-1fba-486e-b1fc-983e6ca19bec"}, "name": "test-template", "project_id": "10772"}, "type": "jira-issue-template"}}
+ When the request is sent
+ Then the response status is 201 Created
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Delete Jira account returns "Bad Request" response
+ Given operation "DeleteJiraAccount" enabled
+ And new "DeleteJiraAccount" request
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Delete Jira account returns "No Content" response
+ Given operation "DeleteJiraAccount" enabled
+ And new "DeleteJiraAccount" request
+ And request contains "account_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Delete Jira issue template returns "No Content" response
+ Given operation "DeleteJiraIssueTemplate" enabled
+ And new "DeleteJiraIssueTemplate" request
+ And request contains "issue_template_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 204 No Content
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Get Jira issue template returns "Bad Request" response
+ Given operation "GetJiraIssueTemplate" enabled
+ And new "GetJiraIssueTemplate" request
+ And request contains "issue_template_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Get Jira issue template returns "OK" response
+ Given operation "GetJiraIssueTemplate" enabled
+ And new "GetJiraIssueTemplate" request
+ And request contains "issue_template_id" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: List Jira accounts returns "Not Found" response
+ Given operation "ListJiraAccounts" enabled
+ And new "ListJiraAccounts" request
+ When the request is sent
+ Then the response status is 404 Not Found
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: List Jira accounts returns "OK" response
+ Given operation "ListJiraAccounts" enabled
+ And new "ListJiraAccounts" request
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: List Jira issue templates returns "OK" response
+ Given operation "ListJiraIssueTemplates" enabled
+ And new "ListJiraIssueTemplates" request
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Update Jira issue template returns "Bad Request" response
+ Given operation "UpdateJiraIssueTemplate" enabled
+ And new "UpdateJiraIssueTemplate" request
+ And request contains "issue_template_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"fields": {"description": {"payload": "Updated Description", "type": "json"}}, "name": "test_template_updated"}, "type": "jira-issue-template"}}
+ When the request is sent
+ Then the response status is 400 Bad Request
+
+ @generated @skip @team:Datadog/collaboration-integrations
+ Scenario: Update Jira issue template returns "OK" response
+ Given operation "UpdateJiraIssueTemplate" enabled
+ And new "UpdateJiraIssueTemplate" request
+ And request contains "issue_template_id" parameter from "REPLACE.ME"
+ And body with value {"data": {"attributes": {"fields": {"description": {"payload": "Updated Description", "type": "json"}}, "name": "test_template_updated"}, "type": "jira-issue-template"}}
+ When the request is sent
+ Then the response status is 200 OK
diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json
index 59046d30f0b..1cd2195bba1 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
@@ -2001,6 +2001,55 @@
"type": "idempotent"
}
},
+ "ListJiraAccounts": {
+ "tag": "Jira Integration",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "DeleteJiraAccount": {
+ "tag": "Jira Integration",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "ListJiraIssueTemplates": {
+ "tag": "Jira Integration",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "CreateJiraIssueTemplate": {
+ "tag": "Jira Integration",
+ "undo": {
+ "operationId": "DeleteJiraIssueTemplate",
+ "parameters": [
+ {
+ "name": "issue_template_id",
+ "source": ""
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
+ "DeleteJiraIssueTemplate": {
+ "tag": "Jira Integration",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "GetJiraIssueTemplate": {
+ "tag": "Jira Integration",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "UpdateJiraIssueTemplate": {
+ "tag": "Jira Integration",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
"GetChannelByName": {
"tag": "Microsoft Teams Integration",
"undo": {