naftiko: 1.0.0-alpha2 info: label: Datadog API — Devices description: 'Datadog API — Devices. 5 operations. Lead operation: Datadog Get the List of Devices. Self-contained Naftiko capability covering one Datadog business surface.' tags: - Datadog - Devices created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DATADOG_API_KEY: DATADOG_API_KEY capability: consumes: - type: http namespace: datadog-devices baseUri: https://{subdomain}.{site} description: Datadog API — Devices business capability. Self-contained, no shared references. resources: - name: api-v2-ndm-devices path: /api/v2/ndm/devices operations: - name: listdevices method: GET description: Datadog Get the List of Devices outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sort in: query type: string description: The field to sort the devices by. - name: filter[tag] in: query type: string description: Filter devices by tag. - name: api-v2-ndm-devices-device_id path: /api/v2/ndm/devices/{device_id} operations: - name: getdevice method: GET description: Datadog Get the Device Details outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: device_id in: path type: string description: The id of the device to fetch. required: true - name: api-v2-ndm-interfaces path: /api/v2/ndm/interfaces operations: - name: getinterfaces method: GET description: Datadog Get the List of Interfaces of the Device outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: device_id in: query type: string description: The ID of the device to get interfaces from. required: true - name: get_ip_addresses in: query type: boolean description: Whether to get the IP addresses of the interfaces. - name: api-v2-ndm-tags-devices-device_id path: /api/v2/ndm/tags/devices/{device_id} operations: - name: listdeviceusertags method: GET description: Datadog Get the List of Tags for a Device outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: device_id in: path type: string description: The id of the device to fetch tags for. required: true - name: updatedeviceusertags method: PATCH description: Datadog Update the Tags for a Device outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: device_id in: path type: string description: The id of the device to update tags for. required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.DATADOG_API_KEY}}' exposes: - type: rest namespace: datadog-devices-rest port: 8080 description: REST adapter for Datadog API — Devices. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/ndm/devices name: api-v2-ndm-devices description: REST surface for api-v2-ndm-devices. operations: - method: GET name: listdevices description: Datadog Get the List of Devices call: datadog-devices.listdevices with: sort: rest.sort filter[tag]: rest.filter[tag] outputParameters: - type: object mapping: $. - path: /v1/api/v2/ndm/devices/{device-id} name: api-v2-ndm-devices-device-id description: REST surface for api-v2-ndm-devices-device_id. operations: - method: GET name: getdevice description: Datadog Get the Device Details call: datadog-devices.getdevice with: device_id: rest.device_id outputParameters: - type: object mapping: $. - path: /v1/api/v2/ndm/interfaces name: api-v2-ndm-interfaces description: REST surface for api-v2-ndm-interfaces. operations: - method: GET name: getinterfaces description: Datadog Get the List of Interfaces of the Device call: datadog-devices.getinterfaces with: device_id: rest.device_id get_ip_addresses: rest.get_ip_addresses outputParameters: - type: object mapping: $. - path: /v1/api/v2/ndm/tags/devices/{device-id} name: api-v2-ndm-tags-devices-device-id description: REST surface for api-v2-ndm-tags-devices-device_id. operations: - method: GET name: listdeviceusertags description: Datadog Get the List of Tags for a Device call: datadog-devices.listdeviceusertags with: device_id: rest.device_id outputParameters: - type: object mapping: $. - method: PATCH name: updatedeviceusertags description: Datadog Update the Tags for a Device call: datadog-devices.updatedeviceusertags with: device_id: rest.device_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: datadog-devices-mcp port: 9090 transport: http description: MCP adapter for Datadog API — Devices. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: datadog-get-list-devices description: Datadog Get the List of Devices hints: readOnly: true destructive: false idempotent: true call: datadog-devices.listdevices with: sort: tools.sort filter[tag]: tools.filter[tag] outputParameters: - type: object mapping: $. - name: datadog-get-device-details description: Datadog Get the Device Details hints: readOnly: true destructive: false idempotent: true call: datadog-devices.getdevice with: device_id: tools.device_id outputParameters: - type: object mapping: $. - name: datadog-get-list-interfaces-device description: Datadog Get the List of Interfaces of the Device hints: readOnly: true destructive: false idempotent: true call: datadog-devices.getinterfaces with: device_id: tools.device_id get_ip_addresses: tools.get_ip_addresses outputParameters: - type: object mapping: $. - name: datadog-get-list-tags-device description: Datadog Get the List of Tags for a Device hints: readOnly: true destructive: false idempotent: true call: datadog-devices.listdeviceusertags with: device_id: tools.device_id outputParameters: - type: object mapping: $. - name: datadog-update-tags-device description: Datadog Update the Tags for a Device hints: readOnly: false destructive: false idempotent: true call: datadog-devices.updatedeviceusertags with: device_id: tools.device_id body: tools.body outputParameters: - type: object mapping: $.