naftiko: 1.0.0-alpha2 info: label: Knock API — Bulk operations description: 'Knock API — Bulk operations. 12 operations. Lead operation: Get bulk operation. Self-contained Naftiko capability covering one Knock business surface.' tags: - Knock - Bulk operations created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KNOCK_API_KEY: KNOCK_API_KEY capability: consumes: - type: http namespace: knock-bulk-operations baseUri: https://api.knock.app description: Knock API — Bulk operations business capability. Self-contained, no shared references. resources: - name: v1-bulk_operations-id path: /v1/bulk_operations/{id} operations: - name: getbulkoperation method: GET description: Get bulk operation outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string description: The ID of the bulk operation to retrieve. required: true - name: v1-channels-channel_id-messages-bulk-action path: /v1/channels/{channel_id}/messages/bulk/{action} operations: - name: bulkupdatemessagesforchannel method: POST description: Bulk update message statuses for channel outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The ID of the channel to update messages for. required: true - name: action in: path type: string description: The target status to be applied to the messages. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-objects-collection-bulk-delete path: /v1/objects/{collection}/bulk/delete operations: - name: bulkdeleteobjects method: POST description: Bulk delete objects outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection in: path type: string description: The collection this object belongs to. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-objects-collection-bulk-set path: /v1/objects/{collection}/bulk/set operations: - name: bulksetobjects method: POST description: Bulk set objects outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection in: path type: string description: The collection this object belongs to. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-objects-collection-bulk-subscriptions-add path: /v1/objects/{collection}/bulk/subscriptions/add operations: - name: bulkaddsubscriptions method: POST description: Bulk add subscriptions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection in: path type: string description: The collection this object belongs to. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-objects-collection-bulk-subscriptions-delete path: /v1/objects/{collection}/bulk/subscriptions/delete operations: - name: bulkdeletesubscriptions method: POST description: Bulk delete subscriptions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: collection in: path type: string description: The collection this object belongs to. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-schedules-bulk-create path: /v1/schedules/bulk/create operations: - name: bulkcreateschedules method: POST description: Create schedules in bulk outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-tenants-bulk-delete path: /v1/tenants/bulk/delete operations: - name: bulkdeletetenants method: POST description: Bulk delete tenants outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: tenant_ids[] in: query type: array description: The IDs of the tenants to delete. required: true - name: v1-tenants-bulk-set path: /v1/tenants/bulk/set operations: - name: bulksettenants method: POST description: Bulk set tenants outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-users-bulk-delete path: /v1/users/bulk/delete operations: - name: bulkdeleteusers method: POST description: Bulk delete users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-users-bulk-identify path: /v1/users/bulk/identify operations: - name: bulkidentifyusers method: POST description: Bulk identify users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v1-users-bulk-preferences path: /v1/users/bulk/preferences operations: - name: bulksetuserpreferences method: POST description: Bulk set preferences outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.KNOCK_API_KEY}}' exposes: - type: rest namespace: knock-bulk-operations-rest port: 8080 description: REST adapter for Knock API — Bulk operations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/bulk-operations/{id} name: v1-bulk-operations-id description: REST surface for v1-bulk_operations-id. operations: - method: GET name: getbulkoperation description: Get bulk operation call: knock-bulk-operations.getbulkoperation with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/channels/{channel-id}/messages/bulk/{action} name: v1-channels-channel-id-messages-bulk-action description: REST surface for v1-channels-channel_id-messages-bulk-action. operations: - method: POST name: bulkupdatemessagesforchannel description: Bulk update message statuses for channel call: knock-bulk-operations.bulkupdatemessagesforchannel with: channel_id: rest.channel_id action: rest.action body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/objects/{collection}/bulk/delete name: v1-objects-collection-bulk-delete description: REST surface for v1-objects-collection-bulk-delete. operations: - method: POST name: bulkdeleteobjects description: Bulk delete objects call: knock-bulk-operations.bulkdeleteobjects with: collection: rest.collection body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/objects/{collection}/bulk/set name: v1-objects-collection-bulk-set description: REST surface for v1-objects-collection-bulk-set. operations: - method: POST name: bulksetobjects description: Bulk set objects call: knock-bulk-operations.bulksetobjects with: collection: rest.collection body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/objects/{collection}/bulk/subscriptions/add name: v1-objects-collection-bulk-subscriptions-add description: REST surface for v1-objects-collection-bulk-subscriptions-add. operations: - method: POST name: bulkaddsubscriptions description: Bulk add subscriptions call: knock-bulk-operations.bulkaddsubscriptions with: collection: rest.collection body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/objects/{collection}/bulk/subscriptions/delete name: v1-objects-collection-bulk-subscriptions-delete description: REST surface for v1-objects-collection-bulk-subscriptions-delete. operations: - method: POST name: bulkdeletesubscriptions description: Bulk delete subscriptions call: knock-bulk-operations.bulkdeletesubscriptions with: collection: rest.collection body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/schedules/bulk/create name: v1-schedules-bulk-create description: REST surface for v1-schedules-bulk-create. operations: - method: POST name: bulkcreateschedules description: Create schedules in bulk call: knock-bulk-operations.bulkcreateschedules with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/tenants/bulk/delete name: v1-tenants-bulk-delete description: REST surface for v1-tenants-bulk-delete. operations: - method: POST name: bulkdeletetenants description: Bulk delete tenants call: knock-bulk-operations.bulkdeletetenants with: tenant_ids[]: rest.tenant_ids[] outputParameters: - type: object mapping: $. - path: /v1/v1/tenants/bulk/set name: v1-tenants-bulk-set description: REST surface for v1-tenants-bulk-set. operations: - method: POST name: bulksettenants description: Bulk set tenants call: knock-bulk-operations.bulksettenants with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/users/bulk/delete name: v1-users-bulk-delete description: REST surface for v1-users-bulk-delete. operations: - method: POST name: bulkdeleteusers description: Bulk delete users call: knock-bulk-operations.bulkdeleteusers with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/users/bulk/identify name: v1-users-bulk-identify description: REST surface for v1-users-bulk-identify. operations: - method: POST name: bulkidentifyusers description: Bulk identify users call: knock-bulk-operations.bulkidentifyusers with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/users/bulk/preferences name: v1-users-bulk-preferences description: REST surface for v1-users-bulk-preferences. operations: - method: POST name: bulksetuserpreferences description: Bulk set preferences call: knock-bulk-operations.bulksetuserpreferences with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: knock-bulk-operations-mcp port: 9090 transport: http description: MCP adapter for Knock API — Bulk operations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-bulk-operation description: Get bulk operation hints: readOnly: true destructive: false idempotent: true call: knock-bulk-operations.getbulkoperation with: id: tools.id outputParameters: - type: object mapping: $. - name: bulk-update-message-statuses-channel description: Bulk update message statuses for channel hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkupdatemessagesforchannel with: channel_id: tools.channel_id action: tools.action body: tools.body outputParameters: - type: object mapping: $. - name: bulk-delete-objects description: Bulk delete objects hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkdeleteobjects with: collection: tools.collection body: tools.body outputParameters: - type: object mapping: $. - name: bulk-set-objects description: Bulk set objects hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulksetobjects with: collection: tools.collection body: tools.body outputParameters: - type: object mapping: $. - name: bulk-add-subscriptions description: Bulk add subscriptions hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkaddsubscriptions with: collection: tools.collection body: tools.body outputParameters: - type: object mapping: $. - name: bulk-delete-subscriptions description: Bulk delete subscriptions hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkdeletesubscriptions with: collection: tools.collection body: tools.body outputParameters: - type: object mapping: $. - name: create-schedules-bulk description: Create schedules in bulk hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkcreateschedules with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-delete-tenants description: Bulk delete tenants hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkdeletetenants with: tenant_ids[]: tools.tenant_ids[] outputParameters: - type: object mapping: $. - name: bulk-set-tenants description: Bulk set tenants hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulksettenants with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-delete-users description: Bulk delete users hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkdeleteusers with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-identify-users description: Bulk identify users hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulkidentifyusers with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-set-preferences description: Bulk set preferences hints: readOnly: false destructive: false idempotent: false call: knock-bulk-operations.bulksetuserpreferences with: body: tools.body outputParameters: - type: object mapping: $.