naftiko: 1.0.0-alpha2 info: label: Hookdeck Admin REST API — Destinations description: 'Hookdeck Admin REST API — Destinations. 11 operations. Lead operation: Retrieve destinations. Self-contained Naftiko capability covering one business surface.' tags: - Hookdeck - Destinations created: '2026-05-20' modified: '2026-05-20' binds: - namespace: env keys: HOOKDECK_API_KEY: HOOKDECK_API_KEY capability: consumes: - type: http namespace: hookdeck-destinations baseUri: https://api.hookdeck.com/2025-07-01 description: Hookdeck Admin REST API — Destinations business capability. Self-contained, no shared references. resources: - name: destinations path: /destinations operations: - name: getdestinations method: GET description: Retrieve destinations outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string description: query parameter id. - name: name in: query type: string description: query parameter name. - name: type in: query type: string description: query parameter type. - name: disabled in: query type: boolean description: query parameter disabled. - name: disabled_at in: query type: string description: query parameter disabled_at. - name: order_by in: query type: string description: query parameter order_by. - name: dir in: query type: string description: query parameter dir. - name: limit in: query type: integer description: query parameter limit. - name: next in: query type: string description: query parameter next. - name: prev in: query type: string description: query parameter prev. - name: createdestination method: POST description: Create a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: upsertdestination method: PUT description: Create/Update a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: destinations-count path: /destinations/count operations: - name: countdestinations method: GET description: Count destinations outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string description: query parameter id. - name: name in: query type: string description: query parameter name. - name: disabled in: query type: boolean description: query parameter disabled. - name: disabled_at in: query type: string description: query parameter disabled_at. - name: destinations-id path: /destinations/{id} operations: - name: getdestination method: GET description: Retrieve a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: include in: query type: string description: query parameter include. - name: id in: path type: string description: path parameter id. required: true - name: updatedestination method: PUT description: Update a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter id. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletedestination method: DELETE description: Delete a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter id. required: true - name: destinations-id-disable path: /destinations/{id}/disable operations: - name: disabledestination method: PUT description: Disable a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter id. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: destinations-id-archive path: /destinations/{id}/archive operations: - name: disabledestinationarchive method: PUT description: Disable a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter id. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: destinations-id-enable path: /destinations/{id}/enable operations: - name: enabledestination method: PUT description: Enable a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter id. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: destinations-id-unarchive path: /destinations/{id}/unarchive operations: - name: enabledestinationunarchive method: PUT description: Enable a destination outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: path parameter id. required: true - name: body in: body type: object description: Request body (JSON). required: false exposes: - type: rest namespace: hookdeck-destinations-rest port: 8080 description: REST adapter for Hookdeck Admin REST API — Destinations. One resource per consumed operation, prefixed with /v1. resources: - path: /v1/destinations name: destinations description: REST surface for destinations. operations: - method: GET name: getdestinations description: Retrieve destinations call: hookdeck-destinations.getdestinations with: id: rest.id name: rest.name type: rest.type disabled: rest.disabled disabled_at: rest.disabled_at order_by: rest.order_by dir: rest.dir limit: rest.limit next: rest.next prev: rest.prev outputParameters: - type: object mapping: $. - method: POST name: createdestination description: Create a destination call: hookdeck-destinations.createdestination with: body: rest.body outputParameters: - type: object mapping: $. - method: PUT name: upsertdestination description: Create/Update a destination call: hookdeck-destinations.upsertdestination with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/destinations/count name: destinations-count description: REST surface for destinations-count. operations: - method: GET name: countdestinations description: Count destinations call: hookdeck-destinations.countdestinations with: id: rest.id name: rest.name disabled: rest.disabled disabled_at: rest.disabled_at outputParameters: - type: object mapping: $. - path: /v1/destinations/{id} name: destinations-id description: REST surface for destinations-id. operations: - method: GET name: getdestination description: Retrieve a destination call: hookdeck-destinations.getdestination with: include: rest.include id: rest.id outputParameters: - type: object mapping: $. - method: PUT name: updatedestination description: Update a destination call: hookdeck-destinations.updatedestination with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletedestination description: Delete a destination call: hookdeck-destinations.deletedestination with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/destinations/{id}/disable name: destinations-id-disable description: REST surface for destinations-id-disable. operations: - method: PUT name: disabledestination description: Disable a destination call: hookdeck-destinations.disabledestination with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/destinations/{id}/archive name: destinations-id-archive description: REST surface for destinations-id-archive. operations: - method: PUT name: disabledestinationarchive description: Disable a destination call: hookdeck-destinations.disabledestinationarchive with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/destinations/{id}/enable name: destinations-id-enable description: REST surface for destinations-id-enable. operations: - method: PUT name: enabledestination description: Enable a destination call: hookdeck-destinations.enabledestination with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/destinations/{id}/unarchive name: destinations-id-unarchive description: REST surface for destinations-id-unarchive. operations: - method: PUT name: enabledestinationunarchive description: Enable a destination call: hookdeck-destinations.enabledestinationunarchive with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: hookdeck-destinations-mcp port: 9090 transport: http description: MCP adapter for Hookdeck Admin REST API — Destinations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: hookdeck-getdestinations description: Retrieve destinations hints: readOnly: true destructive: false idempotent: true call: hookdeck-destinations.getdestinations with: id: tools.id name: tools.name type: tools.type disabled: tools.disabled disabled_at: tools.disabled_at order_by: tools.order_by dir: tools.dir limit: tools.limit next: tools.next prev: tools.prev outputParameters: - type: object mapping: $. - name: hookdeck-createdestination description: Create a destination hints: readOnly: false destructive: false idempotent: false call: hookdeck-destinations.createdestination with: body: tools.body outputParameters: - type: object mapping: $. - name: hookdeck-upsertdestination description: Create/Update a destination hints: readOnly: false destructive: false idempotent: true call: hookdeck-destinations.upsertdestination with: body: tools.body outputParameters: - type: object mapping: $. - name: hookdeck-countdestinations description: Count destinations hints: readOnly: true destructive: false idempotent: true call: hookdeck-destinations.countdestinations with: id: tools.id name: tools.name disabled: tools.disabled disabled_at: tools.disabled_at outputParameters: - type: object mapping: $. - name: hookdeck-getdestination description: Retrieve a destination hints: readOnly: true destructive: false idempotent: true call: hookdeck-destinations.getdestination with: include: tools.include id: tools.id outputParameters: - type: object mapping: $. - name: hookdeck-updatedestination description: Update a destination hints: readOnly: false destructive: false idempotent: true call: hookdeck-destinations.updatedestination with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: hookdeck-deletedestination description: Delete a destination hints: readOnly: false destructive: true idempotent: true call: hookdeck-destinations.deletedestination with: id: tools.id outputParameters: - type: object mapping: $. - name: hookdeck-disabledestination description: Disable a destination hints: readOnly: false destructive: false idempotent: true call: hookdeck-destinations.disabledestination with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: hookdeck-disabledestinationarchive description: Disable a destination hints: readOnly: false destructive: false idempotent: true call: hookdeck-destinations.disabledestinationarchive with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: hookdeck-enabledestination description: Enable a destination hints: readOnly: false destructive: false idempotent: true call: hookdeck-destinations.enabledestination with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: hookdeck-enabledestinationunarchive description: Enable a destination hints: readOnly: false destructive: false idempotent: true call: hookdeck-destinations.enabledestinationunarchive with: id: tools.id body: tools.body outputParameters: - type: object mapping: $.