naftiko: 1.0.0-alpha2 info: label: Twilio Flex API — Interactions description: 'Twilio Flex API — Interactions. 5 operations. Lead operation: Twilio Create an Interaction. Self-contained Naftiko capability covering one Twilio business surface.' tags: - Twilio - Interactions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TWILIO_API_KEY: TWILIO_API_KEY capability: consumes: - type: http namespace: flex-interactions baseUri: https://flex-api.twilio.com/v1 description: Twilio Flex API — Interactions business capability. Self-contained, no shared references. resources: - name: Interactions path: /Interactions operations: - name: createinteraction method: POST description: Twilio Create an Interaction outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: Interactions-InteractionSid path: /Interactions/{InteractionSid} operations: - name: fetchinteraction method: GET description: Twilio Fetch an Interaction outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InteractionSid in: path type: string required: true - name: Interactions-InteractionSid-Channels path: /Interactions/{InteractionSid}/Channels operations: - name: listinteractionchannels method: GET description: Twilio List Interaction Channels outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InteractionSid in: path type: string required: true - name: Interactions-InteractionSid-Channels-ChannelSid path: /Interactions/{InteractionSid}/Channels/{ChannelSid} operations: - name: fetchinteractionchannel method: GET description: Twilio Fetch an Interaction Channel outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InteractionSid in: path type: string required: true - name: ChannelSid in: path type: string required: true - name: updateinteractionchannel method: POST description: Twilio Update an Interaction Channel outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: InteractionSid in: path type: string required: true - name: ChannelSid in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true authentication: type: basic username: '{{env.TWILIO_USER}}' password: '{{env.TWILIO_PASS}}' exposes: - type: rest namespace: flex-interactions-rest port: 8080 description: REST adapter for Twilio Flex API — Interactions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/interactions name: interactions description: REST surface for Interactions. operations: - method: POST name: createinteraction description: Twilio Create an Interaction call: flex-interactions.createinteraction with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/interactions/{interactionsid} name: interactions-interactionsid description: REST surface for Interactions-InteractionSid. operations: - method: GET name: fetchinteraction description: Twilio Fetch an Interaction call: flex-interactions.fetchinteraction with: InteractionSid: rest.InteractionSid outputParameters: - type: object mapping: $. - path: /v1/interactions/{interactionsid}/channels name: interactions-interactionsid-channels description: REST surface for Interactions-InteractionSid-Channels. operations: - method: GET name: listinteractionchannels description: Twilio List Interaction Channels call: flex-interactions.listinteractionchannels with: InteractionSid: rest.InteractionSid outputParameters: - type: object mapping: $. - path: /v1/interactions/{interactionsid}/channels/{channelsid} name: interactions-interactionsid-channels-channelsid description: REST surface for Interactions-InteractionSid-Channels-ChannelSid. operations: - method: GET name: fetchinteractionchannel description: Twilio Fetch an Interaction Channel call: flex-interactions.fetchinteractionchannel with: InteractionSid: rest.InteractionSid ChannelSid: rest.ChannelSid outputParameters: - type: object mapping: $. - method: POST name: updateinteractionchannel description: Twilio Update an Interaction Channel call: flex-interactions.updateinteractionchannel with: InteractionSid: rest.InteractionSid ChannelSid: rest.ChannelSid body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: flex-interactions-mcp port: 9090 transport: http description: MCP adapter for Twilio Flex API — Interactions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: twilio-create-interaction description: Twilio Create an Interaction hints: readOnly: false destructive: false idempotent: false call: flex-interactions.createinteraction with: body: tools.body outputParameters: - type: object mapping: $. - name: twilio-fetch-interaction description: Twilio Fetch an Interaction hints: readOnly: true destructive: false idempotent: true call: flex-interactions.fetchinteraction with: InteractionSid: tools.InteractionSid outputParameters: - type: object mapping: $. - name: twilio-list-interaction-channels description: Twilio List Interaction Channels hints: readOnly: true destructive: false idempotent: true call: flex-interactions.listinteractionchannels with: InteractionSid: tools.InteractionSid outputParameters: - type: object mapping: $. - name: twilio-fetch-interaction-channel description: Twilio Fetch an Interaction Channel hints: readOnly: true destructive: false idempotent: true call: flex-interactions.fetchinteractionchannel with: InteractionSid: tools.InteractionSid ChannelSid: tools.ChannelSid outputParameters: - type: object mapping: $. - name: twilio-update-interaction-channel description: Twilio Update an Interaction Channel hints: readOnly: false destructive: false idempotent: false call: flex-interactions.updateinteractionchannel with: InteractionSid: tools.InteractionSid ChannelSid: tools.ChannelSid body: tools.body outputParameters: - type: object mapping: $.