From df046ef0ca1c234cf3682c9dac72e180c8818a87 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 28 Oct 2026 22:33:18 +0000 Subject: [PATCH] Regenerate client from commit 7014e0c of spec repo --- .generator/schemas/v2/openapi.yaml | 2512 ++++++++--------- src/datadog_api_client/configuration.py | 24 +- .../v2/api/cloud_authentication_api.py | 24 +- tests/v2/features/undo.json | 186 +- 4 files changed, 1373 insertions(+), 1373 deletions(-) diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 28f6789e0c..bf9ea4d591 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -156893,550 +156893,6 @@ paths: tags: - CI Visibility Logs x-codegen-request-body-name: body - /api/v2/cloud_auth/aws/persona_mapping: - get: - description: List all AWS cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate AWS IAM principals with Datadog users. - operationId: ListAWSCloudAuthPersonaMappings - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - account_identifier: test@example.com - account_uuid: 00000000-0000-0000-0000-000000000001 - arn_pattern: "arn:aws:iam::123456789012:user/testuser" - id: abc-123 - type: aws_cloud_auth_config - schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingsResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: List AWS cloud authentication persona mappings - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: Create an AWS cloud authentication persona mapping. This endpoint associates an AWS IAM principal with a Datadog user. - operationId: CreateAWSCloudAuthPersonaMapping - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: test@test.com - arn_pattern: arn:aws:iam::123456789012:user/testuser - type: aws_cloud_auth_config - schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingCreateRequest" - required: true - responses: - "201": - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: test@example.com - account_uuid: 00000000-0000-0000-0000-000000000001 - arn_pattern: "arn:aws:iam::123456789012:user/testuser" - id: abc-123 - type: aws_cloud_auth_config - schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" - description: Created - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Conflict - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create an AWS cloud authentication persona mapping - tags: - - Cloud Authentication - x-codegen-request-body-name: body - x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_auth/aws/persona_mapping/{persona_mapping_id}: - delete: - description: Delete an AWS cloud authentication persona mapping by ID. This removes the association between an AWS IAM principal and a Datadog user. - operationId: DeleteAWSCloudAuthPersonaMapping - parameters: - - $ref: "#/components/parameters/PersonaMappingID" - responses: - "204": - description: No Content - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete an AWS cloud authentication persona mapping - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - get: - description: Get a specific AWS cloud authentication persona mapping by ID. This endpoint retrieves a single configured persona mapping that associates an AWS IAM principal with a Datadog user. - operationId: GetAWSCloudAuthPersonaMapping - parameters: - - $ref: "#/components/parameters/PersonaMappingID" - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: test@example.com - account_uuid: 00000000-0000-0000-0000-000000000001 - arn_pattern: "arn:aws:iam::123456789012:user/testuser" - id: abc-123 - type: aws_cloud_auth_config - schema: - $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" - description: OK - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get an AWS cloud authentication persona mapping - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in public beta and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_auth/github/intake_mapping: - get: - description: List all GitHub cloud authentication intake mappings. This endpoint retrieves all configured intake mappings that entitle matching GitHub Actions OIDC principals to request Datadog API keys. - operationId: ListGitHubCloudAuthIntakeMappings - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - id: d6d869d7-29d3-5595-bf40-57c95235cf5b - type: github_oidc_auth_intake_mapping - schema: - $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingsResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: List GitHub cloud authentication intake mappings - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: Create a GitHub cloud authentication intake mapping. This endpoint entitles a matching GitHub Actions OIDC principal to request Datadog API keys. - operationId: CreateGitHubCloudAuthIntakeMapping - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - type: github_oidc_auth_intake_mapping - schema: - $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingCreateRequest" - required: true - responses: - "201": - content: - application/json: - examples: - default: - value: - data: - attributes: - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - id: d6d869d7-29d3-5595-bf40-57c95235cf5b - type: github_oidc_auth_intake_mapping - schema: - $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingResponse" - description: Created - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Conflict - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a GitHub cloud auth intake mapping - tags: - - Cloud Authentication - x-codegen-request-body-name: body - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_auth/github/intake_mapping/{intake_mapping_id}: - delete: - description: Delete a GitHub cloud authentication intake mapping by ID. This removes a GitHub Actions OIDC principal's entitlement to request Datadog API keys. - operationId: DeleteGitHubCloudAuthIntakeMapping - parameters: - - $ref: "#/components/parameters/IntakeMappingID" - responses: - "204": - description: No Content - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a GitHub cloud auth intake mapping - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - get: - description: Get a specific GitHub cloud authentication intake mapping by ID. This endpoint retrieves a single configured intake mapping that entitles a matching GitHub Actions OIDC principal to request Datadog API keys. - operationId: GetGitHubCloudAuthIntakeMapping - parameters: - - $ref: "#/components/parameters/IntakeMappingID" - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - id: d6d869d7-29d3-5595-bf40-57c95235cf5b - type: github_oidc_auth_intake_mapping - schema: - $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingResponse" - description: OK - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a GitHub cloud authentication intake mapping - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_auth/github/persona_mapping: - get: - description: List all GitHub cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate GitHub Actions OpenID Connect (OIDC) principals with Datadog users. Mapped principals can request impersonation tokens. - operationId: ListGitHubCloudAuthPersonaMappings - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - account_identifier: "test@example.com" - account_uuid: "12bbdc5c-5966-47e0-8733-285f9e44bcf4" - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - id: c5c758c6-18c2-4484-ae3f-46b84128404a - type: github_oidc_auth_config - schema: - $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingsResponse" - description: OK - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: List GitHub cloud authentication persona mappings - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - post: - description: Create a GitHub cloud authentication persona mapping. This endpoint associates a GitHub Actions OIDC principal with a Datadog user. The mapped principal can request an impersonation token. - operationId: CreateGitHubCloudAuthPersonaMapping - requestBody: - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: "test@example.com" - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - type: github_oidc_auth_config - schema: - $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingCreateRequest" - required: true - responses: - "201": - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: "test@example.com" - account_uuid: "12bbdc5c-5966-47e0-8733-285f9e44bcf4" - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - id: c5c758c6-18c2-4484-ae3f-46b84128404a - type: github_oidc_auth_config - schema: - $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingResponse" - description: Created - "400": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Bad Request - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "409": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Conflict - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a GitHub cloud auth persona mapping - tags: - - Cloud Authentication - x-codegen-request-body-name: body - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/cloud_auth/github/persona_mapping/{persona_mapping_id}: - delete: - description: Delete a GitHub cloud authentication persona mapping by ID. This removes the association between a GitHub Actions OIDC principal and a Datadog user. - operationId: DeleteGitHubCloudAuthPersonaMapping - parameters: - - $ref: "#/components/parameters/PersonaMappingID" - responses: - "204": - description: No Content - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a GitHub cloud auth persona mapping - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - get: - description: Get a specific GitHub cloud authentication persona mapping by ID. This endpoint retrieves a single configured persona mapping that associates a GitHub Actions OIDC principal with a Datadog user. The mapped principal can request an impersonation token. - operationId: GetGitHubCloudAuthPersonaMapping - parameters: - - $ref: "#/components/parameters/PersonaMappingID" - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - attributes: - account_identifier: "test@example.com" - account_uuid: "12bbdc5c-5966-47e0-8733-285f9e44bcf4" - claim_matchers: - ref: "refs/heads/main" - repository: "test_owner/test_repo" - repository_owner: "test_owner" - sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" - id: c5c758c6-18c2-4484-ae3f-46b84128404a - type: github_oidc_auth_config - schema: - $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingResponse" - description: OK - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" - description: Not Found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a GitHub cloud authentication persona mapping - tags: - - Cloud Authentication - x-unstable: |- - **Note**: This endpoint is in Preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/cloud_security_management/custom_frameworks: post: description: Create a custom framework. @@ -253305,74 +252761,520 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not found + $ref: "#/components/schemas/APIErrorResponse" + description: Not found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_manage + summary: Get identity provider overrides for a user + tags: + - Users + "x-permission": + operator: OR + permissions: + - user_access_manage + /api/v2/users/{user_id}/invitations: + delete: + description: |- + Cancel all pending invitations for a specified user. + Requires the `user_access_invite` permission. + operationId: DeleteUserInvitations + parameters: + - description: The UUID of the user whose pending invitations should be canceled. + in: path + name: user_id + required: true + schema: + example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" + format: uuid + type: string + responses: + "200": + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication error + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_invite + summary: Delete a pending user's invitations + tags: + - Users + "x-permission": + operator: OR + permissions: + - user_access_invite + /api/v2/users/{user_id}/orgs: + get: + description: |- + Get a user organization. Returns the user information and all organizations + joined by this user. + operationId: ListUserOrganizations + parameters: + - $ref: "#/components/parameters/UserID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + email: test@example.com + handle: example-handle + name: Example Name + status: Active + id: 00000000-0000-0000-0000-000000000005 + type: users + included: [] + schema: + $ref: "#/components/schemas/UserResponse" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication error + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get a user organization + tags: + - Users + x-codegen-request-body-name: body + "x-permission": + operator: OPEN + permissions: [] + /api/v2/users/{user_id}/permissions: + get: + description: |- + Get a user permission set. Returns a list of the user’s permissions + granted by the associated user's roles. + operationId: ListUserPermissions + parameters: + - $ref: "#/components/parameters/UserID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + display_name: Logs Read Data + display_type: read + name: logs_read_data + restricted: false + id: 00000000-0000-0000-0000-000000000006 + type: permissions + schema: + $ref: "#/components/schemas/PermissionsResponse" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication error + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_read + summary: Get a user permissions + tags: + - Users + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - user_access_read + /api/v2/users/{user_id}/relationships/identity_providers: + patch: + description: |- + Set the identity provider overrides for a specific user in the organization. + Pass an empty list to remove all overrides, reverting the user to the organization's + default identity providers. + operationId: UpdateUserIdentityProviders + parameters: + - $ref: "#/components/parameters/UserID" + requestBody: + content: + application/json: + examples: + default: + value: + data: + - id: "00000000-0000-0000-0000-000000000001" + type: identity_providers + schema: + $ref: "#/components/schemas/UpdateUserIdentityProvidersRequest" + required: true + responses: + "204": + description: No Content + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Authentication error + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - user_access_manage + summary: Update identity provider overrides for a user + tags: + - Users + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - user_access_manage + /api/v2/users/{user_uuid}/memberships: + get: + description: Get a list of memberships for a user + operationId: GetUserMemberships + parameters: + - description: None + in: path + name: user_uuid + required: true + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + role: admin + id: 00000000-0000-0000-0000-000000000001 + type: team_memberships + schema: + $ref: "#/components/schemas/UserTeamsResponse" + description: Represents a user's association to a team + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: API error response. + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - teams_read + summary: Get user memberships + tags: + - Teams + "x-permission": + operator: OR + permissions: + - teams_read + /api/v2/validate: + get: + description: Check if the API key is valid. Returns the organization UUID, API key ID, and associated scopes. + operationId: Validate + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + api_key_id: "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6" + api_key_scopes: + - "remote_config_read" + valid: true + id: "550e8400-e29b-41d4-a716-446655440000" + type: "validate_v2" + schema: + $ref: "#/components/schemas/ValidateV2Response" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + summary: Validate API key + tags: + - Key Management + "x-permission": + operator: OPEN + permissions: [] + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/validate_keys: + get: + description: |- + Check that the API key and application key used for the request are both valid. + Returns `{"status": "ok"}` on success, `401` or `403` otherwise. Useful as a + lightweight authentication probe before issuing other API calls that require + full credentials. + operationId: ValidateAPIKey + responses: + "200": + content: + application/json: + examples: + default: + value: + status: ok + schema: + $ref: "#/components/schemas/ValidateAPIKeyResponse" + description: OK + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Validate API and application keys + tags: + - Key Management + "x-permission": + operator: OPEN + permissions: [] + /api/v2/web-integrations/{integration_name}/accounts: + get: + description: List accounts for a given web integration. + operationId: ListWebIntegrationAccounts + parameters: + - description: The name of the integration (for example, `databricks`). + in: path + name: integration_name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + name: my-databricks-account + settings: + workspace_url: https://example.azuredatabricks.net + id: abc123def456 + type: Account + schema: + $ref: "#/components/schemas/WebIntegrationAccountsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List web integration accounts + tags: + - Web Integrations + "x-permission": + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. + post: + description: Create a new account for a given web integration. + operationId: CreateWebIntegrationAccount + parameters: + - description: The name of the integration (for example, `databricks`). + in: path + name: integration_name + required: true + schema: + type: string + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + name: my-databricks-account + secrets: + client_secret: my-client-secret + settings: + workspace_url: https://example.azuredatabricks.net + type: Account + schema: + $ref: "#/components/schemas/WebIntegrationAccountCreateRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + name: my-databricks-account + settings: + workspace_url: https://example.azuredatabricks.net + id: abc123def456 + type: Account + schema: + $ref: "#/components/schemas/WebIntegrationAccountResponse" + description: CREATED + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "422": + $ref: "#/components/responses/UnprocessableEntityResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - user_access_manage - summary: Get identity provider overrides for a user + summary: Create a web integration account tags: - - Users + - Web Integrations + x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - user_access_manage - /api/v2/users/{user_id}/invitations: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. + /api/v2/web-integrations/{integration_name}/accounts/{account_id}: delete: - description: |- - Cancel all pending invitations for a specified user. - Requires the `user_access_invite` permission. - operationId: DeleteUserInvitations + description: Delete an account for a given web integration. + operationId: DeleteWebIntegrationAccount parameters: - - description: The UUID of the user whose pending invitations should be canceled. + - description: The name of the integration (for example, `databricks`). in: path - name: user_id + name: integration_name + required: true + schema: + type: string + - description: The unique identifier of the web integration account. + in: path + name: account_id required: true schema: - example: "4dee724d-00cc-11ea-a77b-570c9d03c6c5" - format: uuid type: string responses: - "200": + "204": description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - user_access_invite - summary: Delete a pending user's invitations + summary: Delete a web integration account tags: - - Users + - Web Integrations "x-permission": operator: OR permissions: - - user_access_invite - /api/v2/users/{user_id}/orgs: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. get: - description: |- - Get a user organization. Returns the user information and all organizations - joined by this user. - operationId: ListUserOrganizations + description: Get a single account for a given web integration. + operationId: GetWebIntegrationAccount parameters: - - $ref: "#/components/parameters/UserID" + - description: The name of the integration (for example, `databricks`). + in: path + name: integration_name + required: true + schema: + type: string + - description: The unique identifier of the web integration account. + in: path + name: account_id + required: true + schema: + type: string responses: "200": content: @@ -253382,103 +253284,47 @@ paths: value: data: attributes: - email: test@example.com - handle: example-handle - name: Example Name - status: Active - id: 00000000-0000-0000-0000-000000000005 - type: users - included: [] - schema: - $ref: "#/components/schemas/UserResponse" - description: OK - "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not found - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Get a user organization - tags: - - Users - x-codegen-request-body-name: body - "x-permission": - operator: OPEN - permissions: [] - /api/v2/users/{user_id}/permissions: - get: - description: |- - Get a user permission set. Returns a list of the user’s permissions - granted by the associated user's roles. - operationId: ListUserPermissions - parameters: - - $ref: "#/components/parameters/UserID" - responses: - "200": - content: - application/json: - examples: - default: - value: - data: - - attributes: - display_name: Logs Read Data - display_type: read - name: logs_read_data - restricted: false - id: 00000000-0000-0000-0000-000000000006 - type: permissions + name: my-databricks-account + settings: + workspace_url: https://example.azuredatabricks.net + id: abc123def456 + type: Account schema: - $ref: "#/components/schemas/PermissionsResponse" + $ref: "#/components/schemas/WebIntegrationAccountResponse" description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not found + $ref: "#/components/responses/NotFoundResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - user_access_read - summary: Get a user permissions + summary: Get a web integration account tags: - - Users - x-codegen-request-body-name: body + - Web Integrations "x-permission": operator: OR permissions: - - user_access_read - /api/v2/users/{user_id}/relationships/identity_providers: + - integrations_read + x-unstable: |- + **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. patch: - description: |- - Set the identity provider overrides for a specific user in the organization. - Pass an empty list to remove all overrides, reverting the user to the organization's - default identity providers. - operationId: UpdateUserIdentityProviders + description: Update an existing account for a given web integration. + operationId: UpdateWebIntegrationAccount parameters: - - $ref: "#/components/parameters/UserID" + - description: The name of the integration (for example, `databricks`). + in: path + name: integration_name + required: true + schema: + type: string + - description: The unique identifier of the web integration account. + in: path + name: account_id + required: true + schema: + type: string requestBody: content: application/json: @@ -253486,58 +253332,131 @@ paths: default: value: data: - - id: "00000000-0000-0000-0000-000000000001" - type: identity_providers + attributes: + name: my-databricks-account + secrets: + client_secret: my-new-client-secret + settings: + workspace_url: https://updated.azuredatabricks.net + type: Account schema: - $ref: "#/components/schemas/UpdateUserIdentityProvidersRequest" + $ref: "#/components/schemas/WebIntegrationAccountUpdateRequest" required: true responses: - "204": - description: No Content - "400": + "200": content: application/json: + examples: + default: + value: + data: + attributes: + name: my-databricks-account + settings: + workspace_url: https://updated.azuredatabricks.net + id: abc123def456 + type: Account schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/WebIntegrationAccountResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" "403": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Authentication error + $ref: "#/components/responses/ForbiddenResponse" "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not found + $ref: "#/components/responses/NotFoundResponse" + "422": + $ref: "#/components/responses/UnprocessableEntityResponse" "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: - - user_access_manage - summary: Update identity provider overrides for a user + summary: Update a web integration account tags: - - Users + - Web Integrations x-codegen-request-body-name: body "x-permission": operator: OR permissions: - - user_access_manage - /api/v2/users/{user_uuid}/memberships: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. + /api/v2/widgets/{experience_type}: get: - description: Get a list of memberships for a user - operationId: GetUserMemberships + description: |- + Search and list widgets for a given experience type, with filtering, sorting, and pagination. + + **Response meta** carries totals scoped to the current filter: + - `filtered_total` — widgets matching the filter. + - `created_by_you_total` — among the matches, how many the current user created. + - `favorited_by_you_total` — among the matches, how many the current user has favorited. + - `created_by_anyone_total` — total widgets in the experience type, ignoring filters. + + Each returned widget includes `is_favorited` reflecting the current user's favorite status. + Favoriting itself is performed through the shared favorites API, not this endpoint. + operationId: SearchWidgets parameters: - - description: None + - description: The experience type for the widget. in: path - name: user_uuid + name: experience_type required: true schema: + $ref: "#/components/schemas/WidgetExperienceType" + - description: Filter widgets by widget type. + in: query + name: filter[widgetType] + schema: + $ref: "#/components/schemas/WidgetType" + - description: Filter widgets by the email handle of the creator. + in: query + name: filter[creatorHandle] + schema: + example: "john.doe@example.com" + type: string + - description: Filter to only widgets favorited by the current user. + in: query + name: filter[isFavorited] + schema: + type: boolean + - description: Filter widgets by title (substring match). + in: query + name: filter[title] + schema: + type: string + - description: Filter widgets by tags. Format as bracket-delimited CSV, e.g. `[tag1,tag2]`. + in: query + name: filter[tags] + schema: + type: string + - description: |- + Sort field for the results. + + **`title`, `created_at`, `modified_at`** — both ascending and descending are + supported. Use the bare field name for ascending (e.g. `sort=title`) or prefix + with `-` for descending (e.g. `sort=-modified_at`). + + **`is_favorited`** — returns favorites-first ordering (favorited widgets first, + then the rest). Direction is fixed; the `-` prefix is ignored for this field. + in: query + name: sort + schema: + default: "-modified_at" + example: "-modified_at" type: string + - description: Page number for pagination (0-indexed). + in: query + name: page[number] + schema: + default: 0 + format: int64 + minimum: 0 + type: integer + - description: Number of widgets per page. + in: query + name: page[size] + schema: + default: 50 + format: int64 + maximum: 100 + type: integer responses: "200": content: @@ -253545,38 +253464,93 @@ paths: examples: default: value: - data: - - attributes: - role: admin - id: 00000000-0000-0000-0000-000000000001 - type: team_memberships + data: [] schema: - $ref: "#/components/schemas/UserTeamsResponse" - description: Represents a user's association to a team - "404": + $ref: "#/components/schemas/WidgetListResponse" + description: OK + "400": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: API error response. + description: Bad Request + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - teams_read - summary: Get user memberships + - AuthZ: [] + summary: Search widgets tags: - - Teams - "x-permission": + - Widgets + x-permission: operator: OR permissions: - - teams_read - /api/v2/validate: - get: - description: Check if the API key is valid. Returns the organization UUID, API key ID, and associated scopes. - operationId: Validate + - cloud_cost_management_read + - generate_log_reports + - manage_log_reports + - product_analytics_saved_widgets_read + post: + description: Create a new widget for a given experience type. + operationId: CreateWidget + parameters: + - description: The experience type for the widget. + in: path + name: experience_type + required: true + schema: + $ref: "#/components/schemas/WidgetExperienceType" + requestBody: + content: + application/json: + examples: + default: + summary: CCM cost summary widget + value: + data: + attributes: + definition: + graph_options: + - type: query_value + view: total + - type: query_value + view: change + - display_type: bars + type: timeseries + - type: cloud_cost_table + view: summary + requests: + - formulas: + - formula: query1 + queries: + - data_source: cloud_cost + name: query1 + query: sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, daily) + response_format: timeseries + time: + type: live + unit: day + value: 30 + title: AWS spend by service (last 30 days) + type: cloud_cost_summary + tags: ["finops", "aws"] + type: widgets + schema: + $ref: "#/components/schemas/CreateOrUpdateWidgetRequest" + description: |- + Widget request body. The `definition` object's required fields vary + by `widget.definition.type`: every type requires `requests`, and + some types require additional fields (e.g. `cloud_cost_summary` + requires `graph_options`, `geomap` requires `style` and `view`). + The example below shows a complete `cloud_cost_summary` payload + for the `ccm_reports` experience type. + required: true responses: "200": content: @@ -253586,87 +253560,119 @@ paths: value: data: attributes: - api_key_id: "a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6" - api_key_scopes: - - "remote_config_read" - valid: true - id: "550e8400-e29b-41d4-a716-446655440000" - type: "validate_v2" + created_at: "2024-01-01T00:00:00+00:00" + definition: + title: My Widget + type: bar_chart + is_favorited: false + modified_at: "2024-01-01T00:00:00+00:00" + tags: + - "team:my-team" + id: abc-123 + type: widgets schema: - $ref: "#/components/schemas/ValidateV2Response" + $ref: "#/components/schemas/WidgetResponse" description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/JSONAPIErrorResponse" + $ref: "#/components/schemas/APIErrorResponse" description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] - summary: Validate API key + appKeyAuth: [] + - AuthZ: [] + summary: Create a widget tags: - - Key Management - "x-permission": - operator: OPEN - permissions: [] - x-unstable: |- - **Note**: This endpoint is in preview and is subject to change. - If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). - /api/v2/validate_keys: - get: - description: |- - Check that the API key and application key used for the request are both valid. - Returns `{"status": "ok"}` on success, `401` or `403` otherwise. Useful as a - lightweight authentication probe before issuing other API calls that require - full credentials. - operationId: ValidateAPIKey + - Widgets + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - cloud_cost_management_write + - generate_log_reports + - manage_log_reports + - product_analytics_saved_widgets_write + /api/v2/widgets/{experience_type}/{uuid}: + delete: + description: Soft-delete a widget by its UUID for a given experience type. + operationId: DeleteWidget + parameters: + - description: The experience type for the widget. + in: path + name: experience_type + required: true + schema: + $ref: "#/components/schemas/WidgetExperienceType" + - description: The UUID of the widget. + in: path + name: uuid + required: true + schema: + format: uuid + type: string responses: - "200": + "204": + description: No Content + "400": content: application/json: - examples: - default: - value: - status: ok schema: - $ref: "#/components/schemas/ValidateAPIKeyResponse" - description: OK - "401": + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request + "403": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Unauthorized - "403": + description: Forbidden + "404": content: application/json: schema: $ref: "#/components/schemas/APIErrorResponse" - description: Forbidden + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" security: - apiKeyAuth: [] appKeyAuth: [] - AuthZ: [] - summary: Validate API and application keys + summary: Delete a widget tags: - - Key Management - "x-permission": - operator: OPEN - permissions: [] - /api/v2/web-integrations/{integration_name}/accounts: + - Widgets + x-permission: + operator: OR + permissions: + - cloud_cost_management_write + - generate_log_reports + - manage_log_reports + - product_analytics_saved_widgets_write get: - description: List accounts for a given web integration. - operationId: ListWebIntegrationAccounts + description: Retrieve a widget by its UUID for a given experience type. + operationId: GetWidget parameters: - - description: The name of the integration (for example, `databricks`). + - description: The experience type for the widget. in: path - name: integration_name + name: experience_type + required: true + schema: + $ref: "#/components/schemas/WidgetExperienceType" + - description: The UUID of the widget. + in: path + name: uuid required: true schema: + format: uuid type: string responses: "200": @@ -253676,61 +253682,115 @@ paths: default: value: data: - - attributes: - name: my-databricks-account - settings: - workspace_url: https://example.azuredatabricks.net - id: abc123def456 - type: Account + attributes: + created_at: "2024-01-01T00:00:00+00:00" + definition: + title: My Widget + type: bar_chart + is_favorited: false + modified_at: "2024-01-01T00:00:00+00:00" + tags: + - "team:my-team" + id: abc-123 + type: widgets schema: - $ref: "#/components/schemas/WebIntegrationAccountsResponse" + $ref: "#/components/schemas/WidgetResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: List web integration accounts + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Get a widget tags: - - Web Integrations - "x-permission": + - Widgets + x-permission: operator: OR permissions: - - integrations_read - x-unstable: |- - **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. - post: - description: Create a new account for a given web integration. - operationId: CreateWebIntegrationAccount + - cloud_cost_management_read + - generate_log_reports + - manage_log_reports + - product_analytics_saved_widgets_read + put: + description: Update a widget by its UUID for a given experience type. This performs a full replacement of the widget definition. + operationId: UpdateWidget parameters: - - description: The name of the integration (for example, `databricks`). + - description: The experience type for the widget. in: path - name: integration_name + name: experience_type + required: true + schema: + $ref: "#/components/schemas/WidgetExperienceType" + - description: The UUID of the widget. + in: path + name: uuid required: true schema: + format: uuid type: string requestBody: content: application/json: examples: default: + summary: CCM cost summary widget value: data: attributes: - name: my-databricks-account - secrets: - client_secret: my-client-secret - settings: - workspace_url: https://example.azuredatabricks.net - type: Account + definition: + graph_options: + - type: query_value + view: total + - type: query_value + view: change + - display_type: bars + type: timeseries + - type: cloud_cost_table + view: summary + requests: + - formulas: + - formula: query1 + queries: + - data_source: cloud_cost + name: query1 + query: sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, daily) + response_format: timeseries + time: + type: live + unit: day + value: 30 + title: AWS spend by service (last 30 days) + type: cloud_cost_summary + tags: ["finops", "aws"] + type: widgets schema: - $ref: "#/components/schemas/WebIntegrationAccountCreateRequest" + $ref: "#/components/schemas/CreateOrUpdateWidgetRequest" + description: |- + Widget request body. The `definition` object's required fields vary + by `widget.definition.type`; see `CreateWidget` above for a complete + worked payload. Update is a full replacement of the widget definition. required: true responses: - "201": + "200": content: application/json: examples: @@ -253738,87 +253798,58 @@ paths: value: data: attributes: - name: my-databricks-account - settings: - workspace_url: https://example.azuredatabricks.net - id: abc123def456 - type: Account + created_at: "2024-01-01T00:00:00+00:00" + definition: + title: My Widget + type: bar_chart + is_favorited: false + modified_at: "2024-01-01T00:00:00+00:00" + tags: + - "team:my-team" + id: abc-123 + type: widgets schema: - $ref: "#/components/schemas/WebIntegrationAccountResponse" - description: CREATED - "400": - $ref: "#/components/responses/BadRequestResponse" - "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "422": - $ref: "#/components/responses/UnprocessableEntityResponse" - "429": - $ref: "#/components/responses/TooManyRequestsResponse" - summary: Create a web integration account - tags: - - Web Integrations - x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - manage_integrations - x-unstable: |- - **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. - /api/v2/web-integrations/{integration_name}/accounts/{account_id}: - delete: - description: Delete an account for a given web integration. - operationId: DeleteWebIntegrationAccount - parameters: - - description: The name of the integration (for example, `databricks`). - in: path - name: integration_name - required: true - schema: - type: string - - description: The unique identifier of the web integration account. - in: path - name: account_id - required: true - schema: - type: string - responses: - "204": + $ref: "#/components/schemas/WidgetResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Forbidden "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/APIErrorResponse" + description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Delete a web integration account + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: [] + summary: Update a widget tags: - - Web Integrations - "x-permission": + - Widgets + x-codegen-request-body-name: body + x-permission: operator: OR permissions: - - manage_integrations - x-unstable: |- - **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. + - cloud_cost_management_write + - generate_log_reports + - manage_log_reports + - product_analytics_saved_widgets_write + /api/v2/wif/aws/persona_mapping: get: - description: Get a single account for a given web integration. - operationId: GetWebIntegrationAccount - parameters: - - description: The name of the integration (for example, `databricks`). - in: path - name: integration_name - required: true - schema: - type: string - - description: The unique identifier of the web integration account. - in: path - name: account_id - required: true - schema: - type: string + description: List all AWS cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate AWS IAM principals with Datadog users. + operationId: ListAWSCloudAuthPersonaMappings responses: "200": content: @@ -253827,48 +253858,38 @@ paths: default: value: data: - attributes: - name: my-databricks-account - settings: - workspace_url: https://example.azuredatabricks.net - id: abc123def456 - type: Account + - attributes: + account_identifier: test@example.com + account_uuid: 00000000-0000-0000-0000-000000000001 + arn_pattern: "arn:aws:iam::123456789012:user/testuser" + id: abc-123 + type: aws_cloud_auth_config schema: - $ref: "#/components/schemas/WebIntegrationAccountResponse" + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingsResponse" description: OK "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Get a web integration account + summary: List AWS cloud authentication persona mappings tags: - - Web Integrations - "x-permission": - operator: OR - permissions: - - integrations_read + - Cloud Authentication x-unstable: |- - **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. - patch: - description: Update an existing account for a given web integration. - operationId: UpdateWebIntegrationAccount - parameters: - - description: The name of the integration (for example, `databricks`). - in: path - name: integration_name - required: true - schema: - type: string - - description: The unique identifier of the web integration account. - in: path - name: account_id - required: true - schema: - type: string + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: Create an AWS cloud authentication persona mapping. This endpoint associates an AWS IAM principal with a Datadog user. + operationId: CreateAWSCloudAuthPersonaMapping requestBody: content: application/json: @@ -253877,17 +253898,14 @@ paths: value: data: attributes: - name: my-databricks-account - secrets: - client_secret: my-new-client-secret - settings: - workspace_url: https://updated.azuredatabricks.net - type: Account + account_identifier: test@test.com + arn_pattern: arn:aws:iam::123456789012:user/testuser + type: aws_cloud_auth_config schema: - $ref: "#/components/schemas/WebIntegrationAccountUpdateRequest" + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingCreateRequest" required: true responses: - "200": + "201": content: application/json: examples: @@ -253895,112 +253913,116 @@ paths: value: data: attributes: - name: my-databricks-account - settings: - workspace_url: https://updated.azuredatabricks.net - id: abc123def456 - type: Account + account_identifier: test@example.com + account_uuid: 00000000-0000-0000-0000-000000000001 + arn_pattern: "arn:aws:iam::123456789012:user/testuser" + id: abc-123 + type: aws_cloud_auth_config schema: - $ref: "#/components/schemas/WebIntegrationAccountResponse" - description: OK + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" + description: Created "400": - $ref: "#/components/responses/BadRequestResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request "403": - $ref: "#/components/responses/ForbiddenResponse" - "404": - $ref: "#/components/responses/NotFoundResponse" - "422": - $ref: "#/components/responses/UnprocessableEntityResponse" + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - summary: Update a web integration account + summary: Create an AWS cloud authentication persona mapping tags: - - Web Integrations + - Cloud Authentication x-codegen-request-body-name: body - "x-permission": - operator: OR - permissions: - - manage_integrations x-unstable: |- - **Note**: This endpoint is for internal Datadog use only and is not part of the public API. It may change without notice. - /api/v2/widgets/{experience_type}: + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/wif/aws/persona_mapping/{persona_mapping_id}: + delete: + description: Delete an AWS cloud authentication persona mapping by ID. This removes the association between an AWS IAM principal and a Datadog user. + operationId: DeleteAWSCloudAuthPersonaMapping + parameters: + - $ref: "#/components/parameters/PersonaMappingID" + responses: + "204": + description: No Content + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete an AWS cloud authentication persona mapping + tags: + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). get: - description: |- - Search and list widgets for a given experience type, with filtering, sorting, and pagination. - - **Response meta** carries totals scoped to the current filter: - - `filtered_total` — widgets matching the filter. - - `created_by_you_total` — among the matches, how many the current user created. - - `favorited_by_you_total` — among the matches, how many the current user has favorited. - - `created_by_anyone_total` — total widgets in the experience type, ignoring filters. - - Each returned widget includes `is_favorited` reflecting the current user's favorite status. - Favoriting itself is performed through the shared favorites API, not this endpoint. - operationId: SearchWidgets + description: Get a specific AWS cloud authentication persona mapping by ID. This endpoint retrieves a single configured persona mapping that associates an AWS IAM principal with a Datadog user. + operationId: GetAWSCloudAuthPersonaMapping parameters: - - description: The experience type for the widget. - in: path - name: experience_type - required: true - schema: - $ref: "#/components/schemas/WidgetExperienceType" - - description: Filter widgets by widget type. - in: query - name: filter[widgetType] - schema: - $ref: "#/components/schemas/WidgetType" - - description: Filter widgets by the email handle of the creator. - in: query - name: filter[creatorHandle] - schema: - example: "john.doe@example.com" - type: string - - description: Filter to only widgets favorited by the current user. - in: query - name: filter[isFavorited] - schema: - type: boolean - - description: Filter widgets by title (substring match). - in: query - name: filter[title] - schema: - type: string - - description: Filter widgets by tags. Format as bracket-delimited CSV, e.g. `[tag1,tag2]`. - in: query - name: filter[tags] - schema: - type: string - - description: |- - Sort field for the results. - - **`title`, `created_at`, `modified_at`** — both ascending and descending are - supported. Use the bare field name for ascending (e.g. `sort=title`) or prefix - with `-` for descending (e.g. `sort=-modified_at`). - - **`is_favorited`** — returns favorites-first ordering (favorited widgets first, - then the rest). Direction is fixed; the `-` prefix is ignored for this field. - in: query - name: sort - schema: - default: "-modified_at" - example: "-modified_at" - type: string - - description: Page number for pagination (0-indexed). - in: query - name: page[number] - schema: - default: 0 - format: int64 - minimum: 0 - type: integer - - description: Number of widgets per page. - in: query - name: page[size] - schema: - default: 50 - format: int64 - maximum: 100 - type: integer + - $ref: "#/components/parameters/PersonaMappingID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + account_identifier: test@example.com + account_uuid: 00000000-0000-0000-0000-000000000001 + arn_pattern: "arn:aws:iam::123456789012:user/testuser" + id: abc-123 + type: aws_cloud_auth_config + schema: + $ref: "#/components/schemas/AWSCloudAuthPersonaMappingResponse" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get an AWS cloud authentication persona mapping + tags: + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in public beta and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/wif/github/intake_mapping: + get: + description: List all GitHub cloud authentication intake mappings. This endpoint retrieves all configured intake mappings that entitle matching GitHub Actions OIDC principals to request Datadog API keys. + operationId: ListGitHubCloudAuthIntakeMappings responses: "200": content: @@ -254008,95 +254030,60 @@ paths: examples: default: value: - data: [] + data: + - attributes: + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + id: d6d869d7-29d3-5595-bf40-57c95235cf5b + type: github_oidc_auth_intake_mapping schema: - $ref: "#/components/schemas/WidgetListResponse" + $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingsResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Search widgets + summary: List GitHub cloud authentication intake mappings tags: - - Widgets - x-permission: - operator: OR - permissions: - - cloud_cost_management_read - - generate_log_reports - - manage_log_reports - - product_analytics_saved_widgets_read + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). post: - description: Create a new widget for a given experience type. - operationId: CreateWidget - parameters: - - description: The experience type for the widget. - in: path - name: experience_type - required: true - schema: - $ref: "#/components/schemas/WidgetExperienceType" + description: Create a GitHub cloud authentication intake mapping. This endpoint entitles a matching GitHub Actions OIDC principal to request Datadog API keys. + operationId: CreateGitHubCloudAuthIntakeMapping requestBody: content: application/json: examples: default: - summary: CCM cost summary widget value: data: attributes: - definition: - graph_options: - - type: query_value - view: total - - type: query_value - view: change - - display_type: bars - type: timeseries - - type: cloud_cost_table - view: summary - requests: - - formulas: - - formula: query1 - queries: - - data_source: cloud_cost - name: query1 - query: sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, daily) - response_format: timeseries - time: - type: live - unit: day - value: 30 - title: AWS spend by service (last 30 days) - type: cloud_cost_summary - tags: ["finops", "aws"] - type: widgets + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + type: github_oidc_auth_intake_mapping schema: - $ref: "#/components/schemas/CreateOrUpdateWidgetRequest" - description: |- - Widget request body. The `definition` object's required fields vary - by `widget.definition.type`: every type requires `requests`, and - some types require additional fields (e.g. `cloud_cost_summary` - requires `graph_options`, `geomap` requires `style` and `view`). - The example below shows a complete `cloud_cost_summary` payload - for the `ccm_reports` experience type. + $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingCreateRequest" required: true responses: - "200": + "201": content: application/json: examples: @@ -254104,120 +254091,120 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - definition: - title: My Widget - type: bar_chart - is_favorited: false - modified_at: "2024-01-01T00:00:00+00:00" - tags: - - "team:my-team" - id: abc-123 - type: widgets + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + id: d6d869d7-29d3-5595-bf40-57c95235cf5b + type: github_oidc_auth_intake_mapping schema: - $ref: "#/components/schemas/WidgetResponse" - description: OK + $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingResponse" + description: Created "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Create a widget + summary: Create a GitHub cloud auth intake mapping tags: - - Widgets + - Cloud Authentication x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - cloud_cost_management_write - - generate_log_reports - - manage_log_reports - - product_analytics_saved_widgets_write - /api/v2/widgets/{experience_type}/{uuid}: + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/wif/github/intake_mapping/{intake_mapping_id}: delete: - description: Soft-delete a widget by its UUID for a given experience type. - operationId: DeleteWidget + description: Delete a GitHub cloud authentication intake mapping by ID. This removes a GitHub Actions OIDC principal's entitlement to request Datadog API keys. + operationId: DeleteGitHubCloudAuthIntakeMapping parameters: - - description: The experience type for the widget. - in: path - name: experience_type - required: true - schema: - $ref: "#/components/schemas/WidgetExperienceType" - - description: The UUID of the widget. - in: path - name: uuid - required: true - schema: - format: uuid - type: string + - $ref: "#/components/parameters/IntakeMappingID" responses: "204": description: No Content - "400": + "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Bad Request + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete a GitHub cloud auth intake mapping + tags: + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Get a specific GitHub cloud authentication intake mapping by ID. This endpoint retrieves a single configured intake mapping that entitles a matching GitHub Actions OIDC principal to request Datadog API keys. + operationId: GetGitHubCloudAuthIntakeMapping + parameters: + - $ref: "#/components/parameters/IntakeMappingID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + id: d6d869d7-29d3-5595-bf40-57c95235cf5b + type: github_oidc_auth_intake_mapping + schema: + $ref: "#/components/schemas/GitHubCloudAuthIntakeMappingResponse" + description: OK "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Delete a widget + summary: Get a GitHub cloud authentication intake mapping tags: - - Widgets - x-permission: - operator: OR - permissions: - - cloud_cost_management_write - - generate_log_reports - - manage_log_reports - - product_analytics_saved_widgets_write + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/wif/github/persona_mapping: get: - description: Retrieve a widget by its UUID for a given experience type. - operationId: GetWidget - parameters: - - description: The experience type for the widget. - in: path - name: experience_type - required: true - schema: - $ref: "#/components/schemas/WidgetExperienceType" - - description: The UUID of the widget. - in: path - name: uuid - required: true - schema: - format: uuid - type: string + description: List all GitHub cloud authentication persona mappings. This endpoint retrieves all configured persona mappings that associate GitHub Actions OpenID Connect (OIDC) principals with Datadog users. Mapped principals can request impersonation tokens. + operationId: ListGitHubCloudAuthPersonaMappings responses: "200": content: @@ -254226,115 +254213,62 @@ paths: default: value: data: - attributes: - created_at: "2024-01-01T00:00:00+00:00" - definition: - title: My Widget - type: bar_chart - is_favorited: false - modified_at: "2024-01-01T00:00:00+00:00" - tags: - - "team:my-team" - id: abc-123 - type: widgets + - attributes: + account_identifier: "test@example.com" + account_uuid: "12bbdc5c-5966-47e0-8733-285f9e44bcf4" + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + id: c5c758c6-18c2-4484-ae3f-46b84128404a + type: github_oidc_auth_config schema: - $ref: "#/components/schemas/WidgetResponse" + $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingsResponse" description: OK "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden - "404": - content: - application/json: - schema: - $ref: "#/components/schemas/APIErrorResponse" - description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Get a widget + summary: List GitHub cloud authentication persona mappings tags: - - Widgets - x-permission: - operator: OR - permissions: - - cloud_cost_management_read - - generate_log_reports - - manage_log_reports - - product_analytics_saved_widgets_read - put: - description: Update a widget by its UUID for a given experience type. This performs a full replacement of the widget definition. - operationId: UpdateWidget - parameters: - - description: The experience type for the widget. - in: path - name: experience_type - required: true - schema: - $ref: "#/components/schemas/WidgetExperienceType" - - description: The UUID of the widget. - in: path - name: uuid - required: true - schema: - format: uuid - type: string + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: Create a GitHub cloud authentication persona mapping. This endpoint associates a GitHub Actions OIDC principal with a Datadog user. The mapped principal can request an impersonation token. + operationId: CreateGitHubCloudAuthPersonaMapping requestBody: content: application/json: examples: default: - summary: CCM cost summary widget value: data: attributes: - definition: - graph_options: - - type: query_value - view: total - - type: query_value - view: change - - display_type: bars - type: timeseries - - type: cloud_cost_table - view: summary - requests: - - formulas: - - formula: query1 - queries: - - data_source: cloud_cost - name: query1 - query: sum:aws.cost.amortized{*} by {aws_product}.rollup(sum, daily) - response_format: timeseries - time: - type: live - unit: day - value: 30 - title: AWS spend by service (last 30 days) - type: cloud_cost_summary - tags: ["finops", "aws"] - type: widgets + account_identifier: "test@example.com" + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + type: github_oidc_auth_config schema: - $ref: "#/components/schemas/CreateOrUpdateWidgetRequest" - description: |- - Widget request body. The `definition` object's required fields vary - by `widget.definition.type`; see `CreateWidget` above for a complete - worked payload. Update is a full replacement of the widget definition. + $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingCreateRequest" required: true responses: - "200": + "201": content: application/json: examples: @@ -254342,54 +254276,120 @@ paths: value: data: attributes: - created_at: "2024-01-01T00:00:00+00:00" - definition: - title: My Widget - type: bar_chart - is_favorited: false - modified_at: "2024-01-01T00:00:00+00:00" - tags: - - "team:my-team" - id: abc-123 - type: widgets + account_identifier: "test@example.com" + account_uuid: "12bbdc5c-5966-47e0-8733-285f9e44bcf4" + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + id: c5c758c6-18c2-4484-ae3f-46b84128404a + type: github_oidc_auth_config schema: - $ref: "#/components/schemas/WidgetResponse" - description: OK + $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingResponse" + description: Created "400": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Bad Request "403": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "409": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Conflict + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create a GitHub cloud auth persona mapping + tags: + - Cloud Authentication + x-codegen-request-body-name: body + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/wif/github/persona_mapping/{persona_mapping_id}: + delete: + description: Delete a GitHub cloud authentication persona mapping by ID. This removes the association between a GitHub Actions OIDC principal and a Datadog user. + operationId: DeleteGitHubCloudAuthPersonaMapping + parameters: + - $ref: "#/components/parameters/PersonaMappingID" + responses: + "204": + description: No Content + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Forbidden "404": content: application/json: schema: - $ref: "#/components/schemas/APIErrorResponse" + $ref: "#/components/schemas/JSONAPIErrorResponse" description: Not Found "429": $ref: "#/components/responses/TooManyRequestsResponse" - security: - - apiKeyAuth: [] - appKeyAuth: [] - - AuthZ: [] - summary: Update a widget + summary: Delete a GitHub cloud auth persona mapping tags: - - Widgets - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - cloud_cost_management_write - - generate_log_reports - - manage_log_reports - - product_analytics_saved_widgets_write + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Get a specific GitHub cloud authentication persona mapping by ID. This endpoint retrieves a single configured persona mapping that associates a GitHub Actions OIDC principal with a Datadog user. The mapped principal can request an impersonation token. + operationId: GetGitHubCloudAuthPersonaMapping + parameters: + - $ref: "#/components/parameters/PersonaMappingID" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + account_identifier: "test@example.com" + account_uuid: "12bbdc5c-5966-47e0-8733-285f9e44bcf4" + claim_matchers: + ref: "refs/heads/main" + repository: "test_owner/test_repo" + repository_owner: "test_owner" + sub: "repo:test_owner/test_repo:(ref:refs/heads/main|pull_request)" + id: c5c758c6-18c2-4484-ae3f-46b84128404a + type: github_oidc_auth_config + schema: + $ref: "#/components/schemas/GitHubCloudAuthPersonaMappingResponse" + description: OK + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get a GitHub cloud authentication persona mapping + tags: + - Cloud Authentication + x-unstable: |- + **Note**: This endpoint is in Preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/workflows: get: description: List all workflows in your organization. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index 5feb04aeec..44849f4c02 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -359,18 +359,6 @@ def __init__( "v2.get_change_request": False, "v2.update_change_request": False, "v2.update_change_request_decision": False, - "v2.create_aws_cloud_auth_persona_mapping": False, - "v2.create_git_hub_cloud_auth_intake_mapping": False, - "v2.create_git_hub_cloud_auth_persona_mapping": False, - "v2.delete_aws_cloud_auth_persona_mapping": False, - "v2.delete_git_hub_cloud_auth_intake_mapping": False, - "v2.delete_git_hub_cloud_auth_persona_mapping": False, - "v2.get_aws_cloud_auth_persona_mapping": False, - "v2.get_git_hub_cloud_auth_intake_mapping": False, - "v2.get_git_hub_cloud_auth_persona_mapping": False, - "v2.list_aws_cloud_auth_persona_mappings": False, - "v2.list_git_hub_cloud_auth_intake_mappings": False, - "v2.list_git_hub_cloud_auth_persona_mappings": False, "v2.activate_content_pack": False, "v2.activate_integration": False, "v2.batch_get_security_monitoring_dataset_dependencies": False, @@ -891,6 +879,18 @@ def __init__( "v2.get_web_integration_account": False, "v2.list_web_integration_accounts": False, "v2.update_web_integration_account": False, + "v2.create_aws_cloud_auth_persona_mapping": False, + "v2.create_git_hub_cloud_auth_intake_mapping": False, + "v2.create_git_hub_cloud_auth_persona_mapping": False, + "v2.delete_aws_cloud_auth_persona_mapping": False, + "v2.delete_git_hub_cloud_auth_intake_mapping": False, + "v2.delete_git_hub_cloud_auth_persona_mapping": False, + "v2.get_aws_cloud_auth_persona_mapping": False, + "v2.get_git_hub_cloud_auth_intake_mapping": False, + "v2.get_git_hub_cloud_auth_persona_mapping": False, + "v2.list_aws_cloud_auth_persona_mappings": False, + "v2.list_git_hub_cloud_auth_intake_mappings": False, + "v2.list_git_hub_cloud_auth_persona_mappings": False, } ) diff --git a/src/datadog_api_client/v2/api/cloud_authentication_api.py b/src/datadog_api_client/v2/api/cloud_authentication_api.py index 33cb065bd8..6b9637b819 100644 --- a/src/datadog_api_client/v2/api/cloud_authentication_api.py +++ b/src/datadog_api_client/v2/api/cloud_authentication_api.py @@ -44,7 +44,7 @@ def __init__(self, api_client=None): settings={ "response_type": (AWSCloudAuthPersonaMappingResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/aws/persona_mapping", + "endpoint_path": "/api/v2/wif/aws/persona_mapping", "operation_id": "create_aws_cloud_auth_persona_mapping", "http_method": "POST", "version": "v2", @@ -64,7 +64,7 @@ def __init__(self, api_client=None): settings={ "response_type": (GitHubCloudAuthIntakeMappingResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/intake_mapping", + "endpoint_path": "/api/v2/wif/github/intake_mapping", "operation_id": "create_git_hub_cloud_auth_intake_mapping", "http_method": "POST", "version": "v2", @@ -84,7 +84,7 @@ def __init__(self, api_client=None): settings={ "response_type": (GitHubCloudAuthPersonaMappingResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/persona_mapping", + "endpoint_path": "/api/v2/wif/github/persona_mapping", "operation_id": "create_git_hub_cloud_auth_persona_mapping", "http_method": "POST", "version": "v2", @@ -104,7 +104,7 @@ def __init__(self, api_client=None): settings={ "response_type": None, "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/aws/persona_mapping/{persona_mapping_id}", + "endpoint_path": "/api/v2/wif/aws/persona_mapping/{persona_mapping_id}", "operation_id": "delete_aws_cloud_auth_persona_mapping", "http_method": "DELETE", "version": "v2", @@ -127,7 +127,7 @@ def __init__(self, api_client=None): settings={ "response_type": None, "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/intake_mapping/{intake_mapping_id}", + "endpoint_path": "/api/v2/wif/github/intake_mapping/{intake_mapping_id}", "operation_id": "delete_git_hub_cloud_auth_intake_mapping", "http_method": "DELETE", "version": "v2", @@ -150,7 +150,7 @@ def __init__(self, api_client=None): settings={ "response_type": None, "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/persona_mapping/{persona_mapping_id}", + "endpoint_path": "/api/v2/wif/github/persona_mapping/{persona_mapping_id}", "operation_id": "delete_git_hub_cloud_auth_persona_mapping", "http_method": "DELETE", "version": "v2", @@ -173,7 +173,7 @@ def __init__(self, api_client=None): settings={ "response_type": (AWSCloudAuthPersonaMappingResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/aws/persona_mapping/{persona_mapping_id}", + "endpoint_path": "/api/v2/wif/aws/persona_mapping/{persona_mapping_id}", "operation_id": "get_aws_cloud_auth_persona_mapping", "http_method": "GET", "version": "v2", @@ -196,7 +196,7 @@ def __init__(self, api_client=None): settings={ "response_type": (GitHubCloudAuthIntakeMappingResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/intake_mapping/{intake_mapping_id}", + "endpoint_path": "/api/v2/wif/github/intake_mapping/{intake_mapping_id}", "operation_id": "get_git_hub_cloud_auth_intake_mapping", "http_method": "GET", "version": "v2", @@ -219,7 +219,7 @@ def __init__(self, api_client=None): settings={ "response_type": (GitHubCloudAuthPersonaMappingResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/persona_mapping/{persona_mapping_id}", + "endpoint_path": "/api/v2/wif/github/persona_mapping/{persona_mapping_id}", "operation_id": "get_git_hub_cloud_auth_persona_mapping", "http_method": "GET", "version": "v2", @@ -242,7 +242,7 @@ def __init__(self, api_client=None): settings={ "response_type": (AWSCloudAuthPersonaMappingsResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/aws/persona_mapping", + "endpoint_path": "/api/v2/wif/aws/persona_mapping", "operation_id": "list_aws_cloud_auth_persona_mappings", "http_method": "GET", "version": "v2", @@ -258,7 +258,7 @@ def __init__(self, api_client=None): settings={ "response_type": (GitHubCloudAuthIntakeMappingsResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/intake_mapping", + "endpoint_path": "/api/v2/wif/github/intake_mapping", "operation_id": "list_git_hub_cloud_auth_intake_mappings", "http_method": "GET", "version": "v2", @@ -274,7 +274,7 @@ def __init__(self, api_client=None): settings={ "response_type": (GitHubCloudAuthPersonaMappingsResponse,), "auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"], - "endpoint_path": "/api/v2/cloud_auth/github/persona_mapping", + "endpoint_path": "/api/v2/wif/github/persona_mapping", "operation_id": "list_git_hub_cloud_auth_persona_mappings", "http_method": "GET", "version": "v2", diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index 2b20834efc..559ffe28c2 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -1501,99 +1501,6 @@ "type": "safe" } }, - "ListAWSCloudAuthPersonaMappings": { - "tag": "Cloud Authentication", - "undo": { - "type": "safe" - } - }, - "CreateAWSCloudAuthPersonaMapping": { - "tag": "Cloud Authentication", - "undo": { - "operationId": "DeleteAWSCloudAuthPersonaMapping", - "parameters": [ - { - "name": "persona_mapping_id", - "source": "data.id" - } - ], - "type": "unsafe" - } - }, - "DeleteAWSCloudAuthPersonaMapping": { - "tag": "Cloud Authentication", - "undo": { - "type": "idempotent" - } - }, - "GetAWSCloudAuthPersonaMapping": { - "tag": "Cloud Authentication", - "undo": { - "type": "safe" - } - }, - "ListGitHubCloudAuthIntakeMappings": { - "tag": "Cloud Authentication", - "undo": { - "type": "safe" - } - }, - "CreateGitHubCloudAuthIntakeMapping": { - "tag": "Cloud Authentication", - "undo": { - "operationId": "DeleteGitHubCloudAuthIntakeMapping", - "parameters": [ - { - "name": "intake_mapping_id", - "source": "data.id" - } - ], - "type": "unsafe" - } - }, - "DeleteGitHubCloudAuthIntakeMapping": { - "tag": "Cloud Authentication", - "undo": { - "type": "idempotent" - } - }, - "GetGitHubCloudAuthIntakeMapping": { - "tag": "Cloud Authentication", - "undo": { - "type": "safe" - } - }, - "ListGitHubCloudAuthPersonaMappings": { - "tag": "Cloud Authentication", - "undo": { - "type": "safe" - } - }, - "CreateGitHubCloudAuthPersonaMapping": { - "tag": "Cloud Authentication", - "undo": { - "operationId": "DeleteGitHubCloudAuthPersonaMapping", - "parameters": [ - { - "name": "persona_mapping_id", - "source": "data.id" - } - ], - "type": "unsafe" - } - }, - "DeleteGitHubCloudAuthPersonaMapping": { - "tag": "Cloud Authentication", - "undo": { - "type": "idempotent" - } - }, - "GetGitHubCloudAuthPersonaMapping": { - "tag": "Cloud Authentication", - "undo": { - "type": "safe" - } - }, "CreateCustomFramework": { "tag": "Security Monitoring", "undo": { @@ -11504,6 +11411,99 @@ "type": "safe" } }, + "ListAWSCloudAuthPersonaMappings": { + "tag": "Cloud Authentication", + "undo": { + "type": "safe" + } + }, + "CreateAWSCloudAuthPersonaMapping": { + "tag": "Cloud Authentication", + "undo": { + "operationId": "DeleteAWSCloudAuthPersonaMapping", + "parameters": [ + { + "name": "persona_mapping_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteAWSCloudAuthPersonaMapping": { + "tag": "Cloud Authentication", + "undo": { + "type": "idempotent" + } + }, + "GetAWSCloudAuthPersonaMapping": { + "tag": "Cloud Authentication", + "undo": { + "type": "safe" + } + }, + "ListGitHubCloudAuthIntakeMappings": { + "tag": "Cloud Authentication", + "undo": { + "type": "safe" + } + }, + "CreateGitHubCloudAuthIntakeMapping": { + "tag": "Cloud Authentication", + "undo": { + "operationId": "DeleteGitHubCloudAuthIntakeMapping", + "parameters": [ + { + "name": "intake_mapping_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteGitHubCloudAuthIntakeMapping": { + "tag": "Cloud Authentication", + "undo": { + "type": "idempotent" + } + }, + "GetGitHubCloudAuthIntakeMapping": { + "tag": "Cloud Authentication", + "undo": { + "type": "safe" + } + }, + "ListGitHubCloudAuthPersonaMappings": { + "tag": "Cloud Authentication", + "undo": { + "type": "safe" + } + }, + "CreateGitHubCloudAuthPersonaMapping": { + "tag": "Cloud Authentication", + "undo": { + "operationId": "DeleteGitHubCloudAuthPersonaMapping", + "parameters": [ + { + "name": "persona_mapping_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteGitHubCloudAuthPersonaMapping": { + "tag": "Cloud Authentication", + "undo": { + "type": "idempotent" + } + }, + "GetGitHubCloudAuthPersonaMapping": { + "tag": "Cloud Authentication", + "undo": { + "type": "safe" + } + }, "ListWorkflows": { "tag": "Workflow Automation", "undo": {