diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 72f8cd45814..3d27f6798ca 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -38435,6 +38435,49 @@ components: permissions: $ref: '#/components/schemas/RelationshipToPermissions' type: object + RoleTemplateArray: + description: The definition of `RoleTemplateArray` object. + properties: + data: + description: The `RoleTemplateArray` `data`. + items: + $ref: '#/components/schemas/RoleTemplateData' + type: array + required: + - data + type: object + RoleTemplateData: + description: The definition of `RoleTemplateData` object. + properties: + attributes: + $ref: '#/components/schemas/RoleTemplateDataAttributes' + id: + description: The `RoleTemplateData` `id`. + type: string + type: + $ref: '#/components/schemas/RoleTemplateDataType' + required: + - type + type: object + RoleTemplateDataAttributes: + description: The definition of `RoleTemplateDataAttributes` object. + properties: + description: + description: The `attributes` `description`. + type: string + name: + description: The `attributes` `name`. + type: string + type: object + RoleTemplateDataType: + default: roles + description: Roles resource type. + enum: + - roles + example: roles + type: string + x-enum-varnames: + - ROLES RoleUpdateAttributes: description: Attributes of the role. properties: @@ -67658,6 +67701,28 @@ paths: operator: OR permissions: - user_access_manage + /api/v2/roles/templates: + get: + description: List all role templates + operationId: ListRoleTemplates + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/RoleTemplateArray' + description: OK + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_read + summary: List role templates + tags: + - Roles + x-unstable: '**Note**: This endpoint may be subject to changes.' /api/v2/roles/{role_id}: delete: description: Disables a role. diff --git a/examples/v2/roles/ListRoleTemplates.java b/examples/v2/roles/ListRoleTemplates.java new file mode 100644 index 00000000000..5ee7e106eec --- /dev/null +++ b/examples/v2/roles/ListRoleTemplates.java @@ -0,0 +1,25 @@ +// List role templates returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.RolesApi; +import com.datadog.api.client.v2.model.RoleTemplateArray; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listRoleTemplates", true); + RolesApi apiInstance = new RolesApi(defaultClient); + + try { + RoleTemplateArray result = apiInstance.listRoleTemplates(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling RolesApi#listRoleTemplates"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index 3f0f46d69b5..089349ea92e 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -761,6 +761,7 @@ public class ApiClient { put("v2.updateMonitorUserTemplate", false); put("v2.validateExistingMonitorUserTemplate", false); put("v2.validateMonitorUserTemplate", false); + put("v2.listRoleTemplates", false); put("v2.createPipeline", false); put("v2.deletePipeline", false); put("v2.getPipeline", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/RolesApi.java b/src/main/java/com/datadog/api/client/v2/api/RolesApi.java index 4aa145e5bf5..7a4e60ca470 100644 --- a/src/main/java/com/datadog/api/client/v2/api/RolesApi.java +++ b/src/main/java/com/datadog/api/client/v2/api/RolesApi.java @@ -11,6 +11,7 @@ import com.datadog.api.client.v2.model.RoleCreateRequest; import com.datadog.api.client.v2.model.RoleCreateResponse; import com.datadog.api.client.v2.model.RoleResponse; +import com.datadog.api.client.v2.model.RoleTemplateArray; import com.datadog.api.client.v2.model.RoleUpdateRequest; import com.datadog.api.client.v2.model.RoleUpdateResponse; import com.datadog.api.client.v2.model.RolesResponse; @@ -1389,6 +1390,131 @@ public CompletableFuture> listRolesWithHttpInfoAsync( new GenericType() {}); } + /** + * List role templates. + * + *

See {@link #listRoleTemplatesWithHttpInfo}. + * + * @return RoleTemplateArray + * @throws ApiException if fails to make API call + */ + public RoleTemplateArray listRoleTemplates() throws ApiException { + return listRoleTemplatesWithHttpInfo().getData(); + } + + /** + * List role templates. + * + *

See {@link #listRoleTemplatesWithHttpInfoAsync}. + * + * @return CompletableFuture<RoleTemplateArray> + */ + public CompletableFuture listRoleTemplatesAsync() { + return listRoleTemplatesWithHttpInfoAsync() + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List all role templates + * + * @return ApiResponse<RoleTemplateArray> + * @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 listRoleTemplatesWithHttpInfo() throws ApiException { + // Check if unstable operation is enabled + String operationId = "listRoleTemplates"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/roles/templates"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.RolesApi.listRoleTemplates", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List role templates. + * + *

See {@link #listRoleTemplatesWithHttpInfo}. + * + * @return CompletableFuture<ApiResponse<RoleTemplateArray>> + */ + public CompletableFuture> listRoleTemplatesWithHttpInfoAsync() { + // Check if unstable operation is enabled + String operationId = "listRoleTemplates"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + // create path and map variables + String localVarPath = "/api/v2/roles/templates"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.RolesApi.listRoleTemplates", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth", "AuthZ"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + /** Manage optional parameters to listRoleUsers. */ public static class ListRoleUsersOptionalParameters { private Long pageSize; diff --git a/src/main/java/com/datadog/api/client/v2/model/RoleTemplateArray.java b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateArray.java new file mode 100644 index 00000000000..c5ab95e5193 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateArray.java @@ -0,0 +1,154 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** The definition of RoleTemplateArray object. */ +@JsonPropertyOrder({RoleTemplateArray.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class RoleTemplateArray { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public RoleTemplateArray() {} + + @JsonCreator + public RoleTemplateArray( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) List data) { + this.data = data; + } + + public RoleTemplateArray data(List data) { + this.data = data; + for (RoleTemplateData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public RoleTemplateArray addDataItem(RoleTemplateData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * The RoleTemplateArray data. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List 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 RoleTemplateArray + */ + @JsonAnySetter + public RoleTemplateArray 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 RoleTemplateArray object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RoleTemplateArray roleTemplateArray = (RoleTemplateArray) o; + return Objects.equals(this.data, roleTemplateArray.data) + && Objects.equals(this.additionalProperties, roleTemplateArray.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RoleTemplateArray {\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/RoleTemplateData.java b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateData.java new file mode 100644 index 00000000000..fe4a83b7b79 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateData.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; + +/** The definition of RoleTemplateData object. */ +@JsonPropertyOrder({ + RoleTemplateData.JSON_PROPERTY_ATTRIBUTES, + RoleTemplateData.JSON_PROPERTY_ID, + RoleTemplateData.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class RoleTemplateData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private RoleTemplateDataAttributes attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private RoleTemplateDataType type = RoleTemplateDataType.ROLES; + + public RoleTemplateData() {} + + @JsonCreator + public RoleTemplateData( + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) RoleTemplateDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + } + + public RoleTemplateData attributes(RoleTemplateDataAttributes attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * The definition of RoleTemplateDataAttributes object. + * + * @return attributes + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public RoleTemplateDataAttributes getAttributes() { + return attributes; + } + + public void setAttributes(RoleTemplateDataAttributes attributes) { + this.attributes = attributes; + } + + public RoleTemplateData id(String id) { + this.id = id; + return this; + } + + /** + * The RoleTemplateData id. + * + * @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 RoleTemplateData type(RoleTemplateDataType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Roles resource type. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public RoleTemplateDataType getType() { + return type; + } + + public void setType(RoleTemplateDataType 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 RoleTemplateData + */ + @JsonAnySetter + public RoleTemplateData 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 RoleTemplateData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RoleTemplateData roleTemplateData = (RoleTemplateData) o; + return Objects.equals(this.attributes, roleTemplateData.attributes) + && Objects.equals(this.id, roleTemplateData.id) + && Objects.equals(this.type, roleTemplateData.type) + && Objects.equals(this.additionalProperties, roleTemplateData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RoleTemplateData {\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/RoleTemplateDataAttributes.java b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateDataAttributes.java new file mode 100644 index 00000000000..b7df79f9387 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateDataAttributes.java @@ -0,0 +1,165 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** The definition of RoleTemplateDataAttributes object. */ +@JsonPropertyOrder({ + RoleTemplateDataAttributes.JSON_PROPERTY_DESCRIPTION, + RoleTemplateDataAttributes.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class RoleTemplateDataAttributes { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public RoleTemplateDataAttributes description(String description) { + this.description = description; + return this; + } + + /** + * The attributes description. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public RoleTemplateDataAttributes name(String name) { + this.name = name; + return this; + } + + /** + * The attributes name. + * + * @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 RoleTemplateDataAttributes + */ + @JsonAnySetter + public RoleTemplateDataAttributes 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 RoleTemplateDataAttributes object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RoleTemplateDataAttributes roleTemplateDataAttributes = (RoleTemplateDataAttributes) o; + return Objects.equals(this.description, roleTemplateDataAttributes.description) + && Objects.equals(this.name, roleTemplateDataAttributes.name) + && Objects.equals( + this.additionalProperties, roleTemplateDataAttributes.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RoleTemplateDataAttributes {\n"); + sb.append(" description: ").append(toIndentedString(description)).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/RoleTemplateDataType.java b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateDataType.java new file mode 100644 index 00000000000..7829c4df7d2 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/RoleTemplateDataType.java @@ -0,0 +1,54 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2019-Present Datadog, Inc. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Roles resource type. */ +@JsonSerialize(using = RoleTemplateDataType.RoleTemplateDataTypeSerializer.class) +public class RoleTemplateDataType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("roles")); + + public static final RoleTemplateDataType ROLES = new RoleTemplateDataType("roles"); + + RoleTemplateDataType(String value) { + super(value, allowedValues); + } + + public static class RoleTemplateDataTypeSerializer extends StdSerializer { + public RoleTemplateDataTypeSerializer(Class t) { + super(t); + } + + public RoleTemplateDataTypeSerializer() { + this(null); + } + + @Override + public void serialize( + RoleTemplateDataType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static RoleTemplateDataType fromValue(String value) { + return new RoleTemplateDataType(value); + } +} diff --git a/src/test/resources/com/datadog/api/client/v2/api/roles.feature b/src/test/resources/com/datadog/api/client/v2/api/roles.feature index bc82e0b07ec..4c62839977e 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/roles.feature +++ b/src/test/resources/com/datadog/api/client/v2/api/roles.feature @@ -216,6 +216,13 @@ Feature: Roles And the response "data" has item with field "attributes.restricted" with value false And the response "data" has item with field "attributes.name" with value "admin" + @generated @skip @team:DataDog/aaa-core-access + Scenario: List role templates returns "OK" response + Given operation "ListRoleTemplates" enabled + And new "ListRoleTemplates" request + When the request is sent + Then the response status is 200 OK + @team:DataDog/aaa-core-access Scenario: List roles returns "OK" response Given there is a valid "role" in the system 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 6fcf52fcedc..95d8a19dcbd 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 @@ -2869,6 +2869,12 @@ "type": "unsafe" } }, + "ListRoleTemplates": { + "tag": "Roles", + "undo": { + "type": "safe" + } + }, "DeleteRole": { "tag": "Roles", "undo": {