naftiko: 1.0.0-alpha2 info: label: Twilio - Trunking — Trunks description: 'Twilio - Trunking — Trunks. 24 operations. Lead operation: Trunks. Self-contained Naftiko capability covering one Twilio business surface.' tags: - Twilio - Trunks created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TWILIO_API_KEY: TWILIO_API_KEY capability: consumes: - type: http namespace: trunking-trunks baseUri: https://trunking.twilio.com description: Twilio - Trunking — Trunks business capability. Self-contained, no shared references. resources: - name: v1-Trunks path: /v1/Trunks operations: - name: createtrunk method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: listtrunk method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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-Trunks-Sid path: /v1/Trunks/{Sid} operations: - name: fetchtrunk method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: The unique string that we created to identify the Trunk resource to fetch. required: true - name: deletetrunk method: DELETE description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: The unique string that we created to identify the Trunk resource to delete. required: true - name: updatetrunk method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Sid in: path type: string description: The unique string that we created to identify the OriginationUrl resource to update. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-Trunks-TrunkSid-CredentialLists path: /v1/Trunks/{TrunkSid}/CredentialLists operations: - name: createcredentiallist method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk to associate the credential list with. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: listcredentiallist method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to read the credential lists. required: true - 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-Trunks-TrunkSid-CredentialLists-Sid path: /v1/Trunks/{TrunkSid}/CredentialLists/{Sid} operations: - name: fetchcredentiallist method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to fetch the credential list. required: true - name: Sid in: path type: string description: The unique string that we created to identify the CredentialList resource to fetch. required: true - name: deletecredentiallist method: DELETE description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to delete the credential list. required: true - name: Sid in: path type: string description: The unique string that we created to identify the CredentialList resource to delete. required: true - name: v1-Trunks-TrunkSid-IpAccessControlLists path: /v1/Trunks/{TrunkSid}/IpAccessControlLists operations: - name: createipaccesscontrollist method: POST description: Associate an IP Access Control List with a Trunk outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk to associate the IP Access Control List with. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: listipaccesscontrollist method: GET description: List all IP Access Control Lists for a Trunk outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to read the IP Access Control Lists. required: true - 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-Trunks-TrunkSid-IpAccessControlLists-Sid path: /v1/Trunks/{TrunkSid}/IpAccessControlLists/{Sid} operations: - name: fetchipaccesscontrollist method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to fetch the IP Access Control List. required: true - name: Sid in: path type: string description: The unique string that we created to identify the IpAccessControlList resource to fetch. required: true - name: deleteipaccesscontrollist method: DELETE description: Remove an associated IP Access Control List from a Trunk outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to delete the IP Access Control List. required: true - name: Sid in: path type: string description: The unique string that we created to identify the IpAccessControlList resource to delete. required: true - name: v1-Trunks-TrunkSid-OriginationUrls path: /v1/Trunks/{TrunkSid}/OriginationUrls operations: - name: createoriginationurl method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk to associate the resource with. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: listoriginationurl method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to read the OriginationUrl. required: true - 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-Trunks-TrunkSid-OriginationUrls-Sid path: /v1/Trunks/{TrunkSid}/OriginationUrls/{Sid} operations: - name: fetchoriginationurl method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to fetch the OriginationUrl. required: true - name: Sid in: path type: string description: The unique string that we created to identify the OriginationUrl resource to fetch. required: true - name: deleteoriginationurl method: DELETE description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to delete the OriginationUrl. required: true - name: Sid in: path type: string description: The unique string that we created to identify the OriginationUrl resource to delete. required: true - name: updateoriginationurl method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to update the OriginationUrl. required: true - name: Sid in: path type: string description: The unique string that we created to identify the OriginationUrl resource to update. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: v1-Trunks-TrunkSid-PhoneNumbers path: /v1/Trunks/{TrunkSid}/PhoneNumbers operations: - name: createphonenumber method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk to associate the phone number with. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: listphonenumber method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to read the PhoneNumber resources. required: true - 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-Trunks-TrunkSid-PhoneNumbers-Sid path: /v1/Trunks/{TrunkSid}/PhoneNumbers/{Sid} operations: - name: fetchphonenumber method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to fetch the PhoneNumber resource. required: true - name: Sid in: path type: string description: The unique string that we created to identify the PhoneNumber resource to fetch. required: true - name: deletephonenumber method: DELETE description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to delete the PhoneNumber resource. required: true - name: Sid in: path type: string description: The unique string that we created to identify the PhoneNumber resource to delete. required: true - name: v1-Trunks-TrunkSid-Recording path: /v1/Trunks/{TrunkSid}/Recording operations: - name: fetchrecording method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk from which to fetch the recording settings. required: true - name: updaterecording method: POST description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: TrunkSid in: path type: string description: The SID of the Trunk that will have its recording settings updated. 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: trunking-trunks-rest port: 8080 description: REST adapter for Twilio - Trunking — Trunks. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/trunks name: v1-trunks description: REST surface for v1-Trunks. operations: - method: POST name: createtrunk description: createtrunk call: trunking-trunks.createtrunk with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listtrunk description: listtrunk call: trunking-trunks.listtrunk with: PageSize: rest.PageSize Page: rest.Page PageToken: rest.PageToken outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{sid} name: v1-trunks-sid description: REST surface for v1-Trunks-Sid. operations: - method: GET name: fetchtrunk description: fetchtrunk call: trunking-trunks.fetchtrunk with: Sid: rest.Sid outputParameters: - type: object mapping: $. - method: DELETE name: deletetrunk description: deletetrunk call: trunking-trunks.deletetrunk with: Sid: rest.Sid outputParameters: - type: object mapping: $. - method: POST name: updatetrunk description: updatetrunk call: trunking-trunks.updatetrunk with: Sid: rest.Sid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/credentiallists name: v1-trunks-trunksid-credentiallists description: REST surface for v1-Trunks-TrunkSid-CredentialLists. operations: - method: POST name: createcredentiallist description: createcredentiallist call: trunking-trunks.createcredentiallist with: TrunkSid: rest.TrunkSid body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listcredentiallist description: listcredentiallist call: trunking-trunks.listcredentiallist with: TrunkSid: rest.TrunkSid PageSize: rest.PageSize Page: rest.Page PageToken: rest.PageToken outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/credentiallists/{sid} name: v1-trunks-trunksid-credentiallists-sid description: REST surface for v1-Trunks-TrunkSid-CredentialLists-Sid. operations: - method: GET name: fetchcredentiallist description: fetchcredentiallist call: trunking-trunks.fetchcredentiallist with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - method: DELETE name: deletecredentiallist description: deletecredentiallist call: trunking-trunks.deletecredentiallist with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/ipaccesscontrollists name: v1-trunks-trunksid-ipaccesscontrollists description: REST surface for v1-Trunks-TrunkSid-IpAccessControlLists. operations: - method: POST name: createipaccesscontrollist description: Associate an IP Access Control List with a Trunk call: trunking-trunks.createipaccesscontrollist with: TrunkSid: rest.TrunkSid body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listipaccesscontrollist description: List all IP Access Control Lists for a Trunk call: trunking-trunks.listipaccesscontrollist with: TrunkSid: rest.TrunkSid PageSize: rest.PageSize Page: rest.Page PageToken: rest.PageToken outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/ipaccesscontrollists/{sid} name: v1-trunks-trunksid-ipaccesscontrollists-sid description: REST surface for v1-Trunks-TrunkSid-IpAccessControlLists-Sid. operations: - method: GET name: fetchipaccesscontrollist description: fetchipaccesscontrollist call: trunking-trunks.fetchipaccesscontrollist with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - method: DELETE name: deleteipaccesscontrollist description: Remove an associated IP Access Control List from a Trunk call: trunking-trunks.deleteipaccesscontrollist with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/originationurls name: v1-trunks-trunksid-originationurls description: REST surface for v1-Trunks-TrunkSid-OriginationUrls. operations: - method: POST name: createoriginationurl description: createoriginationurl call: trunking-trunks.createoriginationurl with: TrunkSid: rest.TrunkSid body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listoriginationurl description: listoriginationurl call: trunking-trunks.listoriginationurl with: TrunkSid: rest.TrunkSid PageSize: rest.PageSize Page: rest.Page PageToken: rest.PageToken outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/originationurls/{sid} name: v1-trunks-trunksid-originationurls-sid description: REST surface for v1-Trunks-TrunkSid-OriginationUrls-Sid. operations: - method: GET name: fetchoriginationurl description: fetchoriginationurl call: trunking-trunks.fetchoriginationurl with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - method: DELETE name: deleteoriginationurl description: deleteoriginationurl call: trunking-trunks.deleteoriginationurl with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - method: POST name: updateoriginationurl description: updateoriginationurl call: trunking-trunks.updateoriginationurl with: TrunkSid: rest.TrunkSid Sid: rest.Sid body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/phonenumbers name: v1-trunks-trunksid-phonenumbers description: REST surface for v1-Trunks-TrunkSid-PhoneNumbers. operations: - method: POST name: createphonenumber description: createphonenumber call: trunking-trunks.createphonenumber with: TrunkSid: rest.TrunkSid body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listphonenumber description: listphonenumber call: trunking-trunks.listphonenumber with: TrunkSid: rest.TrunkSid PageSize: rest.PageSize Page: rest.Page PageToken: rest.PageToken outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/phonenumbers/{sid} name: v1-trunks-trunksid-phonenumbers-sid description: REST surface for v1-Trunks-TrunkSid-PhoneNumbers-Sid. operations: - method: GET name: fetchphonenumber description: fetchphonenumber call: trunking-trunks.fetchphonenumber with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - method: DELETE name: deletephonenumber description: deletephonenumber call: trunking-trunks.deletephonenumber with: TrunkSid: rest.TrunkSid Sid: rest.Sid outputParameters: - type: object mapping: $. - path: /v1/v1/trunks/{trunksid}/recording name: v1-trunks-trunksid-recording description: REST surface for v1-Trunks-TrunkSid-Recording. operations: - method: GET name: fetchrecording description: fetchrecording call: trunking-trunks.fetchrecording with: TrunkSid: rest.TrunkSid outputParameters: - type: object mapping: $. - method: POST name: updaterecording description: updaterecording call: trunking-trunks.updaterecording with: TrunkSid: rest.TrunkSid body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: trunking-trunks-mcp port: 9090 transport: http description: MCP adapter for Twilio - Trunking — Trunks. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: createtrunk description: createtrunk hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.createtrunk with: body: tools.body outputParameters: - type: object mapping: $. - name: listtrunk description: listtrunk hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.listtrunk with: PageSize: tools.PageSize Page: tools.Page PageToken: tools.PageToken outputParameters: - type: object mapping: $. - name: fetchtrunk description: fetchtrunk hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.fetchtrunk with: Sid: tools.Sid outputParameters: - type: object mapping: $. - name: deletetrunk description: deletetrunk hints: readOnly: false destructive: true idempotent: true call: trunking-trunks.deletetrunk with: Sid: tools.Sid outputParameters: - type: object mapping: $. - name: updatetrunk description: updatetrunk hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.updatetrunk with: Sid: tools.Sid body: tools.body outputParameters: - type: object mapping: $. - name: createcredentiallist description: createcredentiallist hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.createcredentiallist with: TrunkSid: tools.TrunkSid body: tools.body outputParameters: - type: object mapping: $. - name: listcredentiallist description: listcredentiallist hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.listcredentiallist with: TrunkSid: tools.TrunkSid PageSize: tools.PageSize Page: tools.Page PageToken: tools.PageToken outputParameters: - type: object mapping: $. - name: fetchcredentiallist description: fetchcredentiallist hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.fetchcredentiallist with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: deletecredentiallist description: deletecredentiallist hints: readOnly: false destructive: true idempotent: true call: trunking-trunks.deletecredentiallist with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: associate-ip-access-control-list description: Associate an IP Access Control List with a Trunk hints: readOnly: true destructive: false idempotent: false call: trunking-trunks.createipaccesscontrollist with: TrunkSid: tools.TrunkSid body: tools.body outputParameters: - type: object mapping: $. - name: list-all-ip-access-control description: List all IP Access Control Lists for a Trunk hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.listipaccesscontrollist with: TrunkSid: tools.TrunkSid PageSize: tools.PageSize Page: tools.Page PageToken: tools.PageToken outputParameters: - type: object mapping: $. - name: fetchipaccesscontrollist description: fetchipaccesscontrollist hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.fetchipaccesscontrollist with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: remove-associated-ip-access-control description: Remove an associated IP Access Control List from a Trunk hints: readOnly: false destructive: true idempotent: true call: trunking-trunks.deleteipaccesscontrollist with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: createoriginationurl description: createoriginationurl hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.createoriginationurl with: TrunkSid: tools.TrunkSid body: tools.body outputParameters: - type: object mapping: $. - name: listoriginationurl description: listoriginationurl hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.listoriginationurl with: TrunkSid: tools.TrunkSid PageSize: tools.PageSize Page: tools.Page PageToken: tools.PageToken outputParameters: - type: object mapping: $. - name: fetchoriginationurl description: fetchoriginationurl hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.fetchoriginationurl with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: deleteoriginationurl description: deleteoriginationurl hints: readOnly: false destructive: true idempotent: true call: trunking-trunks.deleteoriginationurl with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: updateoriginationurl description: updateoriginationurl hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.updateoriginationurl with: TrunkSid: tools.TrunkSid Sid: tools.Sid body: tools.body outputParameters: - type: object mapping: $. - name: createphonenumber description: createphonenumber hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.createphonenumber with: TrunkSid: tools.TrunkSid body: tools.body outputParameters: - type: object mapping: $. - name: listphonenumber description: listphonenumber hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.listphonenumber with: TrunkSid: tools.TrunkSid PageSize: tools.PageSize Page: tools.Page PageToken: tools.PageToken outputParameters: - type: object mapping: $. - name: fetchphonenumber description: fetchphonenumber hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.fetchphonenumber with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: deletephonenumber description: deletephonenumber hints: readOnly: false destructive: true idempotent: true call: trunking-trunks.deletephonenumber with: TrunkSid: tools.TrunkSid Sid: tools.Sid outputParameters: - type: object mapping: $. - name: fetchrecording description: fetchrecording hints: readOnly: true destructive: false idempotent: true call: trunking-trunks.fetchrecording with: TrunkSid: tools.TrunkSid outputParameters: - type: object mapping: $. - name: updaterecording description: updaterecording hints: readOnly: false destructive: false idempotent: false call: trunking-trunks.updaterecording with: TrunkSid: tools.TrunkSid body: tools.body outputParameters: - type: object mapping: $.