naftiko: 1.0.0-alpha2 info: label: Pulse Api — Devices description: 'Pulse Api — Devices. 5 operations. Lead operation: All Device Details. Self-contained Naftiko capability covering one Pulse Grow business surface.' tags: - Pulse Grow - Devices created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PULSE_GROW_API_KEY: PULSE_GROW_API_KEY capability: consumes: - type: http namespace: pulse-grow-devices baseUri: '' description: Pulse Api — Devices business capability. Self-contained, no shared references. resources: - name: devices-details path: /devices/details operations: - name: get method: GET description: All Device Details outputRawFormat: json outputParameters: - name: result type: object value: $. - name: devices-ids path: /devices/ids operations: - name: get method: GET description: All Device Ids outputRawFormat: json outputParameters: - name: result type: object value: $. - name: devices-range path: /devices/range operations: - name: get method: GET description: Data Range for All Devices. Each Datapoint will be counted towards your api usage limit. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start in: query type: string description: The beginning time of your data range in ISO 8601 format. required: true - name: end in: query type: string description: The end time of your data range in ISO 8601 format. If not provided, API will use the current time. - name: devices-deviceId-data-range path: /devices/{deviceId}/data-range operations: - name: get method: GET description: Data Range for Device. Each Datapoint in range will be counted towards your api usage limit. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deviceId in: path type: integer description: The device identifier for which to retrieve data. required: true - name: start in: query type: string description: The beginning time of your data range in ISO 8601 format. required: true - name: end in: query type: string description: The end time of your data range in ISO 8601 format. If not provided, API will use the current time. - name: devices-deviceId-recent-data path: /devices/{deviceId}/recent-data operations: - name: get method: GET description: Device Recent Data outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: deviceId in: path type: integer description: The device identifier for which to retrieve the latest data. required: true exposes: - type: rest namespace: pulse-grow-devices-rest port: 8080 description: REST adapter for Pulse Api — Devices. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/devices/details name: devices-details description: REST surface for devices-details. operations: - method: GET name: get description: All Device Details call: pulse-grow-devices.get outputParameters: - type: object mapping: $. - path: /v1/devices/ids name: devices-ids description: REST surface for devices-ids. operations: - method: GET name: get description: All Device Ids call: pulse-grow-devices.get outputParameters: - type: object mapping: $. - path: /v1/devices/range name: devices-range description: REST surface for devices-range. operations: - method: GET name: get description: Data Range for All Devices. Each Datapoint will be counted towards your api usage limit. call: pulse-grow-devices.get with: start: rest.start end: rest.end outputParameters: - type: object mapping: $. - path: /v1/devices/{deviceid}/data-range name: devices-deviceid-data-range description: REST surface for devices-deviceId-data-range. operations: - method: GET name: get description: Data Range for Device. Each Datapoint in range will be counted towards your api usage limit. call: pulse-grow-devices.get with: deviceId: rest.deviceId start: rest.start end: rest.end outputParameters: - type: object mapping: $. - path: /v1/devices/{deviceid}/recent-data name: devices-deviceid-recent-data description: REST surface for devices-deviceId-recent-data. operations: - method: GET name: get description: Device Recent Data call: pulse-grow-devices.get with: deviceId: rest.deviceId outputParameters: - type: object mapping: $. - type: mcp namespace: pulse-grow-devices-mcp port: 9090 transport: http description: MCP adapter for Pulse Api — Devices. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: all-device-details description: All Device Details hints: readOnly: true destructive: false idempotent: true call: pulse-grow-devices.get outputParameters: - type: object mapping: $. - name: all-device-ids description: All Device Ids hints: readOnly: true destructive: false idempotent: true call: pulse-grow-devices.get outputParameters: - type: object mapping: $. - name: data-range-all-devices-each description: Data Range for All Devices. Each Datapoint will be counted towards your api usage limit. hints: readOnly: true destructive: false idempotent: true call: pulse-grow-devices.get with: start: tools.start end: tools.end outputParameters: - type: object mapping: $. - name: data-range-device-each-datapoint description: Data Range for Device. Each Datapoint in range will be counted towards your api usage limit. hints: readOnly: true destructive: false idempotent: true call: pulse-grow-devices.get with: deviceId: tools.deviceId start: tools.start end: tools.end outputParameters: - type: object mapping: $. - name: device-recent-data description: Device Recent Data hints: readOnly: true destructive: false idempotent: true call: pulse-grow-devices.get with: deviceId: tools.deviceId outputParameters: - type: object mapping: $.