From 2eb6baf28608b005ebf598778bb58cc286a02c96 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Thu, 2 Oct 2025 17:10:18 +0000 Subject: [PATCH] Regenerate client from commit 44dea02 of spec repo --- .generator/schemas/v2/openapi.yaml | 65 +++++++++++ examples/v2/roles/ListRoleTemplates.ts | 18 +++ features/support/scenarios_model_mapping.ts | 3 + features/v2/roles.feature | 7 ++ features/v2/undo.json | 6 + .../configuration.ts | 1 + .../datadog-api-client-v2/apis/RolesApi.ts | 107 ++++++++++++++++++ packages/datadog-api-client-v2/index.ts | 4 + .../models/ObjectSerializer.ts | 7 ++ .../models/RoleTemplateArray.ts | 54 +++++++++ .../models/RoleTemplateData.ts | 71 ++++++++++++ .../models/RoleTemplateDataAttributes.ts | 60 ++++++++++ .../models/RoleTemplateDataType.ts | 14 +++ 13 files changed, 417 insertions(+) create mode 100644 examples/v2/roles/ListRoleTemplates.ts create mode 100644 packages/datadog-api-client-v2/models/RoleTemplateArray.ts create mode 100644 packages/datadog-api-client-v2/models/RoleTemplateData.ts create mode 100644 packages/datadog-api-client-v2/models/RoleTemplateDataAttributes.ts create mode 100644 packages/datadog-api-client-v2/models/RoleTemplateDataType.ts diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 72f8cd458145..3d27f6798ca1 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.ts b/examples/v2/roles/ListRoleTemplates.ts new file mode 100644 index 000000000000..76d13b5da5f2 --- /dev/null +++ b/examples/v2/roles/ListRoleTemplates.ts @@ -0,0 +1,18 @@ +/** + * List role templates returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration(); +configuration.unstableOperations["v2.listRoleTemplates"] = true; +const apiInstance = new v2.RolesApi(configuration); + +apiInstance + .listRoleTemplates() + .then((data: v2.RoleTemplateArray) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/features/support/scenarios_model_mapping.ts b/features/support/scenarios_model_mapping.ts index 727886196a45..e6200674a6aa 100644 --- a/features/support/scenarios_model_mapping.ts +++ b/features/support/scenarios_model_mapping.ts @@ -7044,6 +7044,9 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = { }, "operationResponseType": "RoleCreateResponse", }, + "v2.ListRoleTemplates": { + "operationResponseType": "RoleTemplateArray", + }, "v2.GetRole": { "roleId": { "type": "string", diff --git a/features/v2/roles.feature b/features/v2/roles.feature index bc82e0b07eca..4c62839977e8 100644 --- a/features/v2/roles.feature +++ b/features/v2/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/features/v2/undo.json b/features/v2/undo.json index 6fcf52fcedc9..95d8a19dcbd2 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -2869,6 +2869,12 @@ "type": "unsafe" } }, + "ListRoleTemplates": { + "tag": "Roles", + "undo": { + "type": "safe" + } + }, "DeleteRole": { "tag": "Roles", "undo": { diff --git a/packages/datadog-api-client-common/configuration.ts b/packages/datadog-api-client-common/configuration.ts index a5f3561eca57..d62e1f17a4dd 100644 --- a/packages/datadog-api-client-common/configuration.ts +++ b/packages/datadog-api-client-common/configuration.ts @@ -296,6 +296,7 @@ export function createConfiguration( "v2.updateMonitorUserTemplate": false, "v2.validateExistingMonitorUserTemplate": false, "v2.validateMonitorUserTemplate": false, + "v2.listRoleTemplates": false, "v2.createPipeline": false, "v2.deletePipeline": false, "v2.getPipeline": false, diff --git a/packages/datadog-api-client-v2/apis/RolesApi.ts b/packages/datadog-api-client-v2/apis/RolesApi.ts index 52682fc7e4a9..a732de4d472d 100644 --- a/packages/datadog-api-client-v2/apis/RolesApi.ts +++ b/packages/datadog-api-client-v2/apis/RolesApi.ts @@ -26,6 +26,7 @@ import { RoleCreateResponse } from "../models/RoleCreateResponse"; import { RoleResponse } from "../models/RoleResponse"; import { RolesResponse } from "../models/RolesResponse"; import { RolesSort } from "../models/RolesSort"; +import { RoleTemplateArray } from "../models/RoleTemplateArray"; import { RoleUpdateRequest } from "../models/RoleUpdateRequest"; import { RoleUpdateResponse } from "../models/RoleUpdateResponse"; import { UsersResponse } from "../models/UsersResponse"; @@ -420,6 +421,36 @@ export class RolesApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + public async listRoleTemplates( + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'listRoleTemplates'"); + if (!_config.unstableOperations["v2.listRoleTemplates"]) { + throw new Error("Unstable operation 'listRoleTemplates' is disabled"); + } + + // Path Params + const localVarPath = "/api/v2/roles/templates"; + + // Make Request Context + const requestContext = _config + .getServer("v2.RolesApi.listRoleTemplates") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + public async listRoleUsers( roleId: string, pageSize?: number, @@ -1184,6 +1215,64 @@ export class RolesApiResponseProcessor { ); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listRoleTemplates + * @throws ApiException if the response code was not in [200, 299] + */ + public async listRoleTemplates( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: RoleTemplateArray = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "RoleTemplateArray" + ) as RoleTemplateArray; + return body; + } + if (response.httpStatusCode === 429) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: RoleTemplateArray = ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "RoleTemplateArray", + "" + ) as RoleTemplateArray; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -1809,6 +1898,24 @@ export class RolesApi { }); } + /** + * List all role templates + * @param param The request object + */ + public listRoleTemplates( + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.listRoleTemplates(options); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listRoleTemplates(responseContext); + }); + }); + } + /** * Gets all users of a role. * @param param The request object diff --git a/packages/datadog-api-client-v2/index.ts b/packages/datadog-api-client-v2/index.ts index 0bd4f6335a36..57e340706a4c 100644 --- a/packages/datadog-api-client-v2/index.ts +++ b/packages/datadog-api-client-v2/index.ts @@ -3201,6 +3201,10 @@ export { RoleResponseRelationships } from "./models/RoleResponseRelationships"; export { RolesResponse } from "./models/RolesResponse"; export { RolesSort } from "./models/RolesSort"; export { RolesType } from "./models/RolesType"; +export { RoleTemplateArray } from "./models/RoleTemplateArray"; +export { RoleTemplateData } from "./models/RoleTemplateData"; +export { RoleTemplateDataAttributes } from "./models/RoleTemplateDataAttributes"; +export { RoleTemplateDataType } from "./models/RoleTemplateDataType"; export { RoleUpdateAttributes } from "./models/RoleUpdateAttributes"; export { RoleUpdateData } from "./models/RoleUpdateData"; export { RoleUpdateRequest } from "./models/RoleUpdateRequest"; diff --git a/packages/datadog-api-client-v2/models/ObjectSerializer.ts b/packages/datadog-api-client-v2/models/ObjectSerializer.ts index 4cdedde02d70..d8ee5e143d44 100644 --- a/packages/datadog-api-client-v2/models/ObjectSerializer.ts +++ b/packages/datadog-api-client-v2/models/ObjectSerializer.ts @@ -1777,6 +1777,9 @@ import { RoleCreateResponseData } from "./RoleCreateResponseData"; import { RoleRelationships } from "./RoleRelationships"; import { RoleResponse } from "./RoleResponse"; import { RoleResponseRelationships } from "./RoleResponseRelationships"; +import { RoleTemplateArray } from "./RoleTemplateArray"; +import { RoleTemplateData } from "./RoleTemplateData"; +import { RoleTemplateDataAttributes } from "./RoleTemplateDataAttributes"; import { RoleUpdateAttributes } from "./RoleUpdateAttributes"; import { RoleUpdateData } from "./RoleUpdateData"; import { RoleUpdateRequest } from "./RoleUpdateRequest"; @@ -3440,6 +3443,7 @@ const enumsMap: { [key: string]: any[] } = { ], RetentionFilterType: ["spans-sampling-processor"], RetryStrategyKind: ["RETRY_STRATEGY_LINEAR"], + RoleTemplateDataType: ["roles"], RolesSort: [ "name", "-name", @@ -5988,6 +5992,9 @@ const typeMap: { [index: string]: any } = { RoleRelationships: RoleRelationships, RoleResponse: RoleResponse, RoleResponseRelationships: RoleResponseRelationships, + RoleTemplateArray: RoleTemplateArray, + RoleTemplateData: RoleTemplateData, + RoleTemplateDataAttributes: RoleTemplateDataAttributes, RoleUpdateAttributes: RoleUpdateAttributes, RoleUpdateData: RoleUpdateData, RoleUpdateRequest: RoleUpdateRequest, diff --git a/packages/datadog-api-client-v2/models/RoleTemplateArray.ts b/packages/datadog-api-client-v2/models/RoleTemplateArray.ts new file mode 100644 index 000000000000..9854361a9e08 --- /dev/null +++ b/packages/datadog-api-client-v2/models/RoleTemplateArray.ts @@ -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 2020-Present Datadog, Inc. + */ +import { RoleTemplateData } from "./RoleTemplateData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The definition of `RoleTemplateArray` object. + */ +export class RoleTemplateArray { + /** + * The `RoleTemplateArray` `data`. + */ + "data": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return RoleTemplateArray.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/RoleTemplateData.ts b/packages/datadog-api-client-v2/models/RoleTemplateData.ts new file mode 100644 index 000000000000..35158d5ef40e --- /dev/null +++ b/packages/datadog-api-client-v2/models/RoleTemplateData.ts @@ -0,0 +1,71 @@ +/** + * 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 2020-Present Datadog, Inc. + */ +import { RoleTemplateDataAttributes } from "./RoleTemplateDataAttributes"; +import { RoleTemplateDataType } from "./RoleTemplateDataType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The definition of `RoleTemplateData` object. + */ +export class RoleTemplateData { + /** + * The definition of `RoleTemplateDataAttributes` object. + */ + "attributes"?: RoleTemplateDataAttributes; + /** + * The `RoleTemplateData` `id`. + */ + "id"?: string; + /** + * Roles resource type. + */ + "type": RoleTemplateDataType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "RoleTemplateDataAttributes", + }, + id: { + baseName: "id", + type: "string", + }, + type: { + baseName: "type", + type: "RoleTemplateDataType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return RoleTemplateData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/RoleTemplateDataAttributes.ts b/packages/datadog-api-client-v2/models/RoleTemplateDataAttributes.ts new file mode 100644 index 000000000000..c118e048f592 --- /dev/null +++ b/packages/datadog-api-client-v2/models/RoleTemplateDataAttributes.ts @@ -0,0 +1,60 @@ +/** + * 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 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The definition of `RoleTemplateDataAttributes` object. + */ +export class RoleTemplateDataAttributes { + /** + * The `attributes` `description`. + */ + "description"?: string; + /** + * The `attributes` `name`. + */ + "name"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + description: { + baseName: "description", + type: "string", + }, + name: { + baseName: "name", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return RoleTemplateDataAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/RoleTemplateDataType.ts b/packages/datadog-api-client-v2/models/RoleTemplateDataType.ts new file mode 100644 index 000000000000..56b59dd8a4b2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/RoleTemplateDataType.ts @@ -0,0 +1,14 @@ +/** + * 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 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Roles resource type. + */ + +export type RoleTemplateDataType = typeof ROLES | UnparsedObject; +export const ROLES = "roles";