diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 95f5775c6b9..6ad49e7f0f3 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -5362,6 +5362,56 @@ components:
example: _latest
type: string
type: object
+ AssignSeatsUserRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/AssignSeatsUserRequestData'
+ type: object
+ AssignSeatsUserRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/AssignSeatsUserRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SeatAssignmentsDataType'
+ required:
+ - type
+ type: object
+ AssignSeatsUserRequestDataAttributes:
+ properties:
+ product_code:
+ type: string
+ user_uuids:
+ items:
+ type: string
+ type: array
+ type: object
+ AssignSeatsUserResponse:
+ properties:
+ data:
+ $ref: '#/components/schemas/AssignSeatsUserResponseData'
+ type: object
+ AssignSeatsUserResponseData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/AssignSeatsUserResponseDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SeatAssignmentsDataType'
+ required:
+ - type
+ type: object
+ AssignSeatsUserResponseDataAttributes:
+ properties:
+ assigned_ids:
+ items:
+ type: string
+ type: array
+ product_code:
+ type: string
+ type: object
AttachCaseRequest:
description: Request for attaching security findings to a case.
properties:
@@ -51879,6 +51929,65 @@ components:
- ISSUE_ASSIGNEE
- ISSUE_CASE
- ISSUE_TEAM_OWNERS
+ SeatAssignmentsDataType:
+ default: seat-assignments
+ description: Seat assignments resource type.
+ enum:
+ - seat-assignments
+ example: seat-assignments
+ type: string
+ x-enum-varnames:
+ - SEAT_ASSIGNMENTS
+ SeatUserData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/SeatUserDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SeatUserDataType'
+ required:
+ - type
+ type: object
+ SeatUserDataArray:
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/SeatUserData'
+ type: array
+ meta:
+ $ref: '#/components/schemas/SeatUserMeta'
+ required:
+ - data
+ type: object
+ SeatUserDataAttributes:
+ properties:
+ assigned_at:
+ type: string
+ email:
+ type: string
+ name:
+ type: string
+ type: object
+ SeatUserDataType:
+ default: seat-users
+ description: Seat users resource type.
+ enum:
+ - seat-users
+ example: seat-users
+ type: string
+ x-enum-varnames:
+ - SEAT_USERS
+ SeatUserMeta:
+ properties:
+ cursor:
+ type: string
+ limit:
+ format: int64
+ type: integer
+ next_cursor:
+ type: string
+ type: object
SecretRuleArray:
properties:
data:
@@ -63944,6 +64053,31 @@ components:
type: string
x-enum-varnames:
- AZURE_UC_CONFIGS
+ UnassignSeatsUserRequest:
+ properties:
+ data:
+ $ref: '#/components/schemas/UnassignSeatsUserRequestData'
+ type: object
+ UnassignSeatsUserRequestData:
+ properties:
+ attributes:
+ $ref: '#/components/schemas/UnassignSeatsUserRequestDataAttributes'
+ id:
+ type: string
+ type:
+ $ref: '#/components/schemas/SeatAssignmentsDataType'
+ required:
+ - type
+ type: object
+ UnassignSeatsUserRequestDataAttributes:
+ properties:
+ product_code:
+ type: string
+ user_uuids:
+ items:
+ type: string
+ type: array
+ type: object
Unit:
description: Object containing the metric unit family, scale factor, name, and
short name.
@@ -91707,6 +91841,95 @@ paths:
x-unstable: '**Note**: This endpoint is in public beta.
If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/seats/users:
+ delete:
+ description: Unassign seats from users for a product code.
+ operationId: UnassignSeatsUserV2
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UnassignSeatsUserRequest'
+ required: true
+ responses:
+ '204':
+ description: No Content
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Unassign seats from users for a product code
+ tags:
+ - Seats
+ x-permission:
+ operator: OR
+ permissions:
+ - billing_edit
+ - incident_write
+ - on_call_write
+ get:
+ description: Get the list of seats users assigned to a product code.
+ operationId: GetSeatsUsersV2
+ parameters:
+ - description: The product code for which to retrieve seat users.
+ in: query
+ name: product_code
+ required: true
+ schema:
+ type: string
+ - description: Maximum number of results to return.
+ in: query
+ name: page[limit]
+ schema:
+ type: integer
+ - description: Cursor for pagination.
+ in: query
+ name: page[cursor]
+ schema:
+ type: string
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SeatUserDataArray'
+ description: OK
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Get seats users for a product code
+ tags:
+ - Seats
+ x-permission:
+ operator: OR
+ permissions:
+ - billing_read
+ - incident_read
+ - on_call_read
+ post:
+ description: Assign seats to users for a product code.
+ operationId: AssignSeatsUserV2
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AssignSeatsUserRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AssignSeatsUserResponse'
+ description: Created
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Assign seats to users for a product code
+ tags:
+ - Seats
+ x-permission:
+ operator: OR
+ permissions:
+ - billing_edit
+ - incident_write
+ - on_call_write
/api/v2/security-entities/risk-scores:
get:
description: Get a list of entity risk scores for your organization. Entity
@@ -102815,6 +103038,9 @@ tags:
- description: Manage retention filters through [Manage Applications](https://app.datadoghq.com/rum/list)
of RUM for your organization.
name: Rum Retention Filters
+- description: The seats API allows you to view, assign, and unassign seats for your
+ organization.
+ name: Seats
- description: Create and manage your security rules, signals, filters, and more.
See the [Datadog Security page](https://docs.datadoghq.com/security/) for more
information.
diff --git a/examples/v2/seats/AssignSeatsUserV2.java b/examples/v2/seats/AssignSeatsUserV2.java
new file mode 100644
index 00000000000..627cfda7c41
--- /dev/null
+++ b/examples/v2/seats/AssignSeatsUserV2.java
@@ -0,0 +1,35 @@
+// Assign seats to users for a product code returns "Created" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SeatsApi;
+import com.datadog.api.client.v2.model.AssignSeatsUserRequest;
+import com.datadog.api.client.v2.model.AssignSeatsUserRequestData;
+import com.datadog.api.client.v2.model.AssignSeatsUserRequestDataAttributes;
+import com.datadog.api.client.v2.model.AssignSeatsUserResponse;
+import com.datadog.api.client.v2.model.SeatAssignmentsDataType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SeatsApi apiInstance = new SeatsApi(defaultClient);
+
+ AssignSeatsUserRequest body =
+ new AssignSeatsUserRequest()
+ .data(
+ new AssignSeatsUserRequestData()
+ .attributes(new AssignSeatsUserRequestDataAttributes())
+ .type(SeatAssignmentsDataType.SEAT_ASSIGNMENTS));
+
+ try {
+ AssignSeatsUserResponse result = apiInstance.assignSeatsUserV2(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SeatsApi#assignSeatsUserV2");
+ 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/seats/GetSeatsUsersV2.java b/examples/v2/seats/GetSeatsUsersV2.java
new file mode 100644
index 00000000000..7247e7b92f8
--- /dev/null
+++ b/examples/v2/seats/GetSeatsUsersV2.java
@@ -0,0 +1,24 @@
+// Get seats users for a product code returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SeatsApi;
+import com.datadog.api.client.v2.model.SeatUserDataArray;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SeatsApi apiInstance = new SeatsApi(defaultClient);
+
+ try {
+ SeatUserDataArray result = apiInstance.getSeatsUsersV2("product_code");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SeatsApi#getSeatsUsersV2");
+ 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/seats/UnassignSeatsUserV2.java b/examples/v2/seats/UnassignSeatsUserV2.java
new file mode 100644
index 00000000000..d7b6f04914c
--- /dev/null
+++ b/examples/v2/seats/UnassignSeatsUserV2.java
@@ -0,0 +1,33 @@
+// Unassign seats from users for a product code returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.SeatsApi;
+import com.datadog.api.client.v2.model.SeatAssignmentsDataType;
+import com.datadog.api.client.v2.model.UnassignSeatsUserRequest;
+import com.datadog.api.client.v2.model.UnassignSeatsUserRequestData;
+import com.datadog.api.client.v2.model.UnassignSeatsUserRequestDataAttributes;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ SeatsApi apiInstance = new SeatsApi(defaultClient);
+
+ UnassignSeatsUserRequest body =
+ new UnassignSeatsUserRequest()
+ .data(
+ new UnassignSeatsUserRequestData()
+ .attributes(new UnassignSeatsUserRequestDataAttributes())
+ .type(SeatAssignmentsDataType.SEAT_ASSIGNMENTS));
+
+ try {
+ apiInstance.unassignSeatsUserV2(body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling SeatsApi#unassignSeatsUserV2");
+ 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/v2/api/SeatsApi.java b/src/main/java/com/datadog/api/client/v2/api/SeatsApi.java
new file mode 100644
index 00000000000..4703e39432c
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/SeatsApi.java
@@ -0,0 +1,515 @@
+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.AssignSeatsUserRequest;
+import com.datadog.api.client.v2.model.AssignSeatsUserResponse;
+import com.datadog.api.client.v2.model.SeatUserDataArray;
+import com.datadog.api.client.v2.model.UnassignSeatsUserRequest;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SeatsApi {
+ private ApiClient apiClient;
+
+ public SeatsApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public SeatsApi(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;
+ }
+
+ /**
+ * Assign seats to users for a product code.
+ *
+ *
See {@link #assignSeatsUserV2WithHttpInfo}.
+ *
+ * @param body (required)
+ * @return AssignSeatsUserResponse
+ * @throws ApiException if fails to make API call
+ */
+ public AssignSeatsUserResponse assignSeatsUserV2(AssignSeatsUserRequest body)
+ throws ApiException {
+ return assignSeatsUserV2WithHttpInfo(body).getData();
+ }
+
+ /**
+ * Assign seats to users for a product code.
+ *
+ *
See {@link #assignSeatsUserV2WithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<AssignSeatsUserResponse>
+ */
+ public CompletableFuture assignSeatsUserV2Async(
+ AssignSeatsUserRequest body) {
+ return assignSeatsUserV2WithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Assign seats to users for a product code.
+ *
+ * @param body (required)
+ * @return ApiResponse<AssignSeatsUserResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 201 | Created | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse assignSeatsUserV2WithHttpInfo(
+ AssignSeatsUserRequest body) throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling assignSeatsUserV2");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/seats/users";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SeatsApi.assignSeatsUserV2",
+ 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() {});
+ }
+
+ /**
+ * Assign seats to users for a product code.
+ *
+ * See {@link #assignSeatsUserV2WithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<AssignSeatsUserResponse>>
+ */
+ public CompletableFuture> assignSeatsUserV2WithHttpInfoAsync(
+ AssignSeatsUserRequest body) {
+ 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 assignSeatsUserV2"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/seats/users";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SeatsApi.assignSeatsUserV2",
+ 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() {});
+ }
+
+ /** Manage optional parameters to getSeatsUsersV2. */
+ public static class GetSeatsUsersV2OptionalParameters {
+ private Integer pageLimit;
+ private String pageCursor;
+
+ /**
+ * Set pageLimit.
+ *
+ * @param pageLimit Maximum number of results to return. (optional)
+ * @return GetSeatsUsersV2OptionalParameters
+ */
+ public GetSeatsUsersV2OptionalParameters pageLimit(Integer pageLimit) {
+ this.pageLimit = pageLimit;
+ return this;
+ }
+
+ /**
+ * Set pageCursor.
+ *
+ * @param pageCursor Cursor for pagination. (optional)
+ * @return GetSeatsUsersV2OptionalParameters
+ */
+ public GetSeatsUsersV2OptionalParameters pageCursor(String pageCursor) {
+ this.pageCursor = pageCursor;
+ return this;
+ }
+ }
+
+ /**
+ * Get seats users for a product code.
+ *
+ * See {@link #getSeatsUsersV2WithHttpInfo}.
+ *
+ * @param productCode The product code for which to retrieve seat users. (required)
+ * @return SeatUserDataArray
+ * @throws ApiException if fails to make API call
+ */
+ public SeatUserDataArray getSeatsUsersV2(String productCode) throws ApiException {
+ return getSeatsUsersV2WithHttpInfo(productCode, new GetSeatsUsersV2OptionalParameters())
+ .getData();
+ }
+
+ /**
+ * Get seats users for a product code.
+ *
+ *
See {@link #getSeatsUsersV2WithHttpInfoAsync}.
+ *
+ * @param productCode The product code for which to retrieve seat users. (required)
+ * @return CompletableFuture<SeatUserDataArray>
+ */
+ public CompletableFuture getSeatsUsersV2Async(String productCode) {
+ return getSeatsUsersV2WithHttpInfoAsync(productCode, new GetSeatsUsersV2OptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get seats users for a product code.
+ *
+ * See {@link #getSeatsUsersV2WithHttpInfo}.
+ *
+ * @param productCode The product code for which to retrieve seat users. (required)
+ * @param parameters Optional parameters for the request.
+ * @return SeatUserDataArray
+ * @throws ApiException if fails to make API call
+ */
+ public SeatUserDataArray getSeatsUsersV2(
+ String productCode, GetSeatsUsersV2OptionalParameters parameters) throws ApiException {
+ return getSeatsUsersV2WithHttpInfo(productCode, parameters).getData();
+ }
+
+ /**
+ * Get seats users for a product code.
+ *
+ *
See {@link #getSeatsUsersV2WithHttpInfoAsync}.
+ *
+ * @param productCode The product code for which to retrieve seat users. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<SeatUserDataArray>
+ */
+ public CompletableFuture getSeatsUsersV2Async(
+ String productCode, GetSeatsUsersV2OptionalParameters parameters) {
+ return getSeatsUsersV2WithHttpInfoAsync(productCode, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Get the list of seats users assigned to a product code.
+ *
+ * @param productCode The product code for which to retrieve seat users. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<SeatUserDataArray>
+ * @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 getSeatsUsersV2WithHttpInfo(
+ String productCode, GetSeatsUsersV2OptionalParameters parameters) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'productCode' is set
+ if (productCode == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'productCode' when calling getSeatsUsersV2");
+ }
+ Integer pageLimit = parameters.pageLimit;
+ String pageCursor = parameters.pageCursor;
+ // create path and map variables
+ String localVarPath = "/api/v2/seats/users";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "product_code", productCode));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SeatsApi.getSeatsUsersV2",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Get seats users for a product code.
+ *
+ * See {@link #getSeatsUsersV2WithHttpInfo}.
+ *
+ * @param productCode The product code for which to retrieve seat users. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<SeatUserDataArray>>
+ */
+ public CompletableFuture> getSeatsUsersV2WithHttpInfoAsync(
+ String productCode, GetSeatsUsersV2OptionalParameters parameters) {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'productCode' is set
+ if (productCode == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'productCode' when calling getSeatsUsersV2"));
+ return result;
+ }
+ Integer pageLimit = parameters.pageLimit;
+ String pageCursor = parameters.pageCursor;
+ // create path and map variables
+ String localVarPath = "/api/v2/seats/users";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "product_code", productCode));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SeatsApi.getSeatsUsersV2",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Unassign seats from users for a product code.
+ *
+ * See {@link #unassignSeatsUserV2WithHttpInfo}.
+ *
+ * @param body (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void unassignSeatsUserV2(UnassignSeatsUserRequest body) throws ApiException {
+ unassignSeatsUserV2WithHttpInfo(body);
+ }
+
+ /**
+ * Unassign seats from users for a product code.
+ *
+ *
See {@link #unassignSeatsUserV2WithHttpInfoAsync}.
+ *
+ * @param body (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture unassignSeatsUserV2Async(UnassignSeatsUserRequest body) {
+ return unassignSeatsUserV2WithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Unassign seats from users for a product code.
+ *
+ * @param body (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 unassignSeatsUserV2WithHttpInfo(UnassignSeatsUserRequest body)
+ throws ApiException {
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling unassignSeatsUserV2");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/seats/users";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.SeatsApi.unassignSeatsUserV2",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "DELETE",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Unassign seats from users for a product code.
+ *
+ * See {@link #unassignSeatsUserV2WithHttpInfo}.
+ *
+ * @param body (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> unassignSeatsUserV2WithHttpInfoAsync(
+ UnassignSeatsUserRequest body) {
+ 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 unassignSeatsUserV2"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/seats/users";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.SeatsApi.unassignSeatsUserV2",
+ 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[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequest.java b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequest.java
new file mode 100644
index 00000000000..0e55af80549
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequest.java
@@ -0,0 +1,136 @@
+/*
+ * 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;
+
+/** */
+@JsonPropertyOrder({AssignSeatsUserRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AssignSeatsUserRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private AssignSeatsUserRequestData data;
+
+ public AssignSeatsUserRequest data(AssignSeatsUserRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public AssignSeatsUserRequestData getData() {
+ return data;
+ }
+
+ public void setData(AssignSeatsUserRequestData 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 AssignSeatsUserRequest
+ */
+ @JsonAnySetter
+ public AssignSeatsUserRequest 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 AssignSeatsUserRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AssignSeatsUserRequest assignSeatsUserRequest = (AssignSeatsUserRequest) o;
+ return Objects.equals(this.data, assignSeatsUserRequest.data)
+ && Objects.equals(this.additionalProperties, assignSeatsUserRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AssignSeatsUserRequest {\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/AssignSeatsUserRequestData.java b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequestData.java
new file mode 100644
index 00000000000..30e8d1a0623
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequestData.java
@@ -0,0 +1,206 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ AssignSeatsUserRequestData.JSON_PROPERTY_ATTRIBUTES,
+ AssignSeatsUserRequestData.JSON_PROPERTY_ID,
+ AssignSeatsUserRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AssignSeatsUserRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private AssignSeatsUserRequestDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private SeatAssignmentsDataType type = SeatAssignmentsDataType.SEAT_ASSIGNMENTS;
+
+ public AssignSeatsUserRequestData() {}
+
+ @JsonCreator
+ public AssignSeatsUserRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeatAssignmentsDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public AssignSeatsUserRequestData attributes(AssignSeatsUserRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public AssignSeatsUserRequestDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AssignSeatsUserRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public AssignSeatsUserRequestData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public AssignSeatsUserRequestData type(SeatAssignmentsDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Seat assignments resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public SeatAssignmentsDataType getType() {
+ return type;
+ }
+
+ public void setType(SeatAssignmentsDataType 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 AssignSeatsUserRequestData
+ */
+ @JsonAnySetter
+ public AssignSeatsUserRequestData 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 AssignSeatsUserRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AssignSeatsUserRequestData assignSeatsUserRequestData = (AssignSeatsUserRequestData) o;
+ return Objects.equals(this.attributes, assignSeatsUserRequestData.attributes)
+ && Objects.equals(this.id, assignSeatsUserRequestData.id)
+ && Objects.equals(this.type, assignSeatsUserRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, assignSeatsUserRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AssignSeatsUserRequestData {\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/AssignSeatsUserRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequestDataAttributes.java
new file mode 100644
index 00000000000..08b8650ab0e
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserRequestDataAttributes.java
@@ -0,0 +1,176 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ AssignSeatsUserRequestDataAttributes.JSON_PROPERTY_PRODUCT_CODE,
+ AssignSeatsUserRequestDataAttributes.JSON_PROPERTY_USER_UUIDS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AssignSeatsUserRequestDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_PRODUCT_CODE = "product_code";
+ private String productCode;
+
+ public static final String JSON_PROPERTY_USER_UUIDS = "user_uuids";
+ private List userUuids = null;
+
+ public AssignSeatsUserRequestDataAttributes productCode(String productCode) {
+ this.productCode = productCode;
+ return this;
+ }
+
+ /**
+ * GetproductCode
+ *
+ * @return productCode
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PRODUCT_CODE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getProductCode() {
+ return productCode;
+ }
+
+ public void setProductCode(String productCode) {
+ this.productCode = productCode;
+ }
+
+ public AssignSeatsUserRequestDataAttributes userUuids(List userUuids) {
+ this.userUuids = userUuids;
+ return this;
+ }
+
+ public AssignSeatsUserRequestDataAttributes addUserUuidsItem(String userUuidsItem) {
+ if (this.userUuids == null) {
+ this.userUuids = new ArrayList<>();
+ }
+ this.userUuids.add(userUuidsItem);
+ return this;
+ }
+
+ /**
+ * GetuserUuids
+ *
+ * @return userUuids
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USER_UUIDS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getUserUuids() {
+ return userUuids;
+ }
+
+ public void setUserUuids(List userUuids) {
+ this.userUuids = userUuids;
+ }
+
+ /**
+ * 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 AssignSeatsUserRequestDataAttributes
+ */
+ @JsonAnySetter
+ public AssignSeatsUserRequestDataAttributes 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 AssignSeatsUserRequestDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AssignSeatsUserRequestDataAttributes assignSeatsUserRequestDataAttributes =
+ (AssignSeatsUserRequestDataAttributes) o;
+ return Objects.equals(this.productCode, assignSeatsUserRequestDataAttributes.productCode)
+ && Objects.equals(this.userUuids, assignSeatsUserRequestDataAttributes.userUuids)
+ && Objects.equals(
+ this.additionalProperties, assignSeatsUserRequestDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(productCode, userUuids, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AssignSeatsUserRequestDataAttributes {\n");
+ sb.append(" productCode: ").append(toIndentedString(productCode)).append("\n");
+ sb.append(" userUuids: ").append(toIndentedString(userUuids)).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/AssignSeatsUserResponse.java b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserResponse.java
new file mode 100644
index 00000000000..121d89f2859
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserResponse.java
@@ -0,0 +1,136 @@
+/*
+ * 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;
+
+/** */
+@JsonPropertyOrder({AssignSeatsUserResponse.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AssignSeatsUserResponse {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private AssignSeatsUserResponseData data;
+
+ public AssignSeatsUserResponse data(AssignSeatsUserResponseData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public AssignSeatsUserResponseData getData() {
+ return data;
+ }
+
+ public void setData(AssignSeatsUserResponseData 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 AssignSeatsUserResponse
+ */
+ @JsonAnySetter
+ public AssignSeatsUserResponse 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 AssignSeatsUserResponse object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AssignSeatsUserResponse assignSeatsUserResponse = (AssignSeatsUserResponse) o;
+ return Objects.equals(this.data, assignSeatsUserResponse.data)
+ && Objects.equals(this.additionalProperties, assignSeatsUserResponse.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AssignSeatsUserResponse {\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/AssignSeatsUserResponseData.java b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserResponseData.java
new file mode 100644
index 00000000000..80486f59bf2
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserResponseData.java
@@ -0,0 +1,206 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ AssignSeatsUserResponseData.JSON_PROPERTY_ATTRIBUTES,
+ AssignSeatsUserResponseData.JSON_PROPERTY_ID,
+ AssignSeatsUserResponseData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AssignSeatsUserResponseData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private AssignSeatsUserResponseDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private SeatAssignmentsDataType type = SeatAssignmentsDataType.SEAT_ASSIGNMENTS;
+
+ public AssignSeatsUserResponseData() {}
+
+ @JsonCreator
+ public AssignSeatsUserResponseData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeatAssignmentsDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public AssignSeatsUserResponseData attributes(AssignSeatsUserResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public AssignSeatsUserResponseDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(AssignSeatsUserResponseDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public AssignSeatsUserResponseData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public AssignSeatsUserResponseData type(SeatAssignmentsDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Seat assignments resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public SeatAssignmentsDataType getType() {
+ return type;
+ }
+
+ public void setType(SeatAssignmentsDataType 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 AssignSeatsUserResponseData
+ */
+ @JsonAnySetter
+ public AssignSeatsUserResponseData 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 AssignSeatsUserResponseData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AssignSeatsUserResponseData assignSeatsUserResponseData = (AssignSeatsUserResponseData) o;
+ return Objects.equals(this.attributes, assignSeatsUserResponseData.attributes)
+ && Objects.equals(this.id, assignSeatsUserResponseData.id)
+ && Objects.equals(this.type, assignSeatsUserResponseData.type)
+ && Objects.equals(
+ this.additionalProperties, assignSeatsUserResponseData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AssignSeatsUserResponseData {\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/AssignSeatsUserResponseDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserResponseDataAttributes.java
new file mode 100644
index 00000000000..251b22ee1a0
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/AssignSeatsUserResponseDataAttributes.java
@@ -0,0 +1,176 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ AssignSeatsUserResponseDataAttributes.JSON_PROPERTY_ASSIGNED_IDS,
+ AssignSeatsUserResponseDataAttributes.JSON_PROPERTY_PRODUCT_CODE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class AssignSeatsUserResponseDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ASSIGNED_IDS = "assigned_ids";
+ private List assignedIds = null;
+
+ public static final String JSON_PROPERTY_PRODUCT_CODE = "product_code";
+ private String productCode;
+
+ public AssignSeatsUserResponseDataAttributes assignedIds(List assignedIds) {
+ this.assignedIds = assignedIds;
+ return this;
+ }
+
+ public AssignSeatsUserResponseDataAttributes addAssignedIdsItem(String assignedIdsItem) {
+ if (this.assignedIds == null) {
+ this.assignedIds = new ArrayList<>();
+ }
+ this.assignedIds.add(assignedIdsItem);
+ return this;
+ }
+
+ /**
+ * GetassignedIds
+ *
+ * @return assignedIds
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ASSIGNED_IDS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getAssignedIds() {
+ return assignedIds;
+ }
+
+ public void setAssignedIds(List assignedIds) {
+ this.assignedIds = assignedIds;
+ }
+
+ public AssignSeatsUserResponseDataAttributes productCode(String productCode) {
+ this.productCode = productCode;
+ return this;
+ }
+
+ /**
+ * GetproductCode
+ *
+ * @return productCode
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PRODUCT_CODE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getProductCode() {
+ return productCode;
+ }
+
+ public void setProductCode(String productCode) {
+ this.productCode = productCode;
+ }
+
+ /**
+ * 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 AssignSeatsUserResponseDataAttributes
+ */
+ @JsonAnySetter
+ public AssignSeatsUserResponseDataAttributes 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 AssignSeatsUserResponseDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AssignSeatsUserResponseDataAttributes assignSeatsUserResponseDataAttributes =
+ (AssignSeatsUserResponseDataAttributes) o;
+ return Objects.equals(this.assignedIds, assignSeatsUserResponseDataAttributes.assignedIds)
+ && Objects.equals(this.productCode, assignSeatsUserResponseDataAttributes.productCode)
+ && Objects.equals(
+ this.additionalProperties, assignSeatsUserResponseDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(assignedIds, productCode, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AssignSeatsUserResponseDataAttributes {\n");
+ sb.append(" assignedIds: ").append(toIndentedString(assignedIds)).append("\n");
+ sb.append(" productCode: ").append(toIndentedString(productCode)).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/SeatAssignmentsDataType.java b/src/main/java/com/datadog/api/client/v2/model/SeatAssignmentsDataType.java
new file mode 100644
index 00000000000..fc8c54c1c23
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SeatAssignmentsDataType.java
@@ -0,0 +1,57 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** Seat assignments resource type. */
+@JsonSerialize(using = SeatAssignmentsDataType.SeatAssignmentsDataTypeSerializer.class)
+public class SeatAssignmentsDataType extends ModelEnum {
+
+ private static final Set allowedValues =
+ new HashSet(Arrays.asList("seat-assignments"));
+
+ public static final SeatAssignmentsDataType SEAT_ASSIGNMENTS =
+ new SeatAssignmentsDataType("seat-assignments");
+
+ SeatAssignmentsDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class SeatAssignmentsDataTypeSerializer
+ extends StdSerializer {
+ public SeatAssignmentsDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public SeatAssignmentsDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(
+ SeatAssignmentsDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static SeatAssignmentsDataType fromValue(String value) {
+ return new SeatAssignmentsDataType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/SeatUserData.java b/src/main/java/com/datadog/api/client/v2/model/SeatUserData.java
new file mode 100644
index 00000000000..29a11698077
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SeatUserData.java
@@ -0,0 +1,205 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ SeatUserData.JSON_PROPERTY_ATTRIBUTES,
+ SeatUserData.JSON_PROPERTY_ID,
+ SeatUserData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SeatUserData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private SeatUserDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private SeatUserDataType type = SeatUserDataType.SEAT_USERS;
+
+ public SeatUserData() {}
+
+ @JsonCreator
+ public SeatUserData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeatUserDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public SeatUserData attributes(SeatUserDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public SeatUserDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(SeatUserDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public SeatUserData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public SeatUserData type(SeatUserDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Seat users resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public SeatUserDataType getType() {
+ return type;
+ }
+
+ public void setType(SeatUserDataType 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 SeatUserData
+ */
+ @JsonAnySetter
+ public SeatUserData 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 SeatUserData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SeatUserData seatUserData = (SeatUserData) o;
+ return Objects.equals(this.attributes, seatUserData.attributes)
+ && Objects.equals(this.id, seatUserData.id)
+ && Objects.equals(this.type, seatUserData.type)
+ && Objects.equals(this.additionalProperties, seatUserData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SeatUserData {\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/SeatUserDataArray.java b/src/main/java/com/datadog/api/client/v2/model/SeatUserDataArray.java
new file mode 100644
index 00000000000..6470e5f1ea1
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SeatUserDataArray.java
@@ -0,0 +1,181 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({SeatUserDataArray.JSON_PROPERTY_DATA, SeatUserDataArray.JSON_PROPERTY_META})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SeatUserDataArray {
+ @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 SeatUserMeta meta;
+
+ public SeatUserDataArray() {}
+
+ @JsonCreator
+ public SeatUserDataArray(
+ @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) {
+ this.data = data;
+ }
+
+ public SeatUserDataArray data(List data) {
+ this.data = data;
+ for (SeatUserData item : data) {
+ this.unparsed |= item.unparsed;
+ }
+ return this;
+ }
+
+ public SeatUserDataArray addDataItem(SeatUserData dataItem) {
+ this.data.add(dataItem);
+ this.unparsed |= dataItem.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @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 SeatUserDataArray meta(SeatUserMeta meta) {
+ this.meta = meta;
+ this.unparsed |= meta.unparsed;
+ return this;
+ }
+
+ /**
+ * Getmeta
+ *
+ * @return meta
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_META)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public SeatUserMeta getMeta() {
+ return meta;
+ }
+
+ public void setMeta(SeatUserMeta 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 SeatUserDataArray
+ */
+ @JsonAnySetter
+ public SeatUserDataArray 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 SeatUserDataArray object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SeatUserDataArray seatUserDataArray = (SeatUserDataArray) o;
+ return Objects.equals(this.data, seatUserDataArray.data)
+ && Objects.equals(this.meta, seatUserDataArray.meta)
+ && Objects.equals(this.additionalProperties, seatUserDataArray.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, meta, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SeatUserDataArray {\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/SeatUserDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/SeatUserDataAttributes.java
new file mode 100644
index 00000000000..d31b8c64c7b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SeatUserDataAttributes.java
@@ -0,0 +1,191 @@
+/*
+ * 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;
+
+/** */
+@JsonPropertyOrder({
+ SeatUserDataAttributes.JSON_PROPERTY_ASSIGNED_AT,
+ SeatUserDataAttributes.JSON_PROPERTY_EMAIL,
+ SeatUserDataAttributes.JSON_PROPERTY_NAME
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SeatUserDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ASSIGNED_AT = "assigned_at";
+ private String assignedAt;
+
+ public static final String JSON_PROPERTY_EMAIL = "email";
+ private String email;
+
+ public static final String JSON_PROPERTY_NAME = "name";
+ private String name;
+
+ public SeatUserDataAttributes assignedAt(String assignedAt) {
+ this.assignedAt = assignedAt;
+ return this;
+ }
+
+ /**
+ * GetassignedAt
+ *
+ * @return assignedAt
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ASSIGNED_AT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getAssignedAt() {
+ return assignedAt;
+ }
+
+ public void setAssignedAt(String assignedAt) {
+ this.assignedAt = assignedAt;
+ }
+
+ public SeatUserDataAttributes email(String email) {
+ this.email = email;
+ return this;
+ }
+
+ /**
+ * Getemail
+ *
+ * @return email
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_EMAIL)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public SeatUserDataAttributes name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Getname
+ *
+ * @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 SeatUserDataAttributes
+ */
+ @JsonAnySetter
+ public SeatUserDataAttributes 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 SeatUserDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SeatUserDataAttributes seatUserDataAttributes = (SeatUserDataAttributes) o;
+ return Objects.equals(this.assignedAt, seatUserDataAttributes.assignedAt)
+ && Objects.equals(this.email, seatUserDataAttributes.email)
+ && Objects.equals(this.name, seatUserDataAttributes.name)
+ && Objects.equals(this.additionalProperties, seatUserDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(assignedAt, email, name, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SeatUserDataAttributes {\n");
+ sb.append(" assignedAt: ").append(toIndentedString(assignedAt)).append("\n");
+ sb.append(" email: ").append(toIndentedString(email)).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/SeatUserDataType.java b/src/main/java/com/datadog/api/client/v2/model/SeatUserDataType.java
new file mode 100644
index 00000000000..0bc3849b64b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SeatUserDataType.java
@@ -0,0 +1,53 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.datadog.api.client.ModelEnum;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/** Seat users resource type. */
+@JsonSerialize(using = SeatUserDataType.SeatUserDataTypeSerializer.class)
+public class SeatUserDataType extends ModelEnum {
+
+ private static final Set allowedValues = new HashSet(Arrays.asList("seat-users"));
+
+ public static final SeatUserDataType SEAT_USERS = new SeatUserDataType("seat-users");
+
+ SeatUserDataType(String value) {
+ super(value, allowedValues);
+ }
+
+ public static class SeatUserDataTypeSerializer extends StdSerializer {
+ public SeatUserDataTypeSerializer(Class t) {
+ super(t);
+ }
+
+ public SeatUserDataTypeSerializer() {
+ this(null);
+ }
+
+ @Override
+ public void serialize(SeatUserDataType value, JsonGenerator jgen, SerializerProvider provider)
+ throws IOException, JsonProcessingException {
+ jgen.writeObject(value.value);
+ }
+ }
+
+ @JsonCreator
+ public static SeatUserDataType fromValue(String value) {
+ return new SeatUserDataType(value);
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/v2/model/SeatUserMeta.java b/src/main/java/com/datadog/api/client/v2/model/SeatUserMeta.java
new file mode 100644
index 00000000000..9fcb13bbd8b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/SeatUserMeta.java
@@ -0,0 +1,191 @@
+/*
+ * 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;
+
+/** */
+@JsonPropertyOrder({
+ SeatUserMeta.JSON_PROPERTY_CURSOR,
+ SeatUserMeta.JSON_PROPERTY_LIMIT,
+ SeatUserMeta.JSON_PROPERTY_NEXT_CURSOR
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class SeatUserMeta {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_CURSOR = "cursor";
+ private String cursor;
+
+ public static final String JSON_PROPERTY_LIMIT = "limit";
+ private Long limit;
+
+ public static final String JSON_PROPERTY_NEXT_CURSOR = "next_cursor";
+ private String nextCursor;
+
+ public SeatUserMeta cursor(String cursor) {
+ this.cursor = cursor;
+ return this;
+ }
+
+ /**
+ * Getcursor
+ *
+ * @return cursor
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CURSOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getCursor() {
+ return cursor;
+ }
+
+ public void setCursor(String cursor) {
+ this.cursor = cursor;
+ }
+
+ public SeatUserMeta limit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Getlimit
+ *
+ * @return limit
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_LIMIT)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public Long getLimit() {
+ return limit;
+ }
+
+ public void setLimit(Long limit) {
+ this.limit = limit;
+ }
+
+ public SeatUserMeta nextCursor(String nextCursor) {
+ this.nextCursor = nextCursor;
+ return this;
+ }
+
+ /**
+ * GetnextCursor
+ *
+ * @return nextCursor
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NEXT_CURSOR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getNextCursor() {
+ return nextCursor;
+ }
+
+ public void setNextCursor(String nextCursor) {
+ this.nextCursor = nextCursor;
+ }
+
+ /**
+ * 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 SeatUserMeta
+ */
+ @JsonAnySetter
+ public SeatUserMeta 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 SeatUserMeta object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SeatUserMeta seatUserMeta = (SeatUserMeta) o;
+ return Objects.equals(this.cursor, seatUserMeta.cursor)
+ && Objects.equals(this.limit, seatUserMeta.limit)
+ && Objects.equals(this.nextCursor, seatUserMeta.nextCursor)
+ && Objects.equals(this.additionalProperties, seatUserMeta.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(cursor, limit, nextCursor, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SeatUserMeta {\n");
+ sb.append(" cursor: ").append(toIndentedString(cursor)).append("\n");
+ sb.append(" limit: ").append(toIndentedString(limit)).append("\n");
+ sb.append(" nextCursor: ").append(toIndentedString(nextCursor)).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/UnassignSeatsUserRequest.java b/src/main/java/com/datadog/api/client/v2/model/UnassignSeatsUserRequest.java
new file mode 100644
index 00000000000..e6034b7838b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/UnassignSeatsUserRequest.java
@@ -0,0 +1,136 @@
+/*
+ * 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;
+
+/** */
+@JsonPropertyOrder({UnassignSeatsUserRequest.JSON_PROPERTY_DATA})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class UnassignSeatsUserRequest {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_DATA = "data";
+ private UnassignSeatsUserRequestData data;
+
+ public UnassignSeatsUserRequest data(UnassignSeatsUserRequestData data) {
+ this.data = data;
+ this.unparsed |= data.unparsed;
+ return this;
+ }
+
+ /**
+ * Getdata
+ *
+ * @return data
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_DATA)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public UnassignSeatsUserRequestData getData() {
+ return data;
+ }
+
+ public void setData(UnassignSeatsUserRequestData 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 UnassignSeatsUserRequest
+ */
+ @JsonAnySetter
+ public UnassignSeatsUserRequest 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 UnassignSeatsUserRequest object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UnassignSeatsUserRequest unassignSeatsUserRequest = (UnassignSeatsUserRequest) o;
+ return Objects.equals(this.data, unassignSeatsUserRequest.data)
+ && Objects.equals(this.additionalProperties, unassignSeatsUserRequest.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(data, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UnassignSeatsUserRequest {\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/UnassignSeatsUserRequestData.java b/src/main/java/com/datadog/api/client/v2/model/UnassignSeatsUserRequestData.java
new file mode 100644
index 00000000000..b71a333c4e0
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/UnassignSeatsUserRequestData.java
@@ -0,0 +1,207 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ UnassignSeatsUserRequestData.JSON_PROPERTY_ATTRIBUTES,
+ UnassignSeatsUserRequestData.JSON_PROPERTY_ID,
+ UnassignSeatsUserRequestData.JSON_PROPERTY_TYPE
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class UnassignSeatsUserRequestData {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_ATTRIBUTES = "attributes";
+ private UnassignSeatsUserRequestDataAttributes attributes;
+
+ public static final String JSON_PROPERTY_ID = "id";
+ private String id;
+
+ public static final String JSON_PROPERTY_TYPE = "type";
+ private SeatAssignmentsDataType type = SeatAssignmentsDataType.SEAT_ASSIGNMENTS;
+
+ public UnassignSeatsUserRequestData() {}
+
+ @JsonCreator
+ public UnassignSeatsUserRequestData(
+ @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) SeatAssignmentsDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ }
+
+ public UnassignSeatsUserRequestData attributes(
+ UnassignSeatsUserRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ this.unparsed |= attributes.unparsed;
+ return this;
+ }
+
+ /**
+ * Getattributes
+ *
+ * @return attributes
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ATTRIBUTES)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public UnassignSeatsUserRequestDataAttributes getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(UnassignSeatsUserRequestDataAttributes attributes) {
+ this.attributes = attributes;
+ }
+
+ public UnassignSeatsUserRequestData id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Getid
+ *
+ * @return id
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ID)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public UnassignSeatsUserRequestData type(SeatAssignmentsDataType type) {
+ this.type = type;
+ this.unparsed |= !type.isValid();
+ return this;
+ }
+
+ /**
+ * Seat assignments resource type.
+ *
+ * @return type
+ */
+ @JsonProperty(JSON_PROPERTY_TYPE)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public SeatAssignmentsDataType getType() {
+ return type;
+ }
+
+ public void setType(SeatAssignmentsDataType 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 UnassignSeatsUserRequestData
+ */
+ @JsonAnySetter
+ public UnassignSeatsUserRequestData 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 UnassignSeatsUserRequestData object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UnassignSeatsUserRequestData unassignSeatsUserRequestData = (UnassignSeatsUserRequestData) o;
+ return Objects.equals(this.attributes, unassignSeatsUserRequestData.attributes)
+ && Objects.equals(this.id, unassignSeatsUserRequestData.id)
+ && Objects.equals(this.type, unassignSeatsUserRequestData.type)
+ && Objects.equals(
+ this.additionalProperties, unassignSeatsUserRequestData.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, id, type, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UnassignSeatsUserRequestData {\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/UnassignSeatsUserRequestDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/UnassignSeatsUserRequestDataAttributes.java
new file mode 100644
index 00000000000..b742931df4b
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/model/UnassignSeatsUserRequestDataAttributes.java
@@ -0,0 +1,176 @@
+/*
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2019-Present Datadog, Inc.
+ */
+
+package com.datadog.api.client.v2.model;
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/** */
+@JsonPropertyOrder({
+ UnassignSeatsUserRequestDataAttributes.JSON_PROPERTY_PRODUCT_CODE,
+ UnassignSeatsUserRequestDataAttributes.JSON_PROPERTY_USER_UUIDS
+})
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class UnassignSeatsUserRequestDataAttributes {
+ @JsonIgnore public boolean unparsed = false;
+ public static final String JSON_PROPERTY_PRODUCT_CODE = "product_code";
+ private String productCode;
+
+ public static final String JSON_PROPERTY_USER_UUIDS = "user_uuids";
+ private List userUuids = null;
+
+ public UnassignSeatsUserRequestDataAttributes productCode(String productCode) {
+ this.productCode = productCode;
+ return this;
+ }
+
+ /**
+ * GetproductCode
+ *
+ * @return productCode
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PRODUCT_CODE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public String getProductCode() {
+ return productCode;
+ }
+
+ public void setProductCode(String productCode) {
+ this.productCode = productCode;
+ }
+
+ public UnassignSeatsUserRequestDataAttributes userUuids(List userUuids) {
+ this.userUuids = userUuids;
+ return this;
+ }
+
+ public UnassignSeatsUserRequestDataAttributes addUserUuidsItem(String userUuidsItem) {
+ if (this.userUuids == null) {
+ this.userUuids = new ArrayList<>();
+ }
+ this.userUuids.add(userUuidsItem);
+ return this;
+ }
+
+ /**
+ * GetuserUuids
+ *
+ * @return userUuids
+ */
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_USER_UUIDS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public List getUserUuids() {
+ return userUuids;
+ }
+
+ public void setUserUuids(List userUuids) {
+ this.userUuids = userUuids;
+ }
+
+ /**
+ * 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 UnassignSeatsUserRequestDataAttributes
+ */
+ @JsonAnySetter
+ public UnassignSeatsUserRequestDataAttributes 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 UnassignSeatsUserRequestDataAttributes object is equal to o. */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UnassignSeatsUserRequestDataAttributes unassignSeatsUserRequestDataAttributes =
+ (UnassignSeatsUserRequestDataAttributes) o;
+ return Objects.equals(this.productCode, unassignSeatsUserRequestDataAttributes.productCode)
+ && Objects.equals(this.userUuids, unassignSeatsUserRequestDataAttributes.userUuids)
+ && Objects.equals(
+ this.additionalProperties, unassignSeatsUserRequestDataAttributes.additionalProperties);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(productCode, userUuids, additionalProperties);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UnassignSeatsUserRequestDataAttributes {\n");
+ sb.append(" productCode: ").append(toIndentedString(productCode)).append("\n");
+ sb.append(" userUuids: ").append(toIndentedString(userUuids)).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/seats.feature b/src/test/resources/com/datadog/api/client/v2/api/seats.feature
new file mode 100644
index 00000000000..4f45a170444
--- /dev/null
+++ b/src/test/resources/com/datadog/api/client/v2/api/seats.feature
@@ -0,0 +1,30 @@
+@endpoint(seats) @endpoint(seats-v2)
+Feature: Seats
+ The seats API allows you to view, assign, and unassign seats for your
+ organization.
+
+ Background:
+ Given a valid "apiKeyAuth" key in the system
+ And a valid "appKeyAuth" key in the system
+ And an instance of "Seats" API
+
+ @generated @skip @team:DataDog/billing-experience
+ Scenario: Assign seats to users for a product code returns "Created" response
+ Given new "AssignSeatsUserV2" request
+ And body with value {"data": {"attributes": {"user_uuids": []}, "type": "seat-assignments"}}
+ When the request is sent
+ Then the response status is 201 Created
+
+ @generated @skip @team:DataDog/billing-experience
+ Scenario: Get seats users for a product code returns "OK" response
+ Given new "GetSeatsUsersV2" request
+ And request contains "product_code" parameter from "REPLACE.ME"
+ When the request is sent
+ Then the response status is 200 OK
+
+ @generated @skip @team:DataDog/billing-experience
+ Scenario: Unassign seats from users for a product code returns "No Content" response
+ Given new "UnassignSeatsUserV2" request
+ And body with value {"data": {"attributes": {"user_uuids": []}, "type": "seat-assignments"}}
+ When the request is sent
+ Then the response status is 204 No Content
diff --git a/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json
index 7e549784ee6..821ea95bcf7 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
@@ -4187,6 +4187,31 @@
"type": "idempotent"
}
},
+ "UnassignSeatsUserV2": {
+ "tag": "Seats",
+ "undo": {
+ "type": "idempotent"
+ }
+ },
+ "GetSeatsUsersV2": {
+ "tag": "Seats",
+ "undo": {
+ "type": "safe"
+ }
+ },
+ "AssignSeatsUserV2": {
+ "tag": "Seats",
+ "undo": {
+ "operationId": "UnassignSeatsUserV2",
+ "parameters": [
+ {
+ "name": "body",
+ "template": "{\"data\": {\"type\": \"seat-assignments\", \"attributes\": {\"product_code\": \"{{ data.attributes.product_code }}\", \"user_uuids\": {{ data.attributes.assigned_ids }}}}}"
+ }
+ ],
+ "type": "unsafe"
+ }
+ },
"ListEntityRiskScores": {
"tag": "Entity Risk Scores",
"undo": {