naftiko: 1.0.0-alpha2 info: label: 7digital API — User description: '7digital API — User. 17 operations. Lead operation: 7digital Get User Unlimited Streaming. Self-contained Naftiko capability covering one 7digital / MassiveMusic business surface.' tags: - 7digital / MassiveMusic - Music - User 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: api-user baseUri: https://api.7digital.com/1.2 description: 7digital API — User business capability. Self-contained, no shared references. authentication: type: apikey key: oauth_consumer_key value: '{{env.SEVENDIGITAL_CONSUMER_KEY}}' placement: query resources: - name: user-unlimitedstreaming path: /user/unlimitedStreaming operations: - name: getUserUnlimitedStreaming method: GET description: 7digital Get User Unlimited Streaming inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateUserUnlimitedStreaming method: POST description: 7digital Update User Unlimited Streaming inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-locker path: /user/locker operations: - name: getUserLocker method: GET description: 7digital Get User Locker inputParameters: - name: page in: query type: integer required: false description: 1-based page number for paged endpoints. - name: pageSize in: query type: integer required: false description: Number of items per page. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-purchase-item path: /user/purchase/item operations: - name: purchaseUserItem method: GET description: 7digital Purchase User Item inputParameters: - name: releaseId in: query type: string required: false description: Release id to purchase. - name: trackId in: query type: string required: false description: Track id to purchase. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-purchase-rrpitem path: /user/purchase/rrpitem operations: - name: purchaseUserRrpItem method: GET description: 7digital Purchase User Rrp Item inputParameters: - name: releaseId in: query type: string required: false description: Release id to purchase. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-purchase-basket path: /user/purchase/basket operations: - name: purchaseUserBasket method: GET description: 7digital Purchase User Basket inputParameters: - name: basketId in: query type: string required: true description: 7digital basket id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-purchase-priceditem path: /user/purchase/priceditem operations: - name: purchaseUserPricedItem method: GET description: 7digital Purchase User Priced Item inputParameters: - name: releaseId in: query type: string required: false description: Release id to purchase. - name: price in: query type: number required: true description: Partner-supplied price (in minor units). outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-payment-card path: /user/payment/card operations: - name: listUserPaymentCards method: GET description: 7digital List User Payment Cards inputParameters: [] outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-payment-card-select path: /user/payment/card/select operations: - name: selectUserPaymentCard method: POST description: 7digital Select User Payment Card inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-payment-card-delete path: /user/payment/card/delete operations: - name: deleteUserPaymentCard method: POST description: 7digital Delete User Payment Card inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-payment-cardregistration path: /user/payment/cardregistration operations: - name: registerUserPaymentCard method: POST description: 7digital Register User Payment Card inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-payment-cardregistration-id path: /user/payment/cardregistration/{id} operations: - name: getUserCardRegistration method: GET description: 7digital Get User Card Registration inputParameters: - name: id in: path type: string required: true description: Card registration id. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-deliveritem path: /user/deliveritem operations: - name: deliverUserItem method: GET description: 7digital Deliver User Item inputParameters: - name: releaseId in: query type: string required: false description: Purchased release to deliver. - name: trackId in: query type: string required: false description: Purchased track to deliver. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-signup path: /user/signup operations: - name: signupUser method: POST description: 7digital Signup User inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-create path: /user/create operations: - name: createUser method: GET description: 7digital Create User inputParameters: - name: email in: query type: string required: true description: Email address of the new user. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-details path: /user/details operations: - name: getUserDetails method: GET description: 7digital Get User Details inputParameters: - name: userId in: query type: string required: true description: The user id to look up. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: user-authenticate path: /user/authenticate operations: - name: authenticateUser method: POST description: 7digital Authenticate User inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: api-user-rest port: 8080 description: REST adapter for 7digital API — User. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/user/unlimited-streaming name: user-unlimited-streaming description: REST surface for user-unlimited-streaming. operations: - method: GET name: getUserUnlimitedStreaming description: 7digital Get User Unlimited Streaming call: api-user.getUserUnlimitedStreaming with: {} outputParameters: - type: object mapping: $. - method: POST name: updateUserUnlimitedStreaming description: 7digital Update User Unlimited Streaming call: api-user.updateUserUnlimitedStreaming with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/user/locker name: user-locker description: REST surface for user-locker. operations: - method: GET name: getUserLocker description: 7digital Get User Locker call: api-user.getUserLocker with: page: rest.page pageSize: rest.pageSize outputParameters: - type: object mapping: $. - path: /v1/user/purchase/item name: user-purchase-item description: REST surface for user-purchase-item. operations: - method: GET name: purchaseUserItem description: 7digital Purchase User Item call: api-user.purchaseUserItem with: releaseId: rest.releaseId trackId: rest.trackId outputParameters: - type: object mapping: $. - path: /v1/user/purchase/rrpitem name: user-purchase-rrpitem description: REST surface for user-purchase-rrpitem. operations: - method: GET name: purchaseUserRrpItem description: 7digital Purchase User Rrp Item call: api-user.purchaseUserRrpItem with: releaseId: rest.releaseId outputParameters: - type: object mapping: $. - path: /v1/user/purchase/basket name: user-purchase-basket description: REST surface for user-purchase-basket. operations: - method: GET name: purchaseUserBasket description: 7digital Purchase User Basket call: api-user.purchaseUserBasket with: basketId: rest.basketId outputParameters: - type: object mapping: $. - path: /v1/user/purchase/priceditem name: user-purchase-priceditem description: REST surface for user-purchase-priceditem. operations: - method: GET name: purchaseUserPricedItem description: 7digital Purchase User Priced Item call: api-user.purchaseUserPricedItem with: releaseId: rest.releaseId price: rest.price outputParameters: - type: object mapping: $. - path: /v1/user/payment/card name: user-payment-card description: REST surface for user-payment-card. operations: - method: GET name: listUserPaymentCards description: 7digital List User Payment Cards call: api-user.listUserPaymentCards with: {} outputParameters: - type: object mapping: $. - path: /v1/user/payment/card/select name: user-payment-card-select description: REST surface for user-payment-card-select. operations: - method: POST name: selectUserPaymentCard description: 7digital Select User Payment Card call: api-user.selectUserPaymentCard with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/user/payment/card/delete name: user-payment-card-delete description: REST surface for user-payment-card-delete. operations: - method: POST name: deleteUserPaymentCard description: 7digital Delete User Payment Card call: api-user.deleteUserPaymentCard with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/user/payment/cardregistration name: user-payment-cardregistration description: REST surface for user-payment-cardregistration. operations: - method: POST name: registerUserPaymentCard description: 7digital Register User Payment Card call: api-user.registerUserPaymentCard with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/user/payment/cardregistration/{id} name: user-payment-cardregistration-id description: REST surface for user-payment-cardregistration-id. operations: - method: GET name: getUserCardRegistration description: 7digital Get User Card Registration call: api-user.getUserCardRegistration with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/user/deliveritem name: user-deliveritem description: REST surface for user-deliveritem. operations: - method: GET name: deliverUserItem description: 7digital Deliver User Item call: api-user.deliverUserItem with: releaseId: rest.releaseId trackId: rest.trackId outputParameters: - type: object mapping: $. - path: /v1/user/signup name: user-signup description: REST surface for user-signup. operations: - method: POST name: signupUser description: 7digital Signup User call: api-user.signupUser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/user/create name: user-create description: REST surface for user-create. operations: - method: GET name: createUser description: 7digital Create User call: api-user.createUser with: email: rest.email outputParameters: - type: object mapping: $. - path: /v1/user/details name: user-details description: REST surface for user-details. operations: - method: GET name: getUserDetails description: 7digital Get User Details call: api-user.getUserDetails with: userId: rest.userId outputParameters: - type: object mapping: $. - path: /v1/user/authenticate name: user-authenticate description: REST surface for user-authenticate. operations: - method: POST name: authenticateUser description: 7digital Authenticate User call: api-user.authenticateUser with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: api-user-mcp port: 9090 transport: http description: MCP adapter for 7digital API — User. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-user-unlimited-streaming description: 7digital Get User Unlimited Streaming hints: readOnly: true destructive: false idempotent: true call: api-user.getUserUnlimitedStreaming with: {} outputParameters: - type: object mapping: $. - name: update-user-unlimited-streaming description: 7digital Update User Unlimited Streaming hints: readOnly: true destructive: false idempotent: false call: api-user.updateUserUnlimitedStreaming with: body: tools.body outputParameters: - type: object mapping: $. - name: get-user-locker description: 7digital Get User Locker hints: readOnly: true destructive: false idempotent: true call: api-user.getUserLocker with: page: tools.page pageSize: tools.pageSize outputParameters: - type: object mapping: $. - name: purchase-user-item description: 7digital Purchase User Item hints: readOnly: true destructive: false idempotent: true call: api-user.purchaseUserItem with: releaseId: tools.releaseId trackId: tools.trackId outputParameters: - type: object mapping: $. - name: purchase-user-rrp-item description: 7digital Purchase User Rrp Item hints: readOnly: true destructive: false idempotent: true call: api-user.purchaseUserRrpItem with: releaseId: tools.releaseId outputParameters: - type: object mapping: $. - name: purchase-user-basket description: 7digital Purchase User Basket hints: readOnly: true destructive: false idempotent: true call: api-user.purchaseUserBasket with: basketId: tools.basketId outputParameters: - type: object mapping: $. - name: purchase-user-priced-item description: 7digital Purchase User Priced Item hints: readOnly: true destructive: false idempotent: true call: api-user.purchaseUserPricedItem with: releaseId: tools.releaseId price: tools.price outputParameters: - type: object mapping: $. - name: list-user-payment-cards description: 7digital List User Payment Cards hints: readOnly: true destructive: false idempotent: true call: api-user.listUserPaymentCards with: {} outputParameters: - type: object mapping: $. - name: select-user-payment-card description: 7digital Select User Payment Card hints: readOnly: false destructive: false idempotent: false call: api-user.selectUserPaymentCard with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-user-payment-card description: 7digital Delete User Payment Card hints: readOnly: false destructive: false idempotent: false call: api-user.deleteUserPaymentCard with: body: tools.body outputParameters: - type: object mapping: $. - name: register-user-payment-card description: 7digital Register User Payment Card hints: readOnly: false destructive: false idempotent: false call: api-user.registerUserPaymentCard with: body: tools.body outputParameters: - type: object mapping: $. - name: get-user-card-registration description: 7digital Get User Card Registration hints: readOnly: true destructive: false idempotent: true call: api-user.getUserCardRegistration with: id: tools.id outputParameters: - type: object mapping: $. - name: deliver-user-item description: 7digital Deliver User Item hints: readOnly: true destructive: false idempotent: true call: api-user.deliverUserItem with: releaseId: tools.releaseId trackId: tools.trackId outputParameters: - type: object mapping: $. - name: signup-user description: 7digital Signup User hints: readOnly: false destructive: false idempotent: false call: api-user.signupUser with: body: tools.body outputParameters: - type: object mapping: $. - name: create-user description: 7digital Create User hints: readOnly: true destructive: false idempotent: true call: api-user.createUser with: email: tools.email outputParameters: - type: object mapping: $. - name: get-user-details description: 7digital Get User Details hints: readOnly: true destructive: false idempotent: true call: api-user.getUserDetails with: userId: tools.userId outputParameters: - type: object mapping: $. - name: authenticate-user description: 7digital Authenticate User hints: readOnly: false destructive: false idempotent: false call: api-user.authenticateUser with: body: tools.body outputParameters: - type: object mapping: $.