diff --git a/api/signalwire-rest/fabric-api/_spec_.yaml b/api/signalwire-rest/fabric-api/_spec_.yaml
index 39b1c93..52b4640 100644
--- a/api/signalwire-rest/fabric-api/_spec_.yaml
+++ b/api/signalwire-rest/fabric-api/_spec_.yaml
@@ -110,6 +110,20 @@ components:
description: Unique ID of a Subscriber.
schema:
$ref: '#/components/schemas/uuid'
+ CxmlApplicationID:
+ name: id
+ in: path
+ required: true
+ description: Unique ID of a cXML Application.
+ schema:
+ $ref: '#/components/schemas/uuid'
+ CxmlApplicationIDPath:
+ name: cxml_application_id
+ in: path
+ required: true
+ description: Unique ID of a cXML Application.
+ schema:
+ $ref: '#/components/schemas/uuid'
schemas:
AIAgent:
@@ -3301,6 +3315,358 @@ components:
message: Ciphers are invalid
attribute: ciphers
url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter
+
+ CxmlApplication:
+ type: object
+ required:
+ - id
+ - name
+ - handle_calls_using
+ - call_handler_url
+ - call_handler_method
+ - call_handler_fallback_url
+ - call_handler_fallback_method
+ - call_status_callback_url
+ - call_status_callback_method
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54
+ description: Unique ID of the cXML Application.
+ name:
+ type: string
+ example: My cXML Application
+ description: Name of the cXML Application.
+ handle_calls_using:
+ allOf:
+ - $ref: '#/components/schemas/HandleCallsUsing'
+ example: script
+ description: Indicates whether the call will be handled by a script or an external URL.
+ call_handler_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler URL
+ call_handler_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler URL method
+ call_handler_fallback_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler callback URL.
+ call_handler_fallback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler fallback method.
+ call_status_callback_url:
+ type: string
+ example: https://callback.com
+ description: Call status callback URL
+ call_status_callback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: POST
+ description: Call status callback method.
+ HandleCallsUsing:
+ type: string
+ enum:
+ - script
+ - external_url
+ CxmlApplicationAddress:
+ type: object
+ required:
+ - id
+ - resource_id
+ - name
+ - display_name
+ - type
+ - cover_url
+ - preview_url
+ - channel
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: 691af061-cd86-4893-a605-173f47afc4c2
+ description: Unique ID of the Fabric Address.
+ resource_id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: 691af061-cd86-4893-a605-173f47afc4c2
+ description: Fabric resource ID that the Fabric Address belongs to.
+ name:
+ type: string
+ example: justice-league
+ description: Name of the Fabric Address.
+ display_name:
+ type: string
+ example: Justice League
+ description: Display name of the Fabric Address.
+ type:
+ allOf:
+ - $ref: '#/components/schemas/DisplayTypes'
+ example: app
+ description: Type of the Fabric Address.
+ cover_url:
+ type: string
+ example: https://coverurl.com
+ description: Cover url of the Fabric Address.
+ preview_url:
+ type: string
+ example: https://previewurl.com
+ description: Preview url of the Fabric Address.
+ channel:
+ allOf:
+ - $ref: '#/components/schemas/AddressChannel'
+ description: Channels of the Fabric Address.
+ CxmlApplicationAddressListResponse:
+ type: object
+ required:
+ - data
+ - links
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CxmlApplicationAddress'
+ links:
+ $ref: '#/components/schemas/CxmlApplicationAddressPaginationResponse'
+ CxmlApplicationAddressPaginationResponse:
+ type: object
+ required:
+ - self
+ - first
+ - next
+ properties:
+ self:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50
+ description: Link of the current page
+ first:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50
+ description: Link to the first page
+ next:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca
+ description: Link to the next page
+ CxmlApplicationCreateRequest:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ example: My cXML Application
+ description: Name of the cXML Application.
+ handle_calls_using:
+ allOf:
+ - $ref: '#/components/schemas/HandleCallsUsing'
+ example: script
+ description: Indicates whether the call will be handled by a script or an external URL.
+ call_handler_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler URL
+ call_handler_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler URL method
+ default: POST
+ call_handler_fallback_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler callback URL.
+ call_handler_fallback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler fallback method.
+ default: POST
+ call_status_callback_url:
+ type: string
+ example: https://callback.com
+ description: Call status callback URL
+ call_status_callback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call status callback method.
+ default: POST
+ call_handler_script:
+ type: string
+ example: |-
+
+
+ https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3
+
+ description: Script to handle to call.
+ CxmlApplicationCreateStatusCode422:
+ type: object
+ required:
+ - errors
+ properties:
+ errors:
+ type: array
+ items:
+ $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error'
+ example:
+ errors:
+ - type: validation_error
+ code: missing_required_parameter
+ message: Name is required
+ attribute: name
+ url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter
+ CxmlApplicationListResponse:
+ type: object
+ required:
+ - data
+ - links
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ links:
+ $ref: '#/components/schemas/CxmlApplicationPaginationResponse'
+ CxmlApplicationPaginationResponse:
+ type: object
+ required:
+ - self
+ - first
+ - next
+ properties:
+ self:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=0&page_size=50
+ description: Link of the current page
+ first:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=0&page_size=50
+ description: Link to the first page
+ next:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca
+ description: Link to the next page
+ CxmlApplicationResponse:
+ type: object
+ required:
+ - id
+ - project_id
+ - display_name
+ - type
+ - created_at
+ - updated_at
+ - cxml_application
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54
+ description: Unique ID of the cXML Application.
+ project_id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: 99151cf8-9548-4860-ba70-a8de824f3312
+ description: Unique ID of the Project.
+ display_name:
+ type: string
+ example: Booking Assistant
+ description: Display name of the cXML Application Fabric Resource
+ type:
+ type: string
+ example: cxml_application
+ description: Type of the Fabric Resource
+ created_at:
+ type: string
+ format: date-time
+ example: 2024-10-17T14:14:53Z
+ description: Date and time when the resource was created.
+ updated_at:
+ type: string
+ format: date-time
+ example: 2024-10-17T14:14:53Z
+ description: Date and time when the resource was updated.
+ cxml_application:
+ allOf:
+ - $ref: '#/components/schemas/CxmlApplication'
+ description: cXML Application data.
+ CxmlApplicationUpdateRequest:
+ type: object
+ properties:
+ name:
+ type: string
+ example: My cXML Application
+ description: Name of the cXML Application.
+ handle_calls_using:
+ allOf:
+ - $ref: '#/components/schemas/HandleCallsUsing'
+ example: script
+ description: Indicates whether the call will be handled by a script or an external URL.
+ call_handler_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler URL
+ call_handler_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler URL method
+ default: POST
+ call_handler_fallback_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler callback URL.
+ call_handler_fallback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler fallback method.
+ default: POST
+ call_status_callback_url:
+ type: string
+ example: https://callback.com
+ description: Call status callback URL
+ call_status_callback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call status callback method.
+ default: POST
+ call_handler_script:
+ type: string
+ example: |-
+
+
+ https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3
+
+ description: Script to handle to call.
+ CxmlApplicationUpdateStatusCode422:
+ type: object
+ required:
+ - errors
+ properties:
+ errors:
+ type: array
+ items:
+ $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error'
+ example:
+ errors:
+ - type: validation_error
+ code: missing_required_parameter
+ message: Name is required
+ attribute: name
+ url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter
uuid:
type: string
format: uuid
@@ -3407,11 +3773,11 @@ components:
tags:
- name: AI Agents
- name: Call Flows
- - name: cXML Applications
+ - name: cXML Application
- name: Dialogflow Agents
- name: External LAML Handler
- name: External SWML Handler
- - name: Fabric Addresses
+ - name: Fabric Address
- name: FreeSWITCH Connectors
- name: LAML Applications
- name: LAML Bins
@@ -3682,7 +4048,7 @@ paths:
summary: List Fabric Addresses
description: |-
A list of Fabric Addresses. This endpoint uses the bearer token authentication method with the SAT (Subscriber Access Token) wich can be
- generated using the [Create Subscriber Token endpoint](/rest/signalwire-rest/endpoints/fabric/subscriber-tokens-create).
+ generated using the [Create Subscriber Token endpoint](/rest/signalwire-rest/endpoints/fabric/subscriber-tokens-create).
parameters: []
responses:
'200':
@@ -10656,646 +11022,213 @@ paths:
responses:
'204':
description: No content
- /resources/cxml_applications/{id}/addresses:
+ /resources/cxml_applications:
get:
- tags:
- - cXML Applications
- summary: List cXML Application Addresses
- description: |
- Returns a list of cXML Application addresses.
- operationId: listCxmlApplicationAddresses
- parameters:
- - name: id
- in: path
- required: true
- description: The ID of the cXML Application
- schema:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
+ operationId: CxmlApplications_list
+ summary: List cXML Applications
+ description: A list of cXML Applications
+ parameters: []
responses:
'200':
- description: A list of cXML Application addresses
+ description: The request has succeeded.
content:
application/json:
schema:
- type: object
- properties:
- links:
- type: object
- properties:
- self:
- type: string
- format: uri
- example: >-
- https://{space_name}.signalwire.com/api/fabric/resources/016e5773-c197-4446-bcc2-9c48f14e2d0a/addresses?page_size=50
- first:
- type: string
- format: uri
- example: >-
- https://{space_name}.signalwire.com/api/fabric/resources/016e5773-c197-4446-bcc2-9c48f14e2d0a/addresses?page_size=50
- next:
- type: string
- format: uri
- example: >-
- https://{space_name}.signalwire.com/api/fabric/resources/016e5773-c197-4446-bcc2-9c48f14e2d0a/addresses?page_number=1&page_size=50&page_token=PA6581c1fa-d985-4c8f-b53e-2fee11b579ad
- prev:
- type: string
- format: uri
- example: >-
- https://{space_name}.signalwire.com/api/fabric/resources/016e5773-c197-4446-bcc2-9c48f14e2d0a/addresses?page_number=0&page_size=50&page_token=PA6581c1fa-d985-4c8f-b53e-2fee11b579ad
- data:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- resource_id:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- name:
- type: string
- example: reception
- display_name:
- type: string
- example: Reception
- type:
- type: string
- example: room
- cover_url:
- type: string
- format: uri
- example: https://example.com/cover.jpg
- preview_url:
- type: string
- format: uri
- example: https://example.com/preview.jpg
- channels:
- type: object
- properties:
- video:
- type: string
- format: uri
- example: /public/reception?channel=video
- audio:
- type: string
- format: uri
- example: /public/reception?channel=audio
- messaging:
- type: string
- format: uri
- example: /public/reception?channel=messaging
- /resources/cxml_applications:
- get:
- tags:
- - cXML Applications
- summary: List cXML Applications
- operationId: listCxmlApplications
- responses:
- '200':
- description: A list of cXML Applications
+ $ref: '#/components/schemas/CxmlApplicationListResponse'
+ '401':
+ description: Access is unauthorized.
content:
application/json:
schema:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- project_id:
- type: string
- format: uuid
- example: 1313fe58-5e14-4c11-bbe7-6fdfa11fe780
- display_name:
- type: string
- example: Reception
- type:
- type: string
- example: cxml_application
- created_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- updated_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- cxml_application:
- allOf:
- - type: object
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier for the cXML Application
- - type: object
- properties:
- name:
- type: string
- example: Booking Assistant
- handle_calls_using:
- type: string
- example: script
- enum:
- - script
- - external_url
- call_handler_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_handler_fallback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_fallback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_status_callback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_status_callback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- post:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
tags:
- - cXML Applications
+ - cXML Application
+ post:
+ operationId: CxmlApplications_create
summary: Create cXML Application
- operationId: createCxmlApplication
- requestBody:
- required: true
- content:
- application/json:
- schema:
- allOf:
- - type: object
- properties:
- name:
- type: string
- example: Booking Assistant
- handle_calls_using:
- type: string
- example: script
- enum:
- - script
- - external_url
- call_handler_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_handler_fallback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_fallback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_status_callback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_status_callback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- - type: object
- properties:
- call_handler_script:
- type: string
- example: >-
-
+ description: Creates acXML Application
+ parameters: []
responses:
- '200':
- description: A cXML Application
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
content:
application/json:
schema:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- project_id:
- type: string
- format: uuid
- example: 1313fe58-5e14-4c11-bbe7-6fdfa11fe780
- display_name:
- type: string
- example: Reception
- type:
- type: string
- example: cxml_application
- created_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- updated_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- cxml_application:
- allOf:
- - type: object
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier for the cXML Application
- - type: object
- properties:
- name:
- type: string
- example: Booking Assistant
- handle_calls_using:
- type: string
- example: script
- enum:
- - script
- - external_url
- call_handler_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_handler_fallback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_fallback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_status_callback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_status_callback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- '422':
- description: Unprocessable Entity
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ '401':
+ description: Access is unauthorized.
content:
application/json:
schema:
- type: object
- properties:
- type:
- type: string
- code:
- type: string
- message:
- type: string
- attribute:
- type: string
- url:
- type: string
- format: uri
- required:
- - type
- - code
- - message
- - url
- example:
- type: validation_error
- code: invalid_parameter
- message: Name must be present
- attribute: name
- url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter
- /resources/cxml_applications/{id}:
- get:
- tags:
- - cXML Applications
- summary: Get cXML Application
- description: |
- Returns a cXML Application by ID.
- operationId: getCxmlApplication
- parameters:
- - name: id
- in: path
- required: true
- description: The ID of the cXML Application
- schema:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- responses:
- '200':
- description: A cXML Application
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
content:
application/json:
schema:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- project_id:
- type: string
- format: uuid
- example: 1313fe58-5e14-4c11-bbe7-6fdfa11fe780
- display_name:
- type: string
- example: Reception
- type:
- type: string
- example: cxml_application
- created_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- updated_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- cxml_application:
- allOf:
- - type: object
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier for the cXML Application
- - type: object
- properties:
- name:
- type: string
- example: Booking Assistant
- handle_calls_using:
- type: string
- example: script
- enum:
- - script
- - external_url
- call_handler_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_handler_fallback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_fallback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_status_callback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_status_callback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- put:
+ type: string
+ enum:
+ - Not Found
+ '422':
+ description: Client error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationCreateStatusCode422'
tags:
- - cXML Applications
- summary: Update cXML Application
- description: |
- Updates a cXML Application by ID.
- operationId: updateCxmlApplication
- parameters:
- - name: id
- in: path
- required: true
- description: The ID of the cXML Application
- schema:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
+ - cXML Application
requestBody:
required: true
content:
application/json:
schema:
- allOf:
- - type: object
- properties:
- name:
- type: string
- example: Booking Assistant
- handle_calls_using:
- type: string
- example: script
- enum:
- - script
- - external_url
- call_handler_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_handler_fallback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_fallback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_status_callback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_status_callback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- - type: object
- properties:
- call_handler_script:
- type: string
- example: >-
-
+ $ref: '#/components/schemas/CxmlApplicationCreateRequest'
+ /resources/cxml_applications/{cxml_application_id}/addresses:
+ get:
+ operationId: CxmlApplicationAddresses_list
+ summary: List cXML Application Addresses
+ description: A list of cXML Application Addresses
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationIDPath'
responses:
'200':
- description: A cXML Application
+ description: The request has succeeded.
content:
application/json:
schema:
- type: object
- properties:
- id:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
- project_id:
- type: string
- format: uuid
- example: 1313fe58-5e14-4c11-bbe7-6fdfa11fe780
- display_name:
- type: string
- example: Reception
- type:
- type: string
- example: cxml_application
- created_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- updated_at:
- type: string
- format: date-time
- example: '2024-01-02T00:00:00Z'
- cxml_application:
- allOf:
- - type: object
- properties:
- id:
- type: string
- format: uuid
- description: A unique identifier for the cXML Application
- - type: object
- properties:
- name:
- type: string
- example: Booking Assistant
- handle_calls_using:
- type: string
- example: script
- enum:
- - script
- - external_url
- call_handler_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_handler_fallback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_handler_fallback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
- call_status_callback_url:
- type: string
- format: uri
- example: https://example.com/cxml
- call_status_callback_method:
- type: string
- example: POST
- enum:
- - POST
- - GET
+ $ref: '#/components/schemas/CxmlApplicationAddressListResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
+ /resources/cxml_applications/{id}:
+ get:
+ operationId: CxmlApplications_read
+ summary: Get cXML Application
+ description: Returns an cXML Application by ID
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationID'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
+ patch:
+ operationId: CxmlApplications_update
+ summary: Update cXML Application
+ description: Updates a cXML Application by ID
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationID'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
'422':
- description: Unprocessable Entity
+ description: Client error
content:
application/json:
schema:
- type: object
- properties:
- type:
- type: string
- code:
- type: string
- message:
- type: string
- attribute:
- type: string
- url:
- type: string
- format: uri
- required:
- - type
- - code
- - message
- - url
- example:
- type: validation_error
- code: invalid_parameter
- message: Name must be present
- attribute: name
- url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter
- delete:
+ $ref: '#/components/schemas/CxmlApplicationUpdateStatusCode422'
tags:
- - cXML Applications
+ - cXML Application
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationUpdateRequest'
+ delete:
+ operationId: CxmlApplications_delete
summary: Delete cXML Application
- description: |
- Deletes a cXML Application by ID.
- operationId: deleteCxmlApplication
+ description: Deletes a cXML Application by ID
parameters:
- - name: id
- in: path
- required: true
- description: The ID of the cXML Application
- schema:
- type: string
- format: uuid
- example: 993ed018-9e79-4e50-b97b-984bd5534095
+ - $ref: '#/components/parameters/CxmlApplicationID'
responses:
'204':
- description: No content
+ description: 'There is no content to send for this request, but the headers may be useful. '
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
/resources/{id}/addresses:
get:
tags:
diff --git a/api/signalwire-rest/fabric-api/cxml-application-addresses/main.tsp b/api/signalwire-rest/fabric-api/cxml-application-addresses/main.tsp
new file mode 100644
index 0000000..f52fd1a
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application-addresses/main.tsp
@@ -0,0 +1,23 @@
+import "@typespec/http";
+import "@typespec/openapi";
+import "./models/core.tsp";
+import "./models/responses.tsp";
+import "../../types";
+
+using TypeSpec.Http;
+using Types.StatusCodes;
+
+@route("/resources/cxml_applications/{cxml_application_id}/addresses")
+namespace FabricAPI.CxmlApplicationAddresses {
+ @tag("cXML Application")
+ @friendlyName("cXML Applications")
+ interface CxmlApplicationAddresses {
+ @summary("List cXML Application Addresses")
+ @doc("A list of cXML Application Addresses")
+ list(...CxmlApplicationIDPath):
+ CxmlApplicationAddressListResponse |
+ StatusCode401 |
+ StatusCode404;
+ }
+}
+
diff --git a/api/signalwire-rest/fabric-api/cxml-application-addresses/models/core.tsp b/api/signalwire-rest/fabric-api/cxml-application-addresses/models/core.tsp
new file mode 100644
index 0000000..0ec3a24
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application-addresses/models/core.tsp
@@ -0,0 +1,45 @@
+import "@typespec/openapi3";
+import "./enums.tsp";
+import "../../../types";
+
+using TypeSpec.Http;
+using TypeSpec.OpenAPI;
+
+model CxmlApplicationIDPath {
+ @doc("Unique ID of a cXML Application.")
+ @path
+ cxml_application_id: uuid
+}
+
+model CxmlApplicationAddress {
+ @doc("Unique ID of the Fabric Address.")
+ @example("691af061-cd86-4893-a605-173f47afc4c2")
+ id: uuid;
+
+ @doc("Fabric resource ID that the Fabric Address belongs to.")
+ @example("691af061-cd86-4893-a605-173f47afc4c2")
+ resource_id: uuid;
+
+ @doc("Name of the Fabric Address.")
+ @example("justice-league")
+ name: string;
+
+ @doc("Display name of the Fabric Address.")
+ @example("Justice League")
+ display_name: string;
+
+ @doc("Type of the Fabric Address.")
+ @example(DisplayTypes.App)
+ type: DisplayTypes;
+
+ @doc("Cover url of the Fabric Address.")
+ @example("https://coverurl.com")
+ cover_url: string;
+
+ @doc("Preview url of the Fabric Address.")
+ @example("https://previewurl.com")
+ preview_url: string;
+
+ @doc("Channels of the Fabric Address.")
+ channel: AddressChannel;
+}
diff --git a/api/signalwire-rest/fabric-api/cxml-application-addresses/models/enums.tsp b/api/signalwire-rest/fabric-api/cxml-application-addresses/models/enums.tsp
new file mode 100644
index 0000000..e7475bb
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application-addresses/models/enums.tsp
@@ -0,0 +1 @@
+import "./../../enums.tsp";
diff --git a/api/signalwire-rest/fabric-api/cxml-application-addresses/models/responses.tsp b/api/signalwire-rest/fabric-api/cxml-application-addresses/models/responses.tsp
new file mode 100644
index 0000000..f1c0d0d
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application-addresses/models/responses.tsp
@@ -0,0 +1,18 @@
+model CxmlApplicationAddressListResponse {
+ data: CxmlApplicationAddress[];
+ links: CxmlApplicationAddressPaginationResponse;
+}
+
+model CxmlApplicationAddressPaginationResponse {
+ @doc("Link of the current page")
+ @example("https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50")
+ self: url;
+
+ @doc("Link to the first page")
+ @example("https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50")
+ first: url;
+
+ @doc("Link to the next page")
+ @example("https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca")
+ next: url;
+}
diff --git a/api/signalwire-rest/fabric-api/cxml-application/main.tsp b/api/signalwire-rest/fabric-api/cxml-application/main.tsp
new file mode 100644
index 0000000..82af1ab
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application/main.tsp
@@ -0,0 +1,58 @@
+import "@typespec/http";
+import "@typespec/openapi";
+import "./models/core.tsp";
+import "./models/requests.tsp";
+import "./models/responses.tsp";
+import "./models/errors.tsp";
+import "../../types";
+
+using TypeSpec.Http;
+using Types.StatusCodes;
+
+@route("/resources/cxml_applications")
+namespace FabricAPI.CxmlApplications {
+ @tag("cXML Application")
+ @friendlyName("cXML Applications")
+ interface CxmlApplications {
+ @summary("List cXML Applications")
+ @doc("A list of cXML Applications")
+ list():
+ CxmlApplicationListResponse |
+ StatusCode401 |
+ StatusCode404;
+
+ @summary("Get cXML Application")
+ @doc("Returns an cXML Application by ID")
+ read(...CxmlApplicationID): {
+ @statusCode statusCode: 200;
+ @body cxml_application: CxmlApplicationResponse;
+ } |
+ StatusCode401 |
+ StatusCode404;
+
+ @summary("Create cXML Application")
+ @doc("Creates acXML Application")
+ @post create(...CxmlApplicationCreateRequest):
+ { @statusCode statusCode: 201; @body cxml_application: CxmlApplicationResponse; } |
+ StatusCode401 |
+ StatusCode404 |
+ CxmlApplicationCreateStatusCode422;
+
+ @summary("Update cXML Application")
+ @doc("Updates a cXML Application by ID")
+ @patch update(...CxmlApplicationID, ...CxmlApplicationUpdateRequest): {
+ @statusCode statusCode: 200; @body cxml_application: CxmlApplicationResponse;
+ } |
+ StatusCode401 |
+ StatusCode404 |
+ CxmlApplicationUpdateStatusCode422;
+
+ @summary("Delete cXML Application")
+ @doc("Deletes a cXML Application by ID")
+ @delete delete(...CxmlApplicationID):
+ { @statusCode statusCode: 204; } |
+ StatusCode401 |
+ StatusCode404;
+ }
+}
+
diff --git a/api/signalwire-rest/fabric-api/cxml-application/models/core.tsp b/api/signalwire-rest/fabric-api/cxml-application/models/core.tsp
new file mode 100644
index 0000000..a2685ec
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application/models/core.tsp
@@ -0,0 +1,48 @@
+import "./enums.tsp";
+import "../../../types";
+
+using TypeSpec.Http;
+
+model CxmlApplicationID {
+ @doc("Unique ID of a cXML Application.")
+ @path
+ id: uuid
+}
+
+model CxmlApplication {
+ @doc("Unique ID of the cXML Application.")
+ @example("a87db7ed-8ebe-42e4-829f-8ba5a4152f54")
+ id: uuid;
+
+ @doc("Name of the cXML Application.")
+ @example("My cXML Application")
+ name: string;
+
+ @doc("Indicates whether the call will be handled by a script or an external URL.")
+ @example(HandleCallsUsing.Script)
+ handle_calls_using: HandleCallsUsing;
+
+ @doc("Call handler URL")
+ @example("https://example.com/cxml")
+ call_handler_url: string;
+
+ @doc("Call handler URL method")
+ @example(UrlMethodType.Get)
+ call_handler_method: UrlMethodType;
+
+ @doc("Call handler callback URL.")
+ @example("https://example.com/cxml")
+ call_handler_fallback_url: string;
+
+ @doc("Call handler fallback method.")
+ @example(UrlMethodType.Get)
+ call_handler_fallback_method: UrlMethodType;
+
+ @doc("Call status callback URL")
+ @example("https://callback.com")
+ call_status_callback_url: string;
+
+ @doc("Call status callback method.")
+ @example(UrlMethodType.Post)
+ call_status_callback_method: UrlMethodType;
+}
diff --git a/api/signalwire-rest/fabric-api/cxml-application/models/enums.tsp b/api/signalwire-rest/fabric-api/cxml-application/models/enums.tsp
new file mode 100644
index 0000000..e7475bb
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application/models/enums.tsp
@@ -0,0 +1 @@
+import "./../../enums.tsp";
diff --git a/api/signalwire-rest/fabric-api/cxml-application/models/errors.tsp b/api/signalwire-rest/fabric-api/cxml-application/models/errors.tsp
new file mode 100644
index 0000000..6f57698
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application/models/errors.tsp
@@ -0,0 +1,16 @@
+import "../../../types/status-codes";
+
+using Types.StatusCodes;
+
+@example(#{
+ errors: #[#{
+ type: "validation_error",
+ code: "missing_required_parameter",
+ message: "Name is required",
+ attribute: "name",
+ url: "https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter"
+ }],
+ })
+ model CxmlApplicationCreateStatusCode422 is StatusCode422;
+
+ model CxmlApplicationUpdateStatusCode422 is CxmlApplicationCreateStatusCode422;
diff --git a/api/signalwire-rest/fabric-api/cxml-application/models/requests.tsp b/api/signalwire-rest/fabric-api/cxml-application/models/requests.tsp
new file mode 100644
index 0000000..e53c11e
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application/models/requests.tsp
@@ -0,0 +1,75 @@
+model CxmlApplicationCreateRequest {
+ @doc("Name of the cXML Application.")
+ @example("My cXML Application")
+ name: string;
+
+ @doc("Indicates whether the call will be handled by a script or an external URL.")
+ @example(HandleCallsUsing.Script)
+ handle_calls_using?: HandleCallsUsing;
+
+ @doc("Call handler URL")
+ @example("https://example.com/cxml")
+ call_handler_url?: string;
+
+ @doc("Call handler URL method")
+ @example(UrlMethodType.Get)
+ call_handler_method?: UrlMethodType = UrlMethodType.Post;
+
+ @doc("Call handler callback URL.")
+ @example("https://example.com/cxml")
+ call_handler_fallback_url?: string;
+
+ @doc("Call handler fallback method.")
+ @example(UrlMethodType.Get)
+ call_handler_fallback_method?: UrlMethodType = UrlMethodType.Post;
+
+ @doc("Call status callback URL")
+ @example("https://callback.com")
+ call_status_callback_url?: string;
+
+ @doc("Call status callback method.")
+ @example(UrlMethodType.Get)
+ call_status_callback_method?: UrlMethodType = UrlMethodType.Post;
+
+ @doc("Script to handle to call.")
+ @example("\n\n https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3\n")
+ call_handler_script?: string;
+}
+
+model CxmlApplicationUpdateRequest {
+ @doc("Name of the cXML Application.")
+ @example("My cXML Application")
+ name?: string;
+
+ @doc("Indicates whether the call will be handled by a script or an external URL.")
+ @example(HandleCallsUsing.Script)
+ handle_calls_using?: HandleCallsUsing;
+
+ @doc("Call handler URL")
+ @example("https://example.com/cxml")
+ call_handler_url?: string;
+
+ @doc("Call handler URL method")
+ @example(UrlMethodType.Get)
+ call_handler_method?: UrlMethodType = UrlMethodType.Post;
+
+ @doc("Call handler callback URL.")
+ @example("https://example.com/cxml")
+ call_handler_fallback_url?: string;
+
+ @doc("Call handler fallback method.")
+ @example(UrlMethodType.Get)
+ call_handler_fallback_method?: UrlMethodType = UrlMethodType.Post;
+
+ @doc("Call status callback URL")
+ @example("https://callback.com")
+ call_status_callback_url?: string;
+
+ @doc("Call status callback method.")
+ @example(UrlMethodType.Get)
+ call_status_callback_method?: UrlMethodType = UrlMethodType.Post;
+
+ @doc("Script to handle to call.")
+ @example("\n\n https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3\n")
+ call_handler_script?: string;
+}
diff --git a/api/signalwire-rest/fabric-api/cxml-application/models/responses.tsp b/api/signalwire-rest/fabric-api/cxml-application/models/responses.tsp
new file mode 100644
index 0000000..8a0ad5e
--- /dev/null
+++ b/api/signalwire-rest/fabric-api/cxml-application/models/responses.tsp
@@ -0,0 +1,47 @@
+
+model CxmlApplicationResponse {
+ @doc("Unique ID of the cXML Application.")
+ @example("a87db7ed-8ebe-42e4-829f-8ba5a4152f54")
+ id: uuid;
+
+ @doc("Unique ID of the Project.")
+ @example("99151cf8-9548-4860-ba70-a8de824f3312")
+ project_id: uuid;
+
+ @doc("Display name of the cXML Application Fabric Resource")
+ @example("Booking Assistant")
+ display_name: string;
+
+ @doc("Type of the Fabric Resource")
+ @example("cxml_application")
+ type: string;
+
+ @doc("Date and time when the resource was created.")
+ @example(utcDateTime.fromISO("2024-10-17T14:14:53Z"))
+ created_at: utcDateTime;
+
+ @doc("Date and time when the resource was updated.")
+ @example(utcDateTime.fromISO("2024-10-17T14:14:53Z"))
+ updated_at: utcDateTime;
+
+ @doc("cXML Application data.")
+ cxml_application: CxmlApplication;
+}
+model CxmlApplicationListResponse {
+ data: CxmlApplicationResponse[];
+ links: CxmlApplicationPaginationResponse;
+}
+
+model CxmlApplicationPaginationResponse {
+ @doc("Link of the current page")
+ @example("https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=0&page_size=50")
+ self: url;
+
+ @doc("Link to the first page")
+ @example("https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=0&page_size=50")
+ first: url;
+
+ @doc("Link to the next page")
+ @example("https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca")
+ next: url;
+}
diff --git a/api/signalwire-rest/fabric-api/enums.tsp b/api/signalwire-rest/fabric-api/enums.tsp
index aadd8e5..52b2144 100644
--- a/api/signalwire-rest/fabric-api/enums.tsp
+++ b/api/signalwire-rest/fabric-api/enums.tsp
@@ -36,6 +36,12 @@ enum UrlMethodType {
Post: "POST",
}
+@doc("Indicates whether the call will be handled by a script or an external url.")
+enum HandleCallsUsing {
+ Script: "script",
+ ExternalUrl: "external_url",
+}
+
union AddressChannel {
AudioChannel,
MessagingChannel,
diff --git a/api/signalwire-rest/fabric-api/main.tsp b/api/signalwire-rest/fabric-api/main.tsp
index 11e0d02..06f1f6b 100644
--- a/api/signalwire-rest/fabric-api/main.tsp
+++ b/api/signalwire-rest/fabric-api/main.tsp
@@ -10,6 +10,9 @@ import "./external-swml-handler";
import "./external-swml-handler-addresses";
import "./ai-agent";
import "./ai-agent-addresses";
+import "./cxml-application";
+import "./cxml-application-addresses";
+
using TypeSpec.Http;
using Types.StatusCodes;
diff --git a/api/signalwire-rest/fabric-api/tsp-output/@typespec/openapi3/openapi.yaml b/api/signalwire-rest/fabric-api/tsp-output/@typespec/openapi3/openapi.yaml
index edc973e..1cbdab6 100644
--- a/api/signalwire-rest/fabric-api/tsp-output/@typespec/openapi3/openapi.yaml
+++ b/api/signalwire-rest/fabric-api/tsp-output/@typespec/openapi3/openapi.yaml
@@ -10,6 +10,7 @@ tags:
- name: External LAML Handler
- name: External SWML Handler
- name: AI Agent
+ - name: cXML Application
paths:
/addresses:
get:
@@ -332,6 +333,213 @@ paths:
- Not Found
tags:
- AI Agent
+ /resources/cxml_applications:
+ get:
+ operationId: CxmlApplications_list
+ summary: List cXML Applications
+ description: A list of cXML Applications
+ parameters: []
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationListResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
+ post:
+ operationId: CxmlApplications_create
+ summary: Create cXML Application
+ description: Creates acXML Application
+ parameters: []
+ responses:
+ '201':
+ description: The request has succeeded and a new resource has been created as a result.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ '422':
+ description: Client error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationCreateStatusCode422'
+ tags:
+ - cXML Application
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationCreateRequest'
+ /resources/cxml_applications/{cxml_application_id}/addresses:
+ get:
+ operationId: CxmlApplicationAddresses_list
+ summary: List cXML Application Addresses
+ description: A list of cXML Application Addresses
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationIDPath'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationAddressListResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
+ /resources/cxml_applications/{id}:
+ get:
+ operationId: CxmlApplications_read
+ summary: Get cXML Application
+ description: Returns an cXML Application by ID
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationID'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
+ patch:
+ operationId: CxmlApplications_update
+ summary: Update cXML Application
+ description: Updates a cXML Application by ID
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationID'
+ responses:
+ '200':
+ description: The request has succeeded.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ '422':
+ description: Client error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationUpdateStatusCode422'
+ tags:
+ - cXML Application
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CxmlApplicationUpdateRequest'
+ delete:
+ operationId: CxmlApplications_delete
+ summary: Delete cXML Application
+ description: Deletes a cXML Application by ID
+ parameters:
+ - $ref: '#/components/parameters/CxmlApplicationID'
+ responses:
+ '204':
+ description: 'There is no content to send for this request, but the headers may be useful. '
+ '401':
+ description: Access is unauthorized.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Unauthorized
+ '404':
+ description: The server cannot find the requested resource.
+ content:
+ application/json:
+ schema:
+ type: string
+ enum:
+ - Not Found
+ tags:
+ - cXML Application
/resources/external_laml_handlers:
get:
operationId: ExternalLAMLHandlers_list
@@ -1219,6 +1427,20 @@ components:
description: Unique ID of an AI Agent.
schema:
$ref: '#/components/schemas/uuid'
+ CxmlApplicationID:
+ name: id
+ in: path
+ required: true
+ description: Unique ID of a cXML Application.
+ schema:
+ $ref: '#/components/schemas/uuid'
+ CxmlApplicationIDPath:
+ name: cxml_application_id
+ in: path
+ required: true
+ description: Unique ID of a cXML Application.
+ schema:
+ $ref: '#/components/schemas/uuid'
ExternalLAMLHandlerID:
name: id
in: path
@@ -2249,6 +2471,352 @@ components:
additionalProperties:
$ref: '#/components/schemas/ContextStepsUpdate'
title: contexts
+ CxmlApplication:
+ type: object
+ required:
+ - id
+ - name
+ - handle_calls_using
+ - call_handler_url
+ - call_handler_method
+ - call_handler_fallback_url
+ - call_handler_fallback_method
+ - call_status_callback_url
+ - call_status_callback_method
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54
+ description: Unique ID of the cXML Application.
+ name:
+ type: string
+ example: My cXML Application
+ description: Name of the cXML Application.
+ handle_calls_using:
+ allOf:
+ - $ref: '#/components/schemas/HandleCallsUsing'
+ example: script
+ description: Indicates whether the call will be handled by a script or an external URL.
+ call_handler_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler URL
+ call_handler_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler URL method
+ call_handler_fallback_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler callback URL.
+ call_handler_fallback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler fallback method.
+ call_status_callback_url:
+ type: string
+ example: https://callback.com
+ description: Call status callback URL
+ call_status_callback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: POST
+ description: Call status callback method.
+ CxmlApplicationAddress:
+ type: object
+ required:
+ - id
+ - resource_id
+ - name
+ - display_name
+ - type
+ - cover_url
+ - preview_url
+ - channel
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: 691af061-cd86-4893-a605-173f47afc4c2
+ description: Unique ID of the Fabric Address.
+ resource_id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: 691af061-cd86-4893-a605-173f47afc4c2
+ description: Fabric resource ID that the Fabric Address belongs to.
+ name:
+ type: string
+ example: justice-league
+ description: Name of the Fabric Address.
+ display_name:
+ type: string
+ example: Justice League
+ description: Display name of the Fabric Address.
+ type:
+ allOf:
+ - $ref: '#/components/schemas/DisplayTypes'
+ example: app
+ description: Type of the Fabric Address.
+ cover_url:
+ type: string
+ example: https://coverurl.com
+ description: Cover url of the Fabric Address.
+ preview_url:
+ type: string
+ example: https://previewurl.com
+ description: Preview url of the Fabric Address.
+ channel:
+ allOf:
+ - $ref: '#/components/schemas/AddressChannel'
+ description: Channels of the Fabric Address.
+ CxmlApplicationAddressListResponse:
+ type: object
+ required:
+ - data
+ - links
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CxmlApplicationAddress'
+ links:
+ $ref: '#/components/schemas/CxmlApplicationAddressPaginationResponse'
+ CxmlApplicationAddressPaginationResponse:
+ type: object
+ required:
+ - self
+ - first
+ - next
+ properties:
+ self:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50
+ description: Link of the current page
+ first:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50
+ description: Link to the first page
+ next:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applications/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca
+ description: Link to the next page
+ CxmlApplicationCreateRequest:
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ type: string
+ example: My cXML Application
+ description: Name of the cXML Application.
+ handle_calls_using:
+ allOf:
+ - $ref: '#/components/schemas/HandleCallsUsing'
+ example: script
+ description: Indicates whether the call will be handled by a script or an external URL.
+ call_handler_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler URL
+ call_handler_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler URL method
+ default: POST
+ call_handler_fallback_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler callback URL.
+ call_handler_fallback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler fallback method.
+ default: POST
+ call_status_callback_url:
+ type: string
+ example: https://callback.com
+ description: Call status callback URL
+ call_status_callback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call status callback method.
+ default: POST
+ call_handler_script:
+ type: string
+ example: |-
+
+
+ https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3
+
+ description: Script to handle to call.
+ CxmlApplicationCreateStatusCode422:
+ type: object
+ required:
+ - errors
+ properties:
+ errors:
+ type: array
+ items:
+ $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error'
+ example:
+ errors:
+ - type: validation_error
+ code: missing_required_parameter
+ message: Name is required
+ attribute: name
+ url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter
+ CxmlApplicationListResponse:
+ type: object
+ required:
+ - data
+ - links
+ properties:
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/CxmlApplicationResponse'
+ links:
+ $ref: '#/components/schemas/CxmlApplicationPaginationResponse'
+ CxmlApplicationPaginationResponse:
+ type: object
+ required:
+ - self
+ - first
+ - next
+ properties:
+ self:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=0&page_size=50
+ description: Link of the current page
+ first:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=0&page_size=50
+ description: Link to the first page
+ next:
+ type: string
+ format: uri
+ example: https://{space_name}.signalwire.com/api/fabric/resources/cxml_applicationis?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca
+ description: Link to the next page
+ CxmlApplicationResponse:
+ type: object
+ required:
+ - id
+ - project_id
+ - display_name
+ - type
+ - created_at
+ - updated_at
+ - cxml_application
+ properties:
+ id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54
+ description: Unique ID of the cXML Application.
+ project_id:
+ allOf:
+ - $ref: '#/components/schemas/uuid'
+ example: 99151cf8-9548-4860-ba70-a8de824f3312
+ description: Unique ID of the Project.
+ display_name:
+ type: string
+ example: Booking Assistant
+ description: Display name of the cXML Application Fabric Resource
+ type:
+ type: string
+ example: cxml_application
+ description: Type of the Fabric Resource
+ created_at:
+ type: string
+ format: date-time
+ example: 2024-10-17T14:14:53Z
+ description: Date and time when the resource was created.
+ updated_at:
+ type: string
+ format: date-time
+ example: 2024-10-17T14:14:53Z
+ description: Date and time when the resource was updated.
+ cxml_application:
+ allOf:
+ - $ref: '#/components/schemas/CxmlApplication'
+ description: cXML Application data.
+ CxmlApplicationUpdateRequest:
+ type: object
+ properties:
+ name:
+ type: string
+ example: My cXML Application
+ description: Name of the cXML Application.
+ handle_calls_using:
+ allOf:
+ - $ref: '#/components/schemas/HandleCallsUsing'
+ example: script
+ description: Indicates whether the call will be handled by a script or an external URL.
+ call_handler_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler URL
+ call_handler_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler URL method
+ default: POST
+ call_handler_fallback_url:
+ type: string
+ example: https://example.com/cxml
+ description: Call handler callback URL.
+ call_handler_fallback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call handler fallback method.
+ default: POST
+ call_status_callback_url:
+ type: string
+ example: https://callback.com
+ description: Call status callback URL
+ call_status_callback_method:
+ allOf:
+ - $ref: '#/components/schemas/UrlMethodType'
+ example: GET
+ description: Call status callback method.
+ default: POST
+ call_handler_script:
+ type: string
+ example: |-
+
+
+ https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3
+
+ description: Script to handle to call.
+ CxmlApplicationUpdateStatusCode422:
+ type: object
+ required:
+ - errors
+ properties:
+ errors:
+ type: array
+ items:
+ $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error'
+ example:
+ errors:
+ - type: validation_error
+ code: missing_required_parameter
+ message: Name is required
+ attribute: name
+ url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter
DataMap:
oneOf:
- $ref: '#/components/schemas/Output'
@@ -3056,6 +3624,12 @@ components:
message: The addresses must belong to the project
attribute: allowed_addresses
url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#must_belong_to_project
+ HandleCallsUsing:
+ type: string
+ enum:
+ - script
+ - external_url
+ description: Indicates whether the call will be handled by a script or an external url.
IntegerProperty:
type: object
required: