naftiko: 1.0.0-alpha2 info: label: Datadog API — Users description: 'Datadog API — Users. 28 operations. Lead operation: Datadog Get All Application Keys Owned by Current User. Self-contained Naftiko capability covering one Datadog business surface.' tags: - Datadog - Users created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DATADOG_API_KEY: DATADOG_API_KEY capability: consumes: - type: http namespace: datadog-users baseUri: https://{subdomain}.{site} description: Datadog API — Users business capability. Self-contained, no shared references. resources: - name: api-v2-current_user-application_keys path: /api/v2/current_user/application_keys operations: - name: listcurrentuserapplicationkeys method: GET description: Datadog Get All Application Keys Owned by Current User outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createcurrentuserapplicationkey method: POST description: Datadog Create an Application Key for Current User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-current_user-application_keys-app_key_id path: /api/v2/current_user/application_keys/{app_key_id} operations: - name: deletecurrentuserapplicationkey method: DELETE description: Datadog Delete an Application Key Owned by Current User outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getcurrentuserapplicationkey method: GET description: Datadog Get One Application Key Owned by Current User outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatecurrentuserapplicationkey method: PATCH description: Datadog Edit an Application Key Owned by Current User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-logs-config-restriction_queries-user-user_id path: /api/v2/logs/config/restriction_queries/user/{user_id} operations: - name: listuserrestrictionqueries method: GET description: Datadog Get All Restriction Queries for a Given User outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-on-call-schedules-schedule_id-on-call path: /api/v2/on-call/schedules/{schedule_id}/on-call operations: - name: getscheduleoncalluser method: GET description: Datadog Get the Schedule On-call User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: include in: query type: string description: 'Specifies related resources to include in the response as a comma-separated list. Allowed value: `user`.' - name: schedule_id in: path type: string description: The ID of the schedule. required: true - name: filter[at_ts] in: query type: string description: Retrieves the on-call user at the given timestamp (ISO-8601). Defaults to the current time if omitted." - name: api-v2-on-call-teams-team_id-on-call path: /api/v2/on-call/teams/{team_id}/on-call operations: - name: getteamoncallusers method: GET description: Datadog Get Team On-call Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: include in: query type: string description: 'Comma-separated list of included relationships to be returned. Allowed values: `responders`, `escalations`, `escalations.responders`.' - name: team_id in: path type: string description: The team ID required: true - name: api-v2-roles-role_id-users path: /api/v2/roles/{role_id}/users operations: - name: removeuserfromrole method: DELETE description: Datadog Remove a User from a Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: listroleusers method: GET description: Datadog Get All Users of a Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sort in: query type: string description: User attribute to order results by. Sort order is **ascending** by default. - name: filter in: query type: string description: Filter all users by the given string. Defaults to no filtering. - name: addusertorole method: POST description: Datadog Add a User to a Role outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-scim-Users path: /api/v2/scim/Users operations: - name: listscimusers method: GET description: Datadog List Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: startIndex in: query type: integer description: Specifies the start index to fetch the results (1-indexed). - name: count in: query type: integer description: Specifies the number of users to be returned. - name: filter in: query type: string description: Specifies the url encoded filter to use to narrow down the results. - name: createscimuser method: POST description: Datadog Create User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-scim-Users-user_uuid path: /api/v2/scim/Users/{user_uuid} operations: - name: deletescimuser method: DELETE description: Datadog Delete User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_uuid in: path type: string description: None required: true - name: getscimuser method: GET description: Datadog Get User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_uuid in: path type: string description: None required: true - name: patchscimuser method: PATCH description: Datadog Patch User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_uuid in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: updatescimuser method: PUT description: Datadog Update User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_uuid in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-memberships path: /api/v2/team/{team_id}/memberships operations: - name: createteammembership method: POST description: Datadog Add a User to a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-memberships-user_id path: /api/v2/team/{team_id}/memberships/{user_id} operations: - name: deleteteammembership method: DELETE description: Datadog Remove a User from a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: user_id in: path type: string description: None required: true - name: api-v2-user_invitations-user_invitation_uuid path: /api/v2/user_invitations/{user_invitation_uuid} operations: - name: getinvitation method: GET description: Datadog Get a User Invitation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_invitation_uuid in: path type: string description: The UUID of the user invitation. required: true - name: api-v2-users path: /api/v2/users operations: - name: listusers method: GET description: Datadog List All Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sort in: query type: string description: User attribute to order results by. Sort order is ascending by default. - name: sort_dir in: query type: string description: 'Direction of sort. Options: `asc`, `desc`.' - name: filter in: query type: string description: Filter all users by the given string. Defaults to no filtering. - name: filter[status] in: query type: string description: Filter on status attribute. - name: createuser method: POST description: Datadog Create a User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-users-user_id path: /api/v2/users/{user_id} operations: - name: disableuser method: DELETE description: Datadog Disable a User outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getuser method: GET description: Datadog Get User Details outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateuser method: PATCH description: Datadog Update a User outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-users-user_id-orgs path: /api/v2/users/{user_id}/orgs operations: - name: listuserorganizations method: GET description: Datadog Get a User Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-users-user_id-permissions path: /api/v2/users/{user_id}/permissions operations: - name: listuserpermissions method: GET description: Datadog Get a User Permissions outputRawFormat: json outputParameters: - name: result type: object value: $. - name: api-v2-users-user_uuid-memberships path: /api/v2/users/{user_uuid}/memberships operations: - name: getusermemberships method: GET description: Datadog Get User Memberships outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_uuid in: path type: string description: None required: true authentication: type: bearer token: '{{env.DATADOG_API_KEY}}' exposes: - type: rest namespace: datadog-users-rest port: 8080 description: REST adapter for Datadog API — Users. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/current-user/application-keys name: api-v2-current-user-application-keys description: REST surface for api-v2-current_user-application_keys. operations: - method: GET name: listcurrentuserapplicationkeys description: Datadog Get All Application Keys Owned by Current User call: datadog-users.listcurrentuserapplicationkeys outputParameters: - type: object mapping: $. - method: POST name: createcurrentuserapplicationkey description: Datadog Create an Application Key for Current User call: datadog-users.createcurrentuserapplicationkey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/current-user/application-keys/{app-key-id} name: api-v2-current-user-application-keys-app-key-id description: REST surface for api-v2-current_user-application_keys-app_key_id. operations: - method: DELETE name: deletecurrentuserapplicationkey description: Datadog Delete an Application Key Owned by Current User call: datadog-users.deletecurrentuserapplicationkey outputParameters: - type: object mapping: $. - method: GET name: getcurrentuserapplicationkey description: Datadog Get One Application Key Owned by Current User call: datadog-users.getcurrentuserapplicationkey outputParameters: - type: object mapping: $. - method: PATCH name: updatecurrentuserapplicationkey description: Datadog Edit an Application Key Owned by Current User call: datadog-users.updatecurrentuserapplicationkey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/logs/config/restriction-queries/user/{user-id} name: api-v2-logs-config-restriction-queries-user-user-id description: REST surface for api-v2-logs-config-restriction_queries-user-user_id. operations: - method: GET name: listuserrestrictionqueries description: Datadog Get All Restriction Queries for a Given User call: datadog-users.listuserrestrictionqueries outputParameters: - type: object mapping: $. - path: /v1/api/v2/on-call/schedules/{schedule-id}/on-call name: api-v2-on-call-schedules-schedule-id-on-call description: REST surface for api-v2-on-call-schedules-schedule_id-on-call. operations: - method: GET name: getscheduleoncalluser description: Datadog Get the Schedule On-call User call: datadog-users.getscheduleoncalluser with: include: rest.include schedule_id: rest.schedule_id filter[at_ts]: rest.filter[at_ts] outputParameters: - type: object mapping: $. - path: /v1/api/v2/on-call/teams/{team-id}/on-call name: api-v2-on-call-teams-team-id-on-call description: REST surface for api-v2-on-call-teams-team_id-on-call. operations: - method: GET name: getteamoncallusers description: Datadog Get Team On-call Users call: datadog-users.getteamoncallusers with: include: rest.include team_id: rest.team_id outputParameters: - type: object mapping: $. - path: /v1/api/v2/roles/{role-id}/users name: api-v2-roles-role-id-users description: REST surface for api-v2-roles-role_id-users. operations: - method: DELETE name: removeuserfromrole description: Datadog Remove a User from a Role call: datadog-users.removeuserfromrole with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listroleusers description: Datadog Get All Users of a Role call: datadog-users.listroleusers with: sort: rest.sort filter: rest.filter outputParameters: - type: object mapping: $. - method: POST name: addusertorole description: Datadog Add a User to a Role call: datadog-users.addusertorole with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/scim/users name: api-v2-scim-users description: REST surface for api-v2-scim-Users. operations: - method: GET name: listscimusers description: Datadog List Users call: datadog-users.listscimusers with: startIndex: rest.startIndex count: rest.count filter: rest.filter outputParameters: - type: object mapping: $. - method: POST name: createscimuser description: Datadog Create User call: datadog-users.createscimuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/scim/users/{user-uuid} name: api-v2-scim-users-user-uuid description: REST surface for api-v2-scim-Users-user_uuid. operations: - method: DELETE name: deletescimuser description: Datadog Delete User call: datadog-users.deletescimuser with: user_uuid: rest.user_uuid outputParameters: - type: object mapping: $. - method: GET name: getscimuser description: Datadog Get User call: datadog-users.getscimuser with: user_uuid: rest.user_uuid outputParameters: - type: object mapping: $. - method: PATCH name: patchscimuser description: Datadog Patch User call: datadog-users.patchscimuser with: user_uuid: rest.user_uuid body: rest.body outputParameters: - type: object mapping: $. - method: PUT name: updatescimuser description: Datadog Update User call: datadog-users.updatescimuser with: user_uuid: rest.user_uuid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/memberships name: api-v2-team-team-id-memberships description: REST surface for api-v2-team-team_id-memberships. operations: - method: POST name: createteammembership description: Datadog Add a User to a Team call: datadog-users.createteammembership with: team_id: rest.team_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/memberships/{user-id} name: api-v2-team-team-id-memberships-user-id description: REST surface for api-v2-team-team_id-memberships-user_id. operations: - method: DELETE name: deleteteammembership description: Datadog Remove a User from a Team call: datadog-users.deleteteammembership with: team_id: rest.team_id user_id: rest.user_id outputParameters: - type: object mapping: $. - path: /v1/api/v2/user-invitations/{user-invitation-uuid} name: api-v2-user-invitations-user-invitation-uuid description: REST surface for api-v2-user_invitations-user_invitation_uuid. operations: - method: GET name: getinvitation description: Datadog Get a User Invitation call: datadog-users.getinvitation with: user_invitation_uuid: rest.user_invitation_uuid outputParameters: - type: object mapping: $. - path: /v1/api/v2/users name: api-v2-users description: REST surface for api-v2-users. operations: - method: GET name: listusers description: Datadog List All Users call: datadog-users.listusers with: sort: rest.sort sort_dir: rest.sort_dir filter: rest.filter filter[status]: rest.filter[status] outputParameters: - type: object mapping: $. - method: POST name: createuser description: Datadog Create a User call: datadog-users.createuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/users/{user-id} name: api-v2-users-user-id description: REST surface for api-v2-users-user_id. operations: - method: DELETE name: disableuser description: Datadog Disable a User call: datadog-users.disableuser outputParameters: - type: object mapping: $. - method: GET name: getuser description: Datadog Get User Details call: datadog-users.getuser outputParameters: - type: object mapping: $. - method: PATCH name: updateuser description: Datadog Update a User call: datadog-users.updateuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/users/{user-id}/orgs name: api-v2-users-user-id-orgs description: REST surface for api-v2-users-user_id-orgs. operations: - method: GET name: listuserorganizations description: Datadog Get a User Organization call: datadog-users.listuserorganizations outputParameters: - type: object mapping: $. - path: /v1/api/v2/users/{user-id}/permissions name: api-v2-users-user-id-permissions description: REST surface for api-v2-users-user_id-permissions. operations: - method: GET name: listuserpermissions description: Datadog Get a User Permissions call: datadog-users.listuserpermissions outputParameters: - type: object mapping: $. - path: /v1/api/v2/users/{user-uuid}/memberships name: api-v2-users-user-uuid-memberships description: REST surface for api-v2-users-user_uuid-memberships. operations: - method: GET name: getusermemberships description: Datadog Get User Memberships call: datadog-users.getusermemberships with: user_uuid: rest.user_uuid outputParameters: - type: object mapping: $. - type: mcp namespace: datadog-users-mcp port: 9090 transport: http description: MCP adapter for Datadog API — Users. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: datadog-get-all-application-keys description: Datadog Get All Application Keys Owned by Current User hints: readOnly: true destructive: false idempotent: true call: datadog-users.listcurrentuserapplicationkeys outputParameters: - type: object mapping: $. - name: datadog-create-application-key-current description: Datadog Create an Application Key for Current User hints: readOnly: false destructive: false idempotent: false call: datadog-users.createcurrentuserapplicationkey with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-delete-application-key-owned description: Datadog Delete an Application Key Owned by Current User hints: readOnly: false destructive: true idempotent: true call: datadog-users.deletecurrentuserapplicationkey outputParameters: - type: object mapping: $. - name: datadog-get-one-application-key description: Datadog Get One Application Key Owned by Current User hints: readOnly: true destructive: false idempotent: true call: datadog-users.getcurrentuserapplicationkey outputParameters: - type: object mapping: $. - name: datadog-edit-application-key-owned description: Datadog Edit an Application Key Owned by Current User hints: readOnly: false destructive: false idempotent: true call: datadog-users.updatecurrentuserapplicationkey with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-all-restriction-queries description: Datadog Get All Restriction Queries for a Given User hints: readOnly: true destructive: false idempotent: true call: datadog-users.listuserrestrictionqueries outputParameters: - type: object mapping: $. - name: datadog-get-schedule-call-user description: Datadog Get the Schedule On-call User hints: readOnly: true destructive: false idempotent: true call: datadog-users.getscheduleoncalluser with: include: tools.include schedule_id: tools.schedule_id filter[at_ts]: tools.filter[at_ts] outputParameters: - type: object mapping: $. - name: datadog-get-team-call-users description: Datadog Get Team On-call Users hints: readOnly: true destructive: false idempotent: true call: datadog-users.getteamoncallusers with: include: tools.include team_id: tools.team_id outputParameters: - type: object mapping: $. - name: datadog-remove-user-role description: Datadog Remove a User from a Role hints: readOnly: false destructive: true idempotent: true call: datadog-users.removeuserfromrole with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-all-users-role description: Datadog Get All Users of a Role hints: readOnly: true destructive: false idempotent: true call: datadog-users.listroleusers with: sort: tools.sort filter: tools.filter outputParameters: - type: object mapping: $. - name: datadog-add-user-role description: Datadog Add a User to a Role hints: readOnly: false destructive: false idempotent: false call: datadog-users.addusertorole with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-list-users description: Datadog List Users hints: readOnly: true destructive: false idempotent: true call: datadog-users.listscimusers with: startIndex: tools.startIndex count: tools.count filter: tools.filter outputParameters: - type: object mapping: $. - name: datadog-create-user description: Datadog Create User hints: readOnly: false destructive: false idempotent: false call: datadog-users.createscimuser with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-delete-user description: Datadog Delete User hints: readOnly: false destructive: true idempotent: true call: datadog-users.deletescimuser with: user_uuid: tools.user_uuid outputParameters: - type: object mapping: $. - name: datadog-get-user description: Datadog Get User hints: readOnly: true destructive: false idempotent: true call: datadog-users.getscimuser with: user_uuid: tools.user_uuid outputParameters: - type: object mapping: $. - name: datadog-patch-user description: Datadog Patch User hints: readOnly: false destructive: false idempotent: true call: datadog-users.patchscimuser with: user_uuid: tools.user_uuid body: tools.body outputParameters: - type: object mapping: $. - name: datadog-update-user description: Datadog Update User hints: readOnly: false destructive: false idempotent: true call: datadog-users.updatescimuser with: user_uuid: tools.user_uuid body: tools.body outputParameters: - type: object mapping: $. - name: datadog-add-user-team description: Datadog Add a User to a Team hints: readOnly: false destructive: false idempotent: false call: datadog-users.createteammembership with: team_id: tools.team_id body: tools.body outputParameters: - type: object mapping: $. - name: datadog-remove-user-team description: Datadog Remove a User from a Team hints: readOnly: false destructive: true idempotent: true call: datadog-users.deleteteammembership with: team_id: tools.team_id user_id: tools.user_id outputParameters: - type: object mapping: $. - name: datadog-get-user-invitation description: Datadog Get a User Invitation hints: readOnly: true destructive: false idempotent: true call: datadog-users.getinvitation with: user_invitation_uuid: tools.user_invitation_uuid outputParameters: - type: object mapping: $. - name: datadog-list-all-users description: Datadog List All Users hints: readOnly: true destructive: false idempotent: true call: datadog-users.listusers with: sort: tools.sort sort_dir: tools.sort_dir filter: tools.filter filter[status]: tools.filter[status] outputParameters: - type: object mapping: $. - name: datadog-create-user-2 description: Datadog Create a User hints: readOnly: false destructive: false idempotent: false call: datadog-users.createuser with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-disable-user description: Datadog Disable a User hints: readOnly: false destructive: true idempotent: true call: datadog-users.disableuser outputParameters: - type: object mapping: $. - name: datadog-get-user-details description: Datadog Get User Details hints: readOnly: true destructive: false idempotent: true call: datadog-users.getuser outputParameters: - type: object mapping: $. - name: datadog-update-user-2 description: Datadog Update a User hints: readOnly: false destructive: false idempotent: true call: datadog-users.updateuser with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-user-organization description: Datadog Get a User Organization hints: readOnly: true destructive: false idempotent: true call: datadog-users.listuserorganizations outputParameters: - type: object mapping: $. - name: datadog-get-user-permissions description: Datadog Get a User Permissions hints: readOnly: true destructive: false idempotent: true call: datadog-users.listuserpermissions outputParameters: - type: object mapping: $. - name: datadog-get-user-memberships description: Datadog Get User Memberships hints: readOnly: true destructive: false idempotent: true call: datadog-users.getusermemberships with: user_uuid: tools.user_uuid outputParameters: - type: object mapping: $.