naftiko: 1.0.0-alpha2 info: label: Twilio - Events — Sinks description: 'Twilio - Events — Sinks. 7 operations. Lead operation: Sinks. Self-contained Naftiko capability covering one Twilio business surface.' tags: - Twilio - Sinks created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TWILIO_API_KEY: TWILIO_API_KEY capability: consumes: - type: http namespace: events-sinks baseUri: https://events.twilio.com description: Twilio - Events — Sinks business capability. Self-contained, no shared references. resources: - name: v1-Sinks path: /v1/Sinks operations: - name: createsink method: POST description: Create a new Sink outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: listsink method: GET description: Retrieve a paginated list of Sinks belonging to the account used to make the request. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InUse in: query type: boolean description: A boolean query parameter filtering the results to return sinks used/not used by a subscription. - name: Status in: query type: string description: A String query parameter filtering the results by status `initialized`, `validating`, `active` or `failed`. - name: PageSize in: query type: integer description: How many resources to return in each list page. The default is 50, and the maximum is 1000. - name: Page in: query type: integer description: The page index. This value is simply for client state. - name: PageToken in: query type: string description: The page token. This is provided by the API. - name: v1-Sinks-Sid path: /v1/Sinks/{Sid} operations: - name: fetchsink method: GET description: Fetch a specific Sink. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: A 34 character string that uniquely identifies this Sink. required: true - name: deletesink method: DELETE description: Delete a specific Sink. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: A 34 character string that uniquely identifies this Sink. required: true - name: updatesink method: POST description: Update a specific Sink outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: A 34 character string that uniquely identifies this Sink. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-Sinks-Sid-Test path: /v1/Sinks/{Sid}/Test operations: - name: createsinktest method: POST description: Create a new Sink Test Event for the given Sink. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: A 34 character string that uniquely identifies the Sink to be Tested. required: true - name: v1-Sinks-Sid-Validate path: /v1/Sinks/{Sid}/Validate operations: - name: createsinkvalidate method: POST description: Validate that a test event for a Sink was received. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: A 34 character string that uniquely identifies the Sink being validated. required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: basic username: '{{env.TWILIO_USER}}' password: '{{env.TWILIO_PASS}}' exposes: - type: rest namespace: events-sinks-rest port: 8080 description: REST adapter for Twilio - Events — Sinks. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/sinks name: v1-sinks description: REST surface for v1-Sinks. operations: - method: POST name: createsink description: Create a new Sink call: events-sinks.createsink with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listsink description: Retrieve a paginated list of Sinks belonging to the account used to make the request. call: events-sinks.listsink with: InUse: rest.InUse Status: rest.Status PageSize: rest.PageSize Page: rest.Page PageToken: rest.PageToken outputParameters: - type: object mapping: $. - path: /v1/v1/sinks/{sid} name: v1-sinks-sid description: REST surface for v1-Sinks-Sid. operations: - method: GET name: fetchsink description: Fetch a specific Sink. call: events-sinks.fetchsink with: Sid: rest.Sid outputParameters: - type: object mapping: $. - method: DELETE name: deletesink description: Delete a specific Sink. call: events-sinks.deletesink with: Sid: rest.Sid outputParameters: - type: object mapping: $. - method: POST name: updatesink description: Update a specific Sink call: events-sinks.updatesink with: Sid: rest.Sid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/sinks/{sid}/test name: v1-sinks-sid-test description: REST surface for v1-Sinks-Sid-Test. operations: - method: POST name: createsinktest description: Create a new Sink Test Event for the given Sink. call: events-sinks.createsinktest with: Sid: rest.Sid outputParameters: - type: object mapping: $. - path: /v1/v1/sinks/{sid}/validate name: v1-sinks-sid-validate description: REST surface for v1-Sinks-Sid-Validate. operations: - method: POST name: createsinkvalidate description: Validate that a test event for a Sink was received. call: events-sinks.createsinkvalidate with: Sid: rest.Sid body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: events-sinks-mcp port: 9090 transport: http description: MCP adapter for Twilio - Events — Sinks. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-new-sink description: Create a new Sink hints: readOnly: false destructive: false idempotent: false call: events-sinks.createsink with: body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-paginated-list-sinks-belonging description: Retrieve a paginated list of Sinks belonging to the account used to make the request. hints: readOnly: true destructive: false idempotent: true call: events-sinks.listsink with: InUse: tools.InUse Status: tools.Status PageSize: tools.PageSize Page: tools.Page PageToken: tools.PageToken outputParameters: - type: object mapping: $. - name: fetch-specific-sink description: Fetch a specific Sink. hints: readOnly: true destructive: false idempotent: true call: events-sinks.fetchsink with: Sid: tools.Sid outputParameters: - type: object mapping: $. - name: delete-specific-sink description: Delete a specific Sink. hints: readOnly: false destructive: true idempotent: true call: events-sinks.deletesink with: Sid: tools.Sid outputParameters: - type: object mapping: $. - name: update-specific-sink description: Update a specific Sink hints: readOnly: false destructive: false idempotent: false call: events-sinks.updatesink with: Sid: tools.Sid body: tools.body outputParameters: - type: object mapping: $. - name: create-new-sink-test-event description: Create a new Sink Test Event for the given Sink. hints: readOnly: true destructive: false idempotent: false call: events-sinks.createsinktest with: Sid: tools.Sid outputParameters: - type: object mapping: $. - name: validate-that-test-event-sink description: Validate that a test event for a Sink was received. hints: readOnly: true destructive: false idempotent: false call: events-sinks.createsinkvalidate with: Sid: tools.Sid body: tools.body outputParameters: - type: object mapping: $.