naftiko: 1.0.0-alpha2 info: label: Courier — Device Tokens description: 'Courier — Device Tokens. 6 operations. Lead operation: Get all tokens. Self-contained Naftiko capability covering one Courier business surface.' tags: - Courier - Device Tokens created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COURIER_API_KEY: COURIER_API_KEY capability: consumes: - type: http namespace: courier-device-tokens baseUri: https://api.courier.com description: Courier — Device Tokens business capability. Self-contained, no shared references. resources: - name: users-user_id-tokens path: /users/{user_id}/tokens operations: - name: userstokenslist method: GET description: Get all tokens outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: string description: The user's ID. This can be any uniquely identifiable string. required: true - name: userstokensaddmultiple method: PUT description: Add multiple tokens to user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: string description: The user's ID. This can be any uniquely identifiable string. required: true - name: users-user_id-tokens-token path: /users/{user_id}/tokens/{token} operations: - name: userstokensget method: GET description: Get single token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: string description: The user's ID. This can be any uniquely identifiable string. required: true - name: token in: path type: string description: The full token string. required: true - name: userstokensadd method: PUT description: Add single token to user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: string description: The user's ID. This can be any uniquely identifiable string. required: true - name: token in: path type: string description: The full token string. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: userstokensupdate method: PATCH description: Update a token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: string description: The user's ID. This can be any uniquely identifiable string. required: true - name: token in: path type: string description: The full token string. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: userstokensdelete method: DELETE description: Delete User Token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: user_id in: path type: string description: The user's ID. This can be any uniquely identifiable string. required: true - name: token in: path type: string description: The full token string. required: true authentication: type: bearer token: '{{env.COURIER_API_KEY}}' exposes: - type: rest namespace: courier-device-tokens-rest port: 8080 description: REST adapter for Courier — Device Tokens. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users/{user-id}/tokens name: users-user-id-tokens description: REST surface for users-user_id-tokens. operations: - method: GET name: userstokenslist description: Get all tokens call: courier-device-tokens.userstokenslist with: user_id: rest.user_id outputParameters: - type: object mapping: $. - method: PUT name: userstokensaddmultiple description: Add multiple tokens to user call: courier-device-tokens.userstokensaddmultiple with: user_id: rest.user_id outputParameters: - type: object mapping: $. - path: /v1/users/{user-id}/tokens/{token} name: users-user-id-tokens-token description: REST surface for users-user_id-tokens-token. operations: - method: GET name: userstokensget description: Get single token call: courier-device-tokens.userstokensget with: user_id: rest.user_id token: rest.token outputParameters: - type: object mapping: $. - method: PUT name: userstokensadd description: Add single token to user call: courier-device-tokens.userstokensadd with: user_id: rest.user_id token: rest.token body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: userstokensupdate description: Update a token call: courier-device-tokens.userstokensupdate with: user_id: rest.user_id token: rest.token body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: userstokensdelete description: Delete User Token call: courier-device-tokens.userstokensdelete with: user_id: rest.user_id token: rest.token outputParameters: - type: object mapping: $. - type: mcp namespace: courier-device-tokens-mcp port: 9090 transport: http description: MCP adapter for Courier — Device Tokens. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-all-tokens description: Get all tokens hints: readOnly: true destructive: false idempotent: true call: courier-device-tokens.userstokenslist with: user_id: tools.user_id outputParameters: - type: object mapping: $. - name: add-multiple-tokens-user description: Add multiple tokens to user hints: readOnly: false destructive: false idempotent: true call: courier-device-tokens.userstokensaddmultiple with: user_id: tools.user_id outputParameters: - type: object mapping: $. - name: get-single-token description: Get single token hints: readOnly: true destructive: false idempotent: true call: courier-device-tokens.userstokensget with: user_id: tools.user_id token: tools.token outputParameters: - type: object mapping: $. - name: add-single-token-user description: Add single token to user hints: readOnly: false destructive: false idempotent: true call: courier-device-tokens.userstokensadd with: user_id: tools.user_id token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: update-token description: Update a token hints: readOnly: false destructive: false idempotent: true call: courier-device-tokens.userstokensupdate with: user_id: tools.user_id token: tools.token body: tools.body outputParameters: - type: object mapping: $. - name: delete-user-token description: Delete User Token hints: readOnly: false destructive: true idempotent: true call: courier-device-tokens.userstokensdelete with: user_id: tools.user_id token: tools.token outputParameters: - type: object mapping: $.