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: