naftiko: 1.0.0-alpha2 info: label: Webex Cloud Calling — PSTN description: 'Webex Cloud Calling — PSTN. 7 operations. Lead operation: Setup PSTN Connection for a Location. Self-contained Naftiko capability covering one Webex business surface.' tags: - Webex - PSTN created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WEBEX_API_KEY: WEBEX_API_KEY capability: consumes: - type: http namespace: cloud-calling-pstn baseUri: '' description: Webex Cloud Calling — PSTN business capability. Self-contained, no shared references. resources: - name: telephony-pstn-locations-locationId-connection path: /telephony/pstn/locations/{locationId}/connection operations: - name: setuppstnconnectionforalocation method: PUT description: Setup PSTN Connection for a Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: path type: string description: Setup PSTN location connection options for this location. required: true - name: orgId in: query type: string description: Setup PSTN location connection for this organization. - name: body in: body type: object description: Request body (JSON). required: false - name: retrievepstnconnectionforalocation method: GET description: Retrieve PSTN Connection for a Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: path type: string description: Retrieve PSTN location connection details for this location. required: true - name: orgId in: query type: string description: Retrieve PSTN location connection details for this organization. - name: telephony-pstn-locations-locationId-connectionOptions path: /telephony/pstn/locations/{locationId}/connectionOptions operations: - name: retrievepstnconnectionoptionsforalocation method: GET description: Retrieve PSTN Connection Options for a Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: path type: string description: Return the list of List PSTN location connection options for this location. required: true - name: orgId in: query type: string description: List PSTN location connection options for this organization. - name: serviceTypes in: query type: array description: Use the `serviceTypes` parameter to fetch connections for the following services - name: telephony-pstn-locations-locationId-emergencyAddress path: /telephony/pstn/locations/{locationId}/emergencyAddress operations: - name: addemergencyaddresstolocation method: POST description: Add an Emergency Address to a Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: path type: string description: Location to which the emergency address will be added. required: true - name: orgId in: query type: string description: Adding emergency address for a location in this organization. - name: body in: body type: object description: Request body (JSON). required: true - name: telephony-pstn-locations-locationId-emergencyAddress-lookup path: /telephony/pstn/locations/{locationId}/emergencyAddress/lookup operations: - name: emergencyaddresslookup method: POST description: Emergency Address Lookup to Verify if Address is Valid outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: path type: string description: Emergency address lookup for this location. required: true - name: orgId in: query type: string description: Emergency address lookup for this organization. - name: body in: body type: object description: Request body (JSON). required: true - name: telephony-pstn-locations-locationId-emergencyAddresses-addressId path: /telephony/pstn/locations/{locationId}/emergencyAddresses/{addressId} operations: - name: updateemergencyaddressoflocation method: PUT description: Update the Emergency Address of a Location outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: locationId in: path type: string description: Location for which the emergency address will be updated. required: true - name: addressId in: path type: string description: Unique identifier for the emergency address that will be updated. required: true - name: orgId in: query type: string description: Updating the emergency address of a location in this organization. - name: body in: body type: object description: Request body (JSON). required: true - name: telephony-pstn-numbers-phoneNumber-emergencyAddress path: /telephony/pstn/numbers/{phoneNumber}/emergencyAddress operations: - name: updateemergencyaddressforphonenumber method: PUT description: Update the Emergency Address for a Phone Number outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: phoneNumber in: path type: string description: Update the emergency address for this phone number. required: true - name: orgId in: query type: string description: Update the emergency address of phone number in this organization. - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.WEBEX_API_KEY}}' exposes: - type: rest namespace: cloud-calling-pstn-rest port: 8080 description: REST adapter for Webex Cloud Calling — PSTN. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/telephony/pstn/locations/{locationid}/connection name: telephony-pstn-locations-locationid-connection description: REST surface for telephony-pstn-locations-locationId-connection. operations: - method: PUT name: setuppstnconnectionforalocation description: Setup PSTN Connection for a Location call: cloud-calling-pstn.setuppstnconnectionforalocation with: locationId: rest.locationId orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: retrievepstnconnectionforalocation description: Retrieve PSTN Connection for a Location call: cloud-calling-pstn.retrievepstnconnectionforalocation with: locationId: rest.locationId orgId: rest.orgId outputParameters: - type: object mapping: $. - path: /v1/telephony/pstn/locations/{locationid}/connectionoptions name: telephony-pstn-locations-locationid-connectionoptions description: REST surface for telephony-pstn-locations-locationId-connectionOptions. operations: - method: GET name: retrievepstnconnectionoptionsforalocation description: Retrieve PSTN Connection Options for a Location call: cloud-calling-pstn.retrievepstnconnectionoptionsforalocation with: locationId: rest.locationId orgId: rest.orgId serviceTypes: rest.serviceTypes outputParameters: - type: object mapping: $. - path: /v1/telephony/pstn/locations/{locationid}/emergencyaddress name: telephony-pstn-locations-locationid-emergencyaddress description: REST surface for telephony-pstn-locations-locationId-emergencyAddress. operations: - method: POST name: addemergencyaddresstolocation description: Add an Emergency Address to a Location call: cloud-calling-pstn.addemergencyaddresstolocation with: locationId: rest.locationId orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/telephony/pstn/locations/{locationid}/emergencyaddress/lookup name: telephony-pstn-locations-locationid-emergencyaddress-lookup description: REST surface for telephony-pstn-locations-locationId-emergencyAddress-lookup. operations: - method: POST name: emergencyaddresslookup description: Emergency Address Lookup to Verify if Address is Valid call: cloud-calling-pstn.emergencyaddresslookup with: locationId: rest.locationId orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/telephony/pstn/locations/{locationid}/emergencyaddresses/{addressid} name: telephony-pstn-locations-locationid-emergencyaddresses-addressid description: REST surface for telephony-pstn-locations-locationId-emergencyAddresses-addressId. operations: - method: PUT name: updateemergencyaddressoflocation description: Update the Emergency Address of a Location call: cloud-calling-pstn.updateemergencyaddressoflocation with: locationId: rest.locationId addressId: rest.addressId orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/telephony/pstn/numbers/{phonenumber}/emergencyaddress name: telephony-pstn-numbers-phonenumber-emergencyaddress description: REST surface for telephony-pstn-numbers-phoneNumber-emergencyAddress. operations: - method: PUT name: updateemergencyaddressforphonenumber description: Update the Emergency Address for a Phone Number call: cloud-calling-pstn.updateemergencyaddressforphonenumber with: phoneNumber: rest.phoneNumber orgId: rest.orgId body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: cloud-calling-pstn-mcp port: 9090 transport: http description: MCP adapter for Webex Cloud Calling — PSTN. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: setup-pstn-connection-location description: Setup PSTN Connection for a Location hints: readOnly: false destructive: false idempotent: true call: cloud-calling-pstn.setuppstnconnectionforalocation with: locationId: tools.locationId orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-pstn-connection-location description: Retrieve PSTN Connection for a Location hints: readOnly: true destructive: false idempotent: true call: cloud-calling-pstn.retrievepstnconnectionforalocation with: locationId: tools.locationId orgId: tools.orgId outputParameters: - type: object mapping: $. - name: retrieve-pstn-connection-options-location description: Retrieve PSTN Connection Options for a Location hints: readOnly: true destructive: false idempotent: true call: cloud-calling-pstn.retrievepstnconnectionoptionsforalocation with: locationId: tools.locationId orgId: tools.orgId serviceTypes: tools.serviceTypes outputParameters: - type: object mapping: $. - name: add-emergency-address-location description: Add an Emergency Address to a Location hints: readOnly: false destructive: false idempotent: false call: cloud-calling-pstn.addemergencyaddresstolocation with: locationId: tools.locationId orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: emergency-address-lookup-verify-if description: Emergency Address Lookup to Verify if Address is Valid hints: readOnly: true destructive: false idempotent: false call: cloud-calling-pstn.emergencyaddresslookup with: locationId: tools.locationId orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: update-emergency-address-location description: Update the Emergency Address of a Location hints: readOnly: false destructive: false idempotent: true call: cloud-calling-pstn.updateemergencyaddressoflocation with: locationId: tools.locationId addressId: tools.addressId orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $. - name: update-emergency-address-phone-number description: Update the Emergency Address for a Phone Number hints: readOnly: false destructive: false idempotent: true call: cloud-calling-pstn.updateemergencyaddressforphonenumber with: phoneNumber: tools.phoneNumber orgId: tools.orgId body: tools.body outputParameters: - type: object mapping: $.