Datadog Users API

Create, edit, and disable users.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

datadog-users-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  contact:
    email: support@datadoghq.com
    name: Datadog Support
    url: https://www.datadoghq.com/support/
  description: The Datadog API is an HTTP REST API. The API uses resource-oriented URLs to call the API, uses status codes to indicate the success or failure of requests, returns JSON from all requests, and uses standard HTTP response codes. Use the Datadog API to access the Datadog platform programmatically.
  title: Datadog Account Users API
  version: '1.0'
servers:
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: The regional site for Datadog customers.
      enum:
      - datadoghq.com
      - us3.datadoghq.com
      - us5.datadoghq.com
      - ap1.datadoghq.com
      - datadoghq.eu
      - ddog-gov.com
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
- url: '{protocol}://{name}'
  variables:
    name:
      default: api.datadoghq.com
      description: Full site DNS name.
    protocol:
      default: https
      description: The protocol for accessing the API.
- url: https://{subdomain}.{site}
  variables:
    site:
      default: datadoghq.com
      description: Any Datadog deployment.
    subdomain:
      default: api
      description: The subdomain where the API is deployed.
security:
- apiKeyAuth: []
  appKeyAuth: []
tags:
- description: Create, edit, and disable users.
  externalDocs:
    url: https://docs.datadoghq.com/account_management/users
  name: Users
paths:
  /api/v2/current_user/application_keys:
    get:
      description: List all application keys available for current user
      operationId: ListCurrentUserApplicationKeys
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/ApplicationKeysSortParameter'
      - $ref: '#/components/parameters/ApplicationKeyFilterParameter'
      - $ref: '#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter'
      - $ref: '#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter'
      - $ref: '#/components/parameters/ApplicationKeyIncludeParameter'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApplicationKeysResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get All Application Keys Owned by Current User
      tags:
      - Users
      x-menu-order: 5
      x-permission:
        operator: OR
        permissions:
        - user_app_keys
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      description: Create an application key for current user
      operationId: CreateCurrentUserApplicationKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationKeyCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationKeyResponse'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Create an Application Key for Current User
      tags:
      - Users
      x-codegen-request-body-name: body
      x-given:
        application_key:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"name\": \"{{ unique }}\"\n    },\n    \"type\": \"application_keys\"\n  }\n}"
          step: there is a valid "application_key" in the system
      x-menu-order: 4
      x-permission:
        operator: OR
        permissions:
        - user_app_keys
      x-undo:
        operationId: DeleteCurrentUserApplicationKey
        parameters:
        - name: app_key_id
          source: data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/current_user/application_keys/{app_key_id}:
    x-merge-override:
      delete: true
      patch: true
    delete:
      description: Delete an application key owned by current user
      operationId: DeleteCurrentUserApplicationKey
      parameters:
      - $ref: '#/components/parameters/ApplicationKeyID'
      responses:
        '204':
          description: No Content
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Delete an Application Key Owned by Current User
      tags:
      - Users
      x-menu-order: 1
      x-permission:
        operator: OR
        permissions:
        - user_app_keys
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Get an application key owned by current user
      operationId: GetCurrentUserApplicationKey
      parameters:
      - $ref: '#/components/parameters/ApplicationKeyID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationKeyResponse'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get One Application Key Owned by Current User
      tags:
      - Users
      x-menu-order: 3
      x-permission:
        operator: OR
        permissions:
        - user_app_keys
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      description: Edit an application key owned by current user
      operationId: UpdateCurrentUserApplicationKey
      parameters:
      - $ref: '#/components/parameters/ApplicationKeyID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationKeyUpdateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationKeyResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Not Found
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Edit an Application Key Owned by Current User
      tags:
      - Users
      x-codegen-request-body-name: body
      x-menu-order: 2
      x-permission:
        operator: OR
        permissions:
        - user_app_keys
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/logs/config/restriction_queries/user/{user_id}:
    get:
      description: Get all restriction queries for a given user.
      operationId: ListUserRestrictionQueries
      parameters:
      - $ref: '#/components/parameters/RestrictionQueryUserID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestrictionQueryListResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Authentication error
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      summary: Datadog Get All Restriction Queries for a Given User
      tags:
      - Users
      x-menu-order: 9
      x-permission:
        operator: OR
        permissions:
        - logs_read_config
      x-undo:
        type: safe
      x-unstable: '**Note**: This endpoint is in public beta.

        If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/on-call/schedules/{schedule_id}/on-call:
    get:
      description: Retrieves the user who is on-call for the specified schedule at a given time.
      operationId: GetScheduleOnCallUser
      parameters:
      - description: 'Specifies related resources to include in the response as a comma-separated list. Allowed value: `user`.'
        in: query
        name: include
        schema:
          type: string
        example: example_value
      - description: The ID of the schedule.
        in: path
        name: schedule_id
        required: true
        schema:
          example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
          type: string
        example: 3653d3c6-0c75-11ea-ad28-fb5701eabc7d
      - description: Retrieves the on-call user at the given timestamp (ISO-8601). Defaults to the current time if omitted."
        in: query
        name: filter[at_ts]
        schema:
          example: '2025-05-07T02:53:01Z'
          type: string
        example: '2025-05-07T02:53:01Z'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Shift'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Get the Schedule On-call User
      tags:
      - Users
      x-menu-order: 11
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/on-call/teams/{team_id}/on-call:
    get:
      description: Get a team's on-call users at a given time
      operationId: GetTeamOnCallUsers
      parameters:
      - description: 'Comma-separated list of included relationships to be returned. Allowed values: `responders`, `escalations`, `escalations.responders`.'
        in: query
        name: include
        schema:
          type: string
        example: example_value
      - description: The team ID
        in: path
        name: team_id
        required: true
        schema:
          example: 27590dae-47be-4a7d-9abf-8f4e45124020
          type: string
        example: 27590dae-47be-4a7d-9abf-8f4e45124020
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamOnCallResponders'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ: []
      summary: Datadog Get Team On-call Users
      tags:
      - Users
      x-menu-order: 12
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/roles/{role_id}/users:
    delete:
      description: Removes a user from a role.
      operationId: RemoveUserFromRole
      parameters:
      - $ref: '#/components/parameters/RoleID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelationshipToUser'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsersResponse'
          description: OK
        '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: Datadog Remove a User from a Role
      tags:
      - Users
      x-codegen-request-body-name: body
      x-menu-order: 11
      x-permission:
        operator: OR
        permissions:
        - user_access_manage
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Gets all users of a role.
      operationId: ListRoleUsers
      parameters:
      - $ref: '#/components/parameters/RoleID'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageNumber'
      - description: 'User attribute to order results by. Sort order is **ascending** by default.

          Sort order is **descending** if the field is prefixed by a negative sign,

          for example `sort=-name`. Options: `name`, `email`, `status`.'
        in: query
        name: sort
        required: false
        schema:
          default: name
          type: string
        example: example_value
      - description: Filter all users by the given string. Defaults to no filtering.
        in: query
        name: filter
        required: false
        schema:
          type: string
        example: example_value
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsersResponse'
          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: Datadog Get All Users of a Role
      tags:
      - Users
      x-menu-order: 9
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      description: Adds a user to a role.
      operationId: AddUserToRole
      parameters:
      - $ref: '#/components/parameters/RoleID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelationshipToUser'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UsersResponse'
          description: OK
        '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: Datadog Add a User to a Role
      tags:
      - Users
      x-codegen-request-body-name: body
      x-given:
        permission_role:
          parameters:
          - name: role_id
            source: role.data.id
          - name: body
            value: "{\n  \"data\": {\n    \"id\": \"{{ user.data.id }}\",\n    \"type\": \"{{ user.data.type }}\"\n  }\n}"
          step: the "user" has the "role"
      x-menu-order: 10
      x-permission:
        operator: OR
        permissions:
        - user_access_manage
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/scim/Users:
    get:
      description: 'List users in the organization.

        Results are paginated by `startIndex` and `count` parameters.

        Results can be narrowed down by the `filter` parameter.'
      operationId: ListSCIMUsers
      parameters:
      - description: Specifies the start index to fetch the results (1-indexed).
        in: query
        name: startIndex
        required: false
        schema:
          default: 1
          example: 1
          format: int64
          type: integer
        example: 1
      - description: Specifies the number of users to be returned.
        in: query
        name: count
        required: false
        schema:
          default: 20
          example: 20
          format: int64
          type: integer
        example: 20
      - description: 'Specifies the url encoded filter to use to narrow down the results.

          Filter should be of the form `userName eq <user name>`.'
        in: query
        name: filter
        required: false
        schema:
          type: string
        example: example_value
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListExternalUsersResponse'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - bearerAuth: []
      summary: Datadog List Users
      tags:
      - Users
      x-menu-order: 1
      x-permission:
        operator: AND
        permissions:
        - user_access_invite
        - user_access_manage
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      description: Create a new user.
      operationId: CreateSCIMUser
      requestBody:
        content:
          application/json:
            examples:
              json-request-body:
                value:
                  active: true
                  emails:
                  - primary: true
                    type: work
                    value: john.doe@datadoghq.com
                  name:
                    formatted: John Doe
                  schemas:
                  - urn:ietf:params:scim:schemas:core:2.0:User
                  title: Mr.
                  userName: john.doe@datadoghq.com
            schema:
              $ref: '#/components/schemas/ExternalUser'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalUser'
          description: Created
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - bearerAuth: []
      summary: Datadog Create User
      tags:
      - Users
      x-menu-order: 2
      x-permission:
        operator: AND
        permissions:
        - user_access_invite
        - user_access_manage
      x-undo:
        operationId: DeleteSCIMUser
        parameters:
        - name: user_uuid
          source: <RESPONSE_PATH>
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/scim/Users/{user_uuid}:
    delete:
      description: Delete the group with the given `user_uuid`.
      operationId: DeleteSCIMUser
      parameters:
      - description: None
        in: path
        name: user_uuid
        required: true
        schema:
          type: string
        example: abc-123-def
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - bearerAuth: []
      summary: Datadog Delete User
      tags:
      - Users
      x-menu-order: 6
      x-permission:
        operator: AND
        permissions:
        - user_access_invite
        - user_access_manage
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      description: Get a single user using the `user_uuid`.
      operationId: GetSCIMUser
      parameters:
      - description: None
        in: path
        name: user_uuid
        required: true
        schema:
          type: string
        example: abc-123-def
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalUser'
          description: OK
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - bearerAuth: []
      summary: Datadog Get User
      tags:
      - Users
      x-menu-order: 3
      x-permission:
        operator: AND
        permissions:
        - user_access_invite
        - user_access_manage
      x-undo:
        type: safe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      description: Patch the user with the given `user_uuid`.
      operationId: PatchSCIMUser
      parameters:
      - description: None
        in: path
        name: user_uuid
        required: true
        schema:
          type: string
        example: abc-123-def
      requestBody:
        content:
          application/json:
            examples:
              json-request-body:
                value:
                  Operations:
                  - op: replace
                    path: title
                    value: CEO
                  - op: replace
                    value:
                      name:
                        formatted: John Doe
                  schemas:
                  - urn:ietf:params:scim:api:messages:2.0:PatchOp
            schema:
              $ref: '#/components/schemas/ExternalUserPatchRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalUser'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - bearerAuth: []
      summary: Datadog Patch User
      tags:
      - Users
      x-menu-order: 5
      x-permission:
        operator: AND
        permissions:
        - user_access_invite
        - user_access_manage
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      description: Update the user with the given `user_uuid`.
      operationId: UpdateSCIMUser
      parameters:
      - description: None
        in: path
        name: user_uuid
        required: true
        schema:
          type: string
        example: abc-123-def
      requestBody:
        content:
          application/json:
            examples:
              json-request-body:
                value:
                  active: true
                  emails:
                  - primary: true
                    type: work
                    value: john.doe@datadoghq.com
                  id: e43536e9-33fe-43f8-90b8-d3e39a7dd6ad
                  name:
                    formatted: John Doe
                  schemas:
                  - urn:ietf:params:scim:schemas:core:2.0:User
                  title: Mr.
                  userName: john.doe@datadoghq.com
            schema:
              $ref: '#/components/schemas/ExternalUser'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalUser'
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestResponse'
        '404':
          $ref: '#/components/responses/NotFoundResponse'
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - bearerAuth: []
      summary: Datadog Update User
      tags:
      - Users
      x-menu-order: 4
      x-permission:
        operator: AND
        permissions:
        - user_access_invite
        - user_access_manage
      x-undo:
        type: idempotent
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/team/{team_id}/memberships:
    post:
      description: Add a user to a team.
      operationId: CreateTeamMembership
      parameters:
      - description: None
        in: path
        name: team_id
        required: true
        schema:
          type: string
        example: abc-123-def
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserTeamRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserTeamResponse'
          description: Represents a user's association to a team
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: API error response.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: API error response.
        '429':
          $ref: '#/components/responses/TooManyRequestsResponse'
      security:
      - apiKeyAuth: []
        appKeyAuth: []
      - AuthZ:
        - teams_read
      summary: Datadog Add a User to a Team
      tags:
      - Users
      x-codegen-request-body-name: body
      x-given:
        team_membership:
          parameters:
          - name: body
            value: "{\n  \"data\": {\n    \"attributes\": {\n      \"role\": \"admin\"\n    },\n    \"relationships\": {\n      \"user\": {\n        \"data\": {\n          \"id\": \"{{user.data.id}}\",\n          \"type\": \"users\"\n        }\n      }\n    },\n    \"type\": \"team_memberships\"\n  }\n}"
          step: there is a valid "team_membership" in the system
      x-menu-order: 7
      x-permission:
        operator: OR
        permissions:
        - teams_read
      x-undo:
        operationId: DeleteTeamMembership
        parameters:
        - name: team_id
          template: '{{team.data.id}}'
        - name: user_id
          source: data.relationships.user.data.id
        type: unsafe
      x-api-evangelist-processing:
        PascalCaseOperationSummaries: true
        ChooseTags: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/team/{team_id}/memberships/{user_id}:
    x-merge-override:
      delete: true
    delete:
      description: Remove a user from a team.
      operationId: DeleteTeamMembership
      parameters:
      - description: None
        in: path
        name: team_id
        required: true
        schema:
          type: string
        example: abc-123-def
      - description: None
        in: path
        name: user_id
        required: true
        schema:
          type: string
        example: abc-123-def
      responses:
        '204':
          description: No Content
        '403':
          $ref: '#/components/responses/ForbiddenResponse'
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIErrorResponse'


# --- truncated at 32 KB (119 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datadog/refs/heads/main/openapi/datadog-users-api-openapi.yml