naftiko: 1.0.0-alpha2 info: label: Courier — Routing Strategies description: 'Courier — Routing Strategies. 6 operations. Lead operation: List Routing Strategies. Self-contained Naftiko capability covering one Courier business surface.' tags: - Courier - Routing Strategies created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COURIER_API_KEY: COURIER_API_KEY capability: consumes: - type: http namespace: courier-routing-strategies baseUri: https://api.courier.com description: Courier — Routing Strategies business capability. Self-contained, no shared references. resources: - name: routing-strategies path: /routing-strategies operations: - name: routingstrategieslist method: GET description: List Routing Strategies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: cursor in: query type: string description: Opaque pagination cursor from a previous response. Omit for the first page. - name: limit in: query type: integer description: Maximum number of results per page. Default 20, max 100. - name: routingstrategiescreate method: POST description: Create Routing Strategy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: routing-strategies-id path: /routing-strategies/{id} operations: - name: routingstrategiesretrieve method: GET description: Get Routing Strategy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Routing strategy ID (rs_ prefix). required: true - name: routingstrategiesreplace method: PUT description: Replace Routing Strategy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Routing strategy ID (rs_ prefix). required: true - name: body in: body type: object description: Request body (JSON). required: true - name: routingstrategiesarchive method: DELETE description: Archive Routing Strategy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Routing strategy ID (rs_ prefix). required: true - name: routing-strategies-id-notifications path: /routing-strategies/{id}/notifications operations: - name: routingstrategieslistnotifications method: GET description: List Associated Notifications outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: Routing strategy ID (`rs_` prefix). required: true - name: cursor in: query type: string description: Opaque pagination cursor from a previous response. Omit for the first page. - name: limit in: query type: integer description: Maximum number of results per page. Default 20, max 100. authentication: type: bearer token: '{{env.COURIER_API_KEY}}' exposes: - type: rest namespace: courier-routing-strategies-rest port: 8080 description: REST adapter for Courier — Routing Strategies. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/routing-strategies name: routing-strategies description: REST surface for routing-strategies. operations: - method: GET name: routingstrategieslist description: List Routing Strategies call: courier-routing-strategies.routingstrategieslist with: cursor: rest.cursor limit: rest.limit outputParameters: - type: object mapping: $. - method: POST name: routingstrategiescreate description: Create Routing Strategy call: courier-routing-strategies.routingstrategiescreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/routing-strategies/{id} name: routing-strategies-id description: REST surface for routing-strategies-id. operations: - method: GET name: routingstrategiesretrieve description: Get Routing Strategy call: courier-routing-strategies.routingstrategiesretrieve with: id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: routingstrategiesreplace description: Replace Routing Strategy call: courier-routing-strategies.routingstrategiesreplace with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: routingstrategiesarchive description: Archive Routing Strategy call: courier-routing-strategies.routingstrategiesarchive with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/routing-strategies/{id}/notifications name: routing-strategies-id-notifications description: REST surface for routing-strategies-id-notifications. operations: - method: GET name: routingstrategieslistnotifications description: List Associated Notifications call: courier-routing-strategies.routingstrategieslistnotifications with: id: rest.id cursor: rest.cursor limit: rest.limit outputParameters: - type: object mapping: $. - type: mcp namespace: courier-routing-strategies-mcp port: 9090 transport: http description: MCP adapter for Courier — Routing Strategies. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-routing-strategies description: List Routing Strategies hints: readOnly: true destructive: false idempotent: true call: courier-routing-strategies.routingstrategieslist with: cursor: tools.cursor limit: tools.limit outputParameters: - type: object mapping: $. - name: create-routing-strategy description: Create Routing Strategy hints: readOnly: false destructive: false idempotent: false call: courier-routing-strategies.routingstrategiescreate with: body: tools.body outputParameters: - type: object mapping: $. - name: get-routing-strategy description: Get Routing Strategy hints: readOnly: true destructive: false idempotent: true call: courier-routing-strategies.routingstrategiesretrieve with: id: tools.id outputParameters: - type: object mapping: $. - name: replace-routing-strategy description: Replace Routing Strategy hints: readOnly: false destructive: false idempotent: true call: courier-routing-strategies.routingstrategiesreplace with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: archive-routing-strategy description: Archive Routing Strategy hints: readOnly: false destructive: true idempotent: true call: courier-routing-strategies.routingstrategiesarchive with: id: tools.id outputParameters: - type: object mapping: $. - name: list-associated-notifications description: List Associated Notifications hints: readOnly: true destructive: false idempotent: true call: courier-routing-strategies.routingstrategieslistnotifications with: id: tools.id cursor: tools.cursor limit: tools.limit outputParameters: - type: object mapping: $.