naftiko: 1.0.0-alpha2 info: label: 7digital / MassiveMusic Streaming Platform API — Offline Devices description: '7digital / MassiveMusic Streaming Platform API — Offline Devices. 3 operations. Lead operation: 7digital Authorize Offline Device. Self-contained Naftiko capability covering one 7digital / MassiveMusic business surface.' tags: - 7digital / MassiveMusic - Music - Offline Devices created: '2026-05-28' modified: '2026-05-28' binds: - namespace: env keys: SEVENDIGITAL_CONSUMER_KEY: SEVENDIGITAL_CONSUMER_KEY SEVENDIGITAL_CONSUMER_SECRET: SEVENDIGITAL_CONSUMER_SECRET capability: consumes: - type: http namespace: streaming-platform-offline-devices baseUri: https://api.7digital.com description: 7digital / MassiveMusic Streaming Platform API — Offline Devices business capability. Self-contained, no shared references. authentication: type: apikey key: oauth_consumer_key value: '{{env.SEVENDIGITAL_CONSUMER_KEY}}' placement: query resources: - name: users-userid-unlimitedstreaming-offline path: /users/{userId}/unlimitedStreaming/offline operations: - name: authorizeOfflineDevice method: POST description: 7digital Authorize Offline Device inputParameters: - name: userId in: path type: string required: true description: Partner-scoped 7digital user id. - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-userid-unlimitedstreaming-offline-deviceid path: /users/{userId}/unlimitedStreaming/offline/{deviceId} operations: - name: getOfflineDeviceStatus method: GET description: 7digital Get Offline Device Status inputParameters: - name: userId in: path type: string required: true description: Partner-scoped 7digital user id. - name: deviceId in: path type: string required: true description: Identifier of a registered offline device. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-userid-unlimitedstreaming-devices path: /users/{userId}/unlimitedStreaming/devices operations: - name: listOfflineDevices method: GET description: 7digital List Offline Devices inputParameters: - name: userId in: path type: string required: true description: Partner-scoped 7digital user id. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: streaming-platform-offline-devices-rest port: 8080 description: REST adapter for 7digital / MassiveMusic Streaming Platform API — Offline Devices. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users/{user-id}/unlimited-streaming/offline name: users-user-id-unlimited-streaming-offline description: REST surface for users-user-id-unlimited-streaming-offline. operations: - method: POST name: authorizeOfflineDevice description: 7digital Authorize Offline Device call: streaming-platform-offline-devices.authorizeOfflineDevice with: userId: rest.userId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{user-id}/unlimited-streaming/offline/{device-id} name: users-user-id-unlimited-streaming-offline-device-id description: REST surface for users-user-id-unlimited-streaming-offline-device-id. operations: - method: GET name: getOfflineDeviceStatus description: 7digital Get Offline Device Status call: streaming-platform-offline-devices.getOfflineDeviceStatus with: userId: rest.userId deviceId: rest.deviceId outputParameters: - type: object mapping: $. - path: /v1/users/{user-id}/unlimited-streaming/devices name: users-user-id-unlimited-streaming-devices description: REST surface for users-user-id-unlimited-streaming-devices. operations: - method: GET name: listOfflineDevices description: 7digital List Offline Devices call: streaming-platform-offline-devices.listOfflineDevices with: userId: rest.userId outputParameters: - type: object mapping: $. - type: mcp namespace: streaming-platform-offline-devices-mcp port: 9090 transport: http description: MCP adapter for 7digital / MassiveMusic Streaming Platform API — Offline Devices. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: authorize-offline-device description: 7digital Authorize Offline Device hints: readOnly: false destructive: false idempotent: false call: streaming-platform-offline-devices.authorizeOfflineDevice with: userId: tools.userId body: tools.body outputParameters: - type: object mapping: $. - name: get-offline-device-status description: 7digital Get Offline Device Status hints: readOnly: true destructive: false idempotent: true call: streaming-platform-offline-devices.getOfflineDeviceStatus with: userId: tools.userId deviceId: tools.deviceId outputParameters: - type: object mapping: $. - name: list-offline-devices description: 7digital List Offline Devices hints: readOnly: true destructive: false idempotent: true call: streaming-platform-offline-devices.listOfflineDevices with: userId: tools.userId outputParameters: - type: object mapping: $.