From 9e3cd2154db79ec61388881e0fd545c68c61b2c9 Mon Sep 17 00:00:00 2001 From: diego-signalwire Date: Tue, 1 Apr 2025 22:38:07 -0300 Subject: [PATCH 1/4] Add SIP endpoints documentation --- api/signalwire-rest/fabric-api/main.tsp | 1 + .../fabric-api/sip_gateways/main.tsp | 64 + .../fabric-api/sip_gateways/models/core.tsp | 56 + .../fabric-api/sip_gateways/models/errors.tsp | 15 + .../sip_gateways/models/requests.tsp | 23 + .../sip_gateways/models/responses.tsp | 89 ++ .../@typespec/openapi3/openapi.yaml | 1233 ++++++++++++----- 7 files changed, 1126 insertions(+), 355 deletions(-) create mode 100644 api/signalwire-rest/fabric-api/sip_gateways/main.tsp create mode 100644 api/signalwire-rest/fabric-api/sip_gateways/models/core.tsp create mode 100644 api/signalwire-rest/fabric-api/sip_gateways/models/errors.tsp create mode 100644 api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp create mode 100644 api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp diff --git a/api/signalwire-rest/fabric-api/main.tsp b/api/signalwire-rest/fabric-api/main.tsp index 06f1f6bb..aa3732a2 100644 --- a/api/signalwire-rest/fabric-api/main.tsp +++ b/api/signalwire-rest/fabric-api/main.tsp @@ -12,6 +12,7 @@ import "./ai-agent"; import "./ai-agent-addresses"; import "./cxml-application"; import "./cxml-application-addresses"; +import "./sip_gateways"; using TypeSpec.Http; diff --git a/api/signalwire-rest/fabric-api/sip_gateways/main.tsp b/api/signalwire-rest/fabric-api/sip_gateways/main.tsp new file mode 100644 index 00000000..cb9d95f3 --- /dev/null +++ b/api/signalwire-rest/fabric-api/sip_gateways/main.tsp @@ -0,0 +1,64 @@ +import "@typespec/http"; +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/sip_gateways") +namespace FabricAPI.SipGateways { + @tag("SIP Gateway") + @friendlyName("SIP Gateway") + interface SipGateways { + @summary("List SIP Gateways") + @doc("Returns a paginated list of SIP Gateways for the authenticated project.") + list(): + SipGatewayListResponse | + StatusCode401 | + StatusCode404; + + @summary("Get SIP Gateway") + @doc("Returns an SIP Gateway by ID") + read(...SipGatewayID): { + @statusCode statusCode: 200; + @body sip_gateway: SipGatewayResponse; + } | + StatusCode401 | + StatusCode404; + + @summary("Create SIP Gateway") + @doc("Creates a Subscriber Guest Token to be used for server-side API calls. The token is authorized using an existing API token.") + @post create(...SipGatewayCreateRequest): + { @statusCode statusCode: 201; @body sip_gateway: SipGatewayCreateResponse; } | + StatusCode401 | + StatusCode404 | + SipGatewayCreateStatusCode422; + + @summary("Update SIP Gateway") + @doc("Updates a SIP Gateway by ID") + @patch update(...SipGatewayID, ...SipGatewayUpdateRequest): { + @statusCode statusCode: 200; @body cxml_application: SipGatewayUpdateResponse; + } | + StatusCode401 | + StatusCode404 | + SipGatewayCreateStatusCode422; + + @summary("Delete SIP Gateway") + @doc("Deletes a SIP Gateway} by ID") + @delete delete(...SipGatewayID): + { @statusCode statusCode: 204; } | + StatusCode401 | + StatusCode404; + + @summary("List Fabric Addresses assigned to a SIP Gateway") + @doc("Returns a paginated list of Fabric Addresses associated with the specified SIP Gateway.") + @route("/{resource_id}/addresses") + readAddressesByResourceId(@path resource_id: string): + SipGatewayAddressListResponse | + StatusCode401 | + StatusCode404; + } +} diff --git a/api/signalwire-rest/fabric-api/sip_gateways/models/core.tsp b/api/signalwire-rest/fabric-api/sip_gateways/models/core.tsp new file mode 100644 index 00000000..ad8c02c2 --- /dev/null +++ b/api/signalwire-rest/fabric-api/sip_gateways/models/core.tsp @@ -0,0 +1,56 @@ +import "../../../types"; + +using TypeSpec.Http; + +model SipGatewayID { + @doc("Unique ID of a SIP Gateway.") + @path + id: uuid +} + +model SipGatewayAddressPaginationResponse { + @doc("Link of the current page") + @example("https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways/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/sip_gateways/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/sip_gateways/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca") + next: url; +} + +model SipGatewayAddress { + @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/sip_gateways/models/errors.tsp b/api/signalwire-rest/fabric-api/sip_gateways/models/errors.tsp new file mode 100644 index 00000000..66dfb829 --- /dev/null +++ b/api/signalwire-rest/fabric-api/sip_gateways/models/errors.tsp @@ -0,0 +1,15 @@ +import "../../../types/status-codes"; + +using Types.StatusCodes; + +@example(#{ + errors: #[#{ + type: "validation_error", + code: "missing_required_parameter", + message: "Name can't be blank", + attribute: "name", + url: "https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter" + }], + }) + model SipGatewayCreateStatusCode422 is StatusCode422; + diff --git a/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp b/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp new file mode 100644 index 00000000..44fefb70 --- /dev/null +++ b/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp @@ -0,0 +1,23 @@ +model SipGatewayCreateRequest { + @doc("Display name for the SIP Gateway.") + @example("Different SIP Endpoint Name") + name: string; + + @doc("SIP URI for the endpoint.") + @example("user2@domain.com") + uri: string; + + @doc("Specifies the encryption requirement for the SIP connection.") + @example("required") + encryption: "optional" | "required" | "disabled"; + + @doc("List of supported SIP ciphers.") + @example(#[ "AEAD_AES_256_GCM_8", "AES_256_CM_HMAC_SHA1_80" ]) + ciphers: string[]; + + @doc("List of supported codecs for media transmission.") + @example(#["OPUS"]) + codecs: string[]; +} + +alias SipGatewayUpdateRequest = SipGatewayCreateRequest; diff --git a/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp b/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp new file mode 100644 index 00000000..cfecbcd8 --- /dev/null +++ b/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp @@ -0,0 +1,89 @@ +import "../../../types"; + +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +model SipGatewayCreateResponse { + @doc("Unique ID of the resource.") + @example("0823a606-0aff-4c90-9eba-f88ba118fe05") + id: string; + + @doc("Project ID associated with the resource.") + @example("bc949800-7b40-43cf-8438-a85facfcbdd1") + project_id: string; + + @doc("Display name of the SIP Gateway.") + @example("Different SIP Endpoint Name") + display_name: string; + + @doc("Type of the resource.") + @example("sip_gateway") + type: "sip_gateway"; + + @doc("Timestamp when the resource was created.") + @example(utcDateTime.fromISO("2025-04-01T19:05:42Z")) + created_at: utcDateTime; + + @doc("Timestamp when the resource was last updated.") + @example(utcDateTime.fromISO("2025-04-01T19:05:42Z")) + updated_at: utcDateTime; + + @doc("SIP Gateway configuration details.") + sip_gateway: SipGateway; +} + +model SipGatewayUpdateResponse extends SipGatewayCreateResponse {} +model SipGatewayResponse extends SipGatewayCreateResponse {} + +model SipGateway { + @doc("Unique ID of the SIP Gateway.") + @example("cce59cad-104d-4c28-ada4-98cfd102ae09") + id: string; + + @doc("SIP URI for the endpoint.") + @example("user3@domain.com") + uri: string; + + @doc("Display name of the SIP Gateway.") + @example("Different SIP Endpoint Name") + name: string; + + @doc("List of supported SIP ciphers.") + @example(#["AEAD_AES_256_GCM_8", "AES_256_CM_HMAC_SHA1_80"]) + ciphers: string[]; + + @doc("List of supported codecs.") + @example(#["OPUS"]) + codecs: string[]; + + @doc("Specifies the encryption requirement.") + @example("required") + encryption: "optional" | "required" | "disabled"; +} + +model SipGatewayListResponse { + @doc("List of SIP Gateways.") + data: SipGatewayCreateResponse[]; + + @doc("Pagination links for the response.") + links: SipGatewayPaginationResponse; +} + +model SipGatewayPaginationResponse { + @doc("Link of the current page") + @example("https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways?page_number=0&page_size=50") + self: url; + + @doc("Link to the first page") + @example("https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways?page_number=0&page_size=50") + first: url; + + @doc("Link to the next page") + @example("https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca") + next: url; +} + +model SipGatewayAddressListResponse { + data: SipGatewayAddress[]; + links: SipGatewayAddressPaginationResponse; +} 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 f6ff87d4..1e9adc71 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 @@ -13,6 +13,7 @@ tags: - name: 'AI Agents: Custom' - name: AI Agent - name: cXML Application + - name: SIP Gateway paths: /addresses: get: @@ -956,6 +957,217 @@ paths: - Not Found tags: - External SWML Handler + /resources/sip_gateways: + get: + operationId: SipGateways_list + summary: List SIP Gateways + description: Returns a paginated list of SIP Gateways for the authenticated project. + parameters: [] + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayListResponse' + '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: + - SIP Gateway + post: + operationId: SipGateways_create + summary: Create SIP Gateway + description: Creates a Subscriber Guest Token to be used for server-side API calls. The token is authorized using an existing API token. + 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/SipGatewayCreateResponse' + '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/SipGatewayCreateStatusCode422' + tags: + - SIP Gateway + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayCreateRequest' + /resources/sip_gateways/{id}: + get: + operationId: SipGateways_read + summary: Get SIP Gateway + description: Returns an SIP Gateway by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayResponse' + '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: + - SIP Gateway + patch: + operationId: SipGateways_update + summary: Update SIP Gateway + description: Updates a SIP Gateway by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayUpdateResponse' + '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/SipGatewayCreateStatusCode422' + tags: + - SIP Gateway + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayCreateRequestUpdate' + delete: + operationId: SipGateways_delete + summary: Delete SIP Gateway + description: Deletes a SIP Gateway} by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + 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: + - SIP Gateway + /resources/sip_gateways/{resource_id}/addresses: + get: + operationId: SipGateways_readAddressesByResourceId + summary: List Fabric Addresses assigned to a SIP Gateway + description: Returns a paginated list of Fabric Addresses associated with the specified SIP Gateway. + parameters: + - name: resource_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayAddressListResponse' + '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: + - SIP Gateway /resources/subscribers: get: operationId: Subscribers_list @@ -1506,6 +1718,13 @@ components: description: Unique ID of a Sip Endpoint. schema: $ref: '#/components/schemas/uuid' + SipGatewayID: + name: id + in: path + required: true + description: Unique ID of a SIP Gateway. + schema: + $ref: '#/components/schemas/uuid' SubscriberAddressID: name: id in: path @@ -1536,34 +1755,34 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Fabric Address. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Unique ID of the Fabric Address. resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Fabric resource ID that the Fabric Address belongs to. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Fabric resource ID that the Fabric Address belongs to. name: type: string - description: Name of the Fabric Address. example: justice-league + description: Name of the Fabric Address. display_name: type: string - description: Display name of the Fabric Address. example: Justice League + description: Display name of the Fabric Address. type: allOf: - $ref: '#/components/schemas/DisplayTypes' - description: Type of the Fabric Address. example: app + description: Type of the Fabric Address. cover_url: type: string - description: Cover url of the Fabric Address. example: https://coverurl.com + description: Cover url of the Fabric Address. preview_url: type: string - description: Preview url of the Fabric Address. example: https://previewurl.com + description: Preview url of the Fabric Address. channel: allOf: - $ref: '#/components/schemas/AddressChannel' @@ -1590,18 +1809,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/ai_agents/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/ai_agents/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/ai_agents/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 AIAgentCreateRequest: type: object required: @@ -1609,8 +1828,8 @@ components: properties: name: type: string - description: Name of the AI Agent. example: My AI Agent + description: Name of the AI Agent. prompt: allOf: - $ref: '#/components/schemas/AIPrompt' @@ -1632,10 +1851,10 @@ components: type: array items: type: string - description: An array of hints (as strings) to provide context to the dialogue. example: - One Hint - Two Hint + description: An array of hints (as strings) to provide context to the dialogue. languages: type: array items: @@ -1683,18 +1902,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/ai_agents?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/ai_agents?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/ai_agents?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page AIAgentResponse: type: object required: @@ -1709,31 +1928,31 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the AIAgent. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the AIAgent. project_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Project. example: 99151cf8-9548-4860-ba70-a8de824f3312 + description: Unique ID of the Project. display_name: type: string - description: Display name of the AIAgent Fabric Resource example: Booking Assistant + description: Display name of the AIAgent Fabric Resource type: type: string - description: Type of the Fabric Resource example: external_laml_handler + 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. - example: '2024-10-17T14:14:53Z' updated_at: type: string format: date-time + example: 2024-10-17T14:14:53Z description: Date and time when the resource was updated. - example: '2024-10-17T14:14:53Z' ai_agent: allOf: - $ref: '#/components/schemas/AIAgentWithID' @@ -1743,8 +1962,8 @@ components: properties: name: type: string - description: Name of the AI Agent. example: My AI Agent + description: Name of the AI Agent. prompt: allOf: - $ref: '#/components/schemas/AIPromptUpdate' @@ -1766,10 +1985,10 @@ components: type: array items: type: string - description: An array of hints (as strings) to provide context to the dialogue. example: - One Hint - Two Hint + description: An array of hints (as strings) to provide context to the dialogue. languages: type: array items: @@ -1807,8 +2026,8 @@ components: description: Unique ID of an AI Agent. name: type: string - description: Name of the AI Agent. example: My AI Agent + description: Name of the AI Agent. prompt: allOf: - $ref: '#/components/schemas/AIPrompt' @@ -1830,10 +2049,10 @@ components: type: array items: type: string - description: An array of hints (as strings) to provide context to the dialogue. example: - One Hint - Two Hint + description: An array of hints (as strings) to provide context to the dialogue. languages: type: array items: @@ -1865,18 +2084,18 @@ components: description: Amount of time, in ms, to wait before prompting the user to respond. Allowed values from `10,000` - `600,000`. Set to `0` to disable. attention_timeout_prompt: type: string - description: A custom prompt that is fed into the AI when the attention_timeout is reached. example: Ask if the user would like you to repeat yourself, or if they need more time to respond. + description: A custom prompt that is fed into the AI when the attention_timeout is reached. background_file: type: string format: uri - description: URL of audio file to play in the background while AI plays in foreground. example: https://cdn.signalwire.com/default-music/welcome.mp3 + description: URL of audio file to play in the background while AI plays in foreground. background_file_loops: type: integer nullable: true - description: Maximum number of times to loop playing the background file. `undefined` means loop indefinitely. example: 5 + description: Maximum number of times to loop playing the background file. `undefined` means loop indefinitely. background_file_volume: type: integer minimum: -50 @@ -1884,10 +2103,10 @@ components: description: Defines background_file volume within a range of `-50` to `50`. barge_match_string: type: string + example: Cancel order description: |- Takes a string, including a regular expression, defining barge behavior. For example, this param can direct the AI to stop when the word 'hippopotomus' is input. - example: Cancel order barge_min_words: type: integer minimum: 1 @@ -1895,12 +2114,12 @@ components: description: Defines the number of words that must be input before triggering barge behavior, in a range of `1-99`. conscience: type: string - description: Sets the prompt which binds the agent to its purpose. example: Place an order + description: Sets the prompt which binds the agent to its purpose. conversation_id: type: string - description: Used by `check_for_input` and `save_conversation` to identify an individual conversation. example: Conversation ID + description: Used by `check_for_input` and `save_conversation` to identify an individual conversation. debug_webhook_level: type: integer minimum: 0 @@ -1909,8 +2128,8 @@ components: debug_webhook_url: type: string format: uri - description: Each interaction between the AI and end user is posted in real time to the established URL. example: https://example.com + description: Each interaction between the AI and end user is posted in real time to the established URL. direction: type: array items: @@ -1918,8 +2137,8 @@ components: description: Forces the direction of the call to the assistant. Valid values are `inbound` and `outbound`. digit_termiantors: type: string - description: "DTMF digit, as a string, to signal the end of input (ex: '#')" example: '#' + description: "DTMF digit, as a string, to signal the end of input (ex: '#')" digit_timeout: type: integer minimum: 250 @@ -1944,8 +2163,8 @@ components: hold_music: type: string format: uri - description: A URL for the hold music to play, accepting WAV, mp3, and FreeSWITCH tone_stream. example: https://cdn.signalwire.com/default-music/welcome.mp3 + description: A URL for the hold music to play, accepting WAV, mp3, and FreeSWITCH tone_stream. hold_on_process: type: boolean description: Enables hold music during SWAIG processing. @@ -1964,15 +2183,15 @@ components: description: When enabled, barges agent upon any sound interruption longer than 1 second. interrupt_prompt: type: string - description: Provide a prompt for the agent to handle crosstalk. example: Inform user that you can't hear anything + description: Provide a prompt for the agent to handle crosstalk. languages_enabled: type: boolean description: Allows multilingualism when `true`. local_tz: type: string - description: The local timezone setting for the AI. Value should use `IANA TZ ID` example: America/Ensenada + description: The local timezone setting for the AI. Value should use `IANA TZ ID` outbound_attention_timeout: type: integer minimum: 10000 @@ -2010,8 +2229,8 @@ components: properties: text: type: string - description: The instructions to send to the agent. example: Your name is Franklin and you are taking orders for Franklin's Pizza. Begin by greeting the caller, and ask if they'd like to place an order for pickup or delivery. + description: The instructions to send to the agent. temperature: type: number minimum: 0 @@ -2045,8 +2264,8 @@ components: properties: text: type: string - description: The instructions to send to the agent. example: Your name is Franklin and you are taking orders for Franklin's Pizza. Begin by greeting the caller, and ask if they'd like to place an order for pickup or delivery. + description: The instructions to send to the agent. temperature: type: number minimum: 0 @@ -2082,8 +2301,8 @@ components: properties: text: type: string - description: The instructions to send to the agent. example: Your name is Franklin and you are taking orders for Franklin's Pizza. Begin by greeting the caller, and ask if they'd like to place an order for pickup or delivery. + description: The instructions to send to the agent. temperature: type: number minimum: 0 @@ -2124,8 +2343,8 @@ components: properties: text: type: string - description: The instructions to send to the agent. example: Your name is Franklin and you are taking orders for Franklin's Pizza. Begin by greeting the caller, and ask if they'd like to place an order for pickup or delivery. + description: The instructions to send to the agent. temperature: type: number minimum: 0 @@ -2210,8 +2429,8 @@ components: properties: description: type: string - description: A description of the property. example: Property description + description: A description of the property. nullable: type: boolean description: Whether the property can be null. @@ -2237,8 +2456,8 @@ components: properties: audio: type: string - description: Audio Channel of Fabric Address example: /external/resource_name?channel=audio + description: Audio Channel of Fabric Address BooleanProperty: type: object required: @@ -2246,8 +2465,8 @@ components: properties: description: type: string - description: A description of the property. example: Property description + description: A description of the property. nullable: type: boolean description: Whether the property can be null. @@ -2332,36 +2551,36 @@ components: properties: name: type: string - description: The name of the step. The name must be unique within the context. The name is used for referencing the step in the context. example: Take Pizza order + description: The name of the step. The name must be unique within the context. The name is used for referencing the step in the context. text: type: string - description: The prompt or instructions given to the AI at this step. example: Your name is Franklin and you are taking orders for Franklin's Pizza. + description: The prompt or instructions given to the AI at this step. step_criteria: type: string + example: Customer wants to order Pizza description: |- The conditions that must be met for the conversation to proceed to the next step. If a condition is not met, the conversation will not proceed to the next step. It's **highly** recommended you create a custom criteria for the step to get the intended behavior. - example: Customer wants to order Pizza functions: type: array items: type: string - description: An array of SWAIG.functions that can be executed from this step. example: - Take Order - Confirm Order - Confirm Address + description: An array of SWAIG.functions that can be executed from this step. valid_contexts: type: array items: type: string - description: An array of valid contexts that the conversation can transition to from this step. example: - Place Order - Confirm Order + description: An array of valid contexts that the conversation can transition to from this step. skip_user_turn: type: boolean description: A boolean value that, when true, will skip the user's turn to respond in the conversation and proceed to the next step. @@ -2392,36 +2611,36 @@ components: properties: name: type: string - description: The name of the step. The name must be unique within the context. The name is used for referencing the step in the context. example: Take Pizza order + description: The name of the step. The name must be unique within the context. The name is used for referencing the step in the context. text: type: string - description: The prompt or instructions given to the AI at this step. example: Your name is Franklin and you are taking orders for Franklin's Pizza. + description: The prompt or instructions given to the AI at this step. step_criteria: type: string + example: Customer wants to order Pizza description: |- The conditions that must be met for the conversation to proceed to the next step. If a condition is not met, the conversation will not proceed to the next step. It's **highly** recommended you create a custom criteria for the step to get the intended behavior. - example: Customer wants to order Pizza functions: type: array items: type: string - description: An array of SWAIG.functions that can be executed from this step. example: - Take Order - Confirm Order - Confirm Address + description: An array of SWAIG.functions that can be executed from this step. valid_contexts: type: array items: type: string - description: An array of valid contexts that the conversation can transition to from this step. example: - Place Order - Confirm Order + description: An array of valid contexts that the conversation can transition to from this step. skip_user_turn: type: boolean description: A boolean value that, when true, will skip the user's turn to respond in the conversation and proceed to the next step. @@ -2429,12 +2648,12 @@ components: type: array items: type: string - description: |- - An array of valid steps that the conversation can proceed to from this step. - If the array is empty, or the `valid_steps` key is not present, the conversation will proceed to the next step in the context. example: - get order - confirm order + description: |- + An array of valid steps that the conversation can proceed to from this step. + If the array is empty, or the `valid_steps` key is not present, the conversation will proceed to the next step in the context. title: ContextStepsValidSteps object ContextSwitchAction: type: object @@ -2499,44 +2718,44 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the cXML Application. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the cXML Application. name: type: string - description: Name of the cXML Application. example: My cXML Application + description: Name of the cXML Application. handle_calls_using: allOf: - $ref: '#/components/schemas/HandleCallsUsing' - description: Indicates whether the call will be handled by a script or an external URL. example: script + description: Indicates whether the call will be handled by a script or an external URL. call_handler_url: type: string - description: Call handler URL example: https://example.com/cxml + description: Call handler URL call_handler_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call handler URL method example: GET + description: Call handler URL method call_handler_fallback_url: type: string - description: Call handler callback URL. example: https://example.com/cxml + description: Call handler callback URL. call_handler_fallback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call handler fallback method. example: GET + description: Call handler fallback method. call_status_callback_url: type: string - description: Call status callback URL example: https://callback.com + description: Call status callback URL call_status_callback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call status callback method. example: POST + description: Call status callback method. CxmlApplicationAddress: type: object required: @@ -2552,34 +2771,34 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Fabric Address. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Unique ID of the Fabric Address. resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Fabric resource ID that the Fabric Address belongs to. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Fabric resource ID that the Fabric Address belongs to. name: type: string - description: Name of the Fabric Address. example: justice-league + description: Name of the Fabric Address. display_name: type: string - description: Display name of the Fabric Address. example: Justice League + description: Display name of the Fabric Address. type: allOf: - $ref: '#/components/schemas/DisplayTypes' - description: Type of the Fabric Address. example: app + description: Type of the Fabric Address. cover_url: type: string - description: Cover url of the Fabric Address. example: https://coverurl.com + description: Cover url of the Fabric Address. preview_url: type: string - description: Preview url of the Fabric Address. example: https://previewurl.com + description: Preview url of the Fabric Address. channel: allOf: - $ref: '#/components/schemas/AddressChannel' @@ -2606,18 +2825,18 @@ components: self: type: string format: uri - description: 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 + description: Link of the current page first: type: string format: uri - description: 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 + description: Link to the first page next: type: string format: uri - description: 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 + description: Link to the next page CxmlApplicationCreateRequest: type: object required: @@ -2625,51 +2844,51 @@ components: properties: name: type: string - description: Name of the cXML Application. example: My cXML Application + description: Name of the cXML Application. handle_calls_using: allOf: - $ref: '#/components/schemas/HandleCallsUsing' - description: Indicates whether the call will be handled by a script or an external URL. example: script + description: Indicates whether the call will be handled by a script or an external URL. call_handler_url: type: string - description: Call handler URL example: https://example.com/cxml + description: Call handler URL call_handler_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call handler URL method example: GET + description: Call handler URL method default: POST call_handler_fallback_url: type: string - description: Call handler callback URL. example: https://example.com/cxml + description: Call handler callback URL. call_handler_fallback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call handler fallback method. example: GET + description: Call handler fallback method. default: POST call_status_callback_url: type: string - description: Call status callback URL example: https://callback.com + description: Call status callback URL call_status_callback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call status callback method. example: GET + description: Call status callback method. default: POST call_handler_script: type: string - description: Script to handle to call. example: |- https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3 + description: Script to handle to call. CxmlApplicationCreateStatusCode422: type: object required: @@ -2708,18 +2927,18 @@ components: self: type: string format: uri - description: Link of the current page 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 - description: Link to the first page 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 - description: 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 + description: Link to the next page CxmlApplicationResponse: type: object required: @@ -2734,31 +2953,31 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the cXML Application. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the cXML Application. project_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Project. example: 99151cf8-9548-4860-ba70-a8de824f3312 + description: Unique ID of the Project. display_name: type: string - description: Display name of the cXML Application Fabric Resource example: Booking Assistant + description: Display name of the cXML Application Fabric Resource type: type: string - description: Type of the Fabric Resource 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. - example: '2024-10-17T14:14:53Z' updated_at: type: string format: date-time + example: 2024-10-17T14:14:53Z description: Date and time when the resource was updated. - example: '2024-10-17T14:14:53Z' cxml_application: allOf: - $ref: '#/components/schemas/CxmlApplication' @@ -2768,51 +2987,51 @@ components: properties: name: type: string - description: Name of the cXML Application. example: My cXML Application + description: Name of the cXML Application. handle_calls_using: allOf: - $ref: '#/components/schemas/HandleCallsUsing' - description: Indicates whether the call will be handled by a script or an external URL. example: script + description: Indicates whether the call will be handled by a script or an external URL. call_handler_url: type: string - description: Call handler URL example: https://example.com/cxml + description: Call handler URL call_handler_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call handler URL method example: GET + description: Call handler URL method default: POST call_handler_fallback_url: type: string - description: Call handler callback URL. example: https://example.com/cxml + description: Call handler callback URL. call_handler_fallback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call handler fallback method. example: GET + description: Call handler fallback method. default: POST call_status_callback_url: type: string - description: Call status callback URL example: https://callback.com + description: Call status callback URL call_status_callback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Call status callback method. example: GET + description: Call status callback method. default: POST call_handler_script: type: string - description: Script to handle to call. example: |- https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3 + description: Script to handle to call. CxmlApplicationUpdateStatusCode422: type: object required: @@ -2868,8 +3087,8 @@ components: properties: string: type: string - description: The actual input or value from the user or system. example: I want a refund + description: The actual input or value from the user or system. pattern: type: string description: A regular expression pattern to validate or match the string. @@ -2878,8 +3097,8 @@ components: properties: response: type: string - description: A static response text or message returned to the AI agents context. example: Order placed + description: A static response text or message returned to the AI agents context. action: type: array items: @@ -2912,44 +3131,44 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the External LAML Handler. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the External LAML Handler. name: type: string - description: Name of the External LAML Handler. example: My External LAML Handler + description: Name of the External LAML Handler. used_for: allOf: - $ref: '#/components/schemas/UsedForType' - description: Used for of the External LAML Handler. example: calling + description: Used for of the External LAML Handler. primary_request_url: type: string - description: Primary request url of the External LAML Handler. example: https://primary.com + description: Primary request url of the External LAML Handler. primary_request_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Primary request method of the External LAML Handler. example: GET + description: Primary request method of the External LAML Handler. fallback_request_url: type: string - description: Fallback request url of the External LAML Handler. example: https://fallback.com + description: Fallback request url of the External LAML Handler. fallback_request_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Fallback request method of the External LAML Handler. example: GET + description: Fallback request method of the External LAML Handler. status_callback_url: type: string - description: Status callback url of the External LAML Handler. example: https://callback.com + description: Status callback url of the External LAML Handler. status_callback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Status callback method of the External LAML Handler. example: POST + description: Status callback method of the External LAML Handler. ExternalLAMLHandlerAddress: type: object required: @@ -2965,34 +3184,34 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Fabric Address. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Unique ID of the Fabric Address. resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Fabric resource ID that the Fabric Address belongs to. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Fabric resource ID that the Fabric Address belongs to. name: type: string - description: Name of the Fabric Address. example: justice-league + description: Name of the Fabric Address. display_name: type: string - description: Display name of the Fabric Address. example: Justice League + description: Display name of the Fabric Address. type: allOf: - $ref: '#/components/schemas/DisplayTypes' - description: Type of the Fabric Address. example: app + description: Type of the Fabric Address. cover_url: type: string - description: Cover url of the Fabric Address. example: https://coverurl.com + description: Cover url of the Fabric Address. preview_url: type: string - description: Preview url of the Fabric Address. example: https://previewurl.com + description: Preview url of the Fabric Address. channel: allOf: - $ref: '#/components/schemas/AddressChannel' @@ -3019,18 +3238,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/external_laml_handlers/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/external_laml_handlers/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/external_laml_handlers/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 ExternalLAMLHandlerCreateRequest: type: object required: @@ -3038,51 +3257,51 @@ components: properties: name: type: string - description: Name of the External LAML Handler. example: My External LAML Handler + description: Name of the External LAML Handler. used_for: type: string enum: - calling - messaging - description: Used for of the External LAML Handler. example: calling + description: Used for of the External LAML Handler. default: calling primary_request_url: type: string - description: Primary request url of the External LAML Handler. example: https://primary.com + description: Primary request url of the External LAML Handler. primary_request_method: type: string enum: - GET - POST - description: Primary request method of the External LAML Handler. example: GET + description: Primary request method of the External LAML Handler. default: POST fallback_request_url: type: string - description: Fallback request url of the External LAML Handler. example: https://fallback.com + description: Fallback request url of the External LAML Handler. fallback_request_method: type: string enum: - GET - POST - description: Fallback request method of the External LAML Handler. example: GET + description: Fallback request method of the External LAML Handler. default: POST status_callback_url: type: string - description: Status callback url of the External LAML Handler. example: https://callback.com + description: Status callback url of the External LAML Handler. status_callback_method: type: string enum: - GET - POST - description: Status callback method of the External LAML Handler. example: POST + description: Status callback method of the External LAML Handler. default: POST ExternalLAMLHandlerListResponse: type: object @@ -3106,18 +3325,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/external_laml_handlers?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/external_laml_handlers?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/external_laml_handlers?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page ExternalLAMLHandlerResponse: type: object required: @@ -3132,31 +3351,31 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the ExternalLAMLHandler. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the ExternalLAMLHandler. project_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Project. example: 99151cf8-9548-4860-ba70-a8de824f3312 + description: Unique ID of the Project. display_name: type: string - description: Display name of the ExternalLAMLHandler Fabric Resource example: Booking Assistant + description: Display name of the ExternalLAMLHandler Fabric Resource type: type: string - description: Type of the Fabric Resource example: external_laml_handler + 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. - example: '2024-10-17T14:14:53Z' updated_at: type: string format: date-time + example: 2024-10-17T14:14:53Z description: Date and time when the resource was updated. - example: '2024-10-17T14:14:53Z' external_laml_handler: allOf: - $ref: '#/components/schemas/ExternalLAMLHandler' @@ -3166,51 +3385,51 @@ components: properties: name: type: string - description: Name of the External LAML Handler. example: My External LAML Handler + description: Name of the External LAML Handler. used_for: type: string enum: - calling - messaging - description: Used for of the External LAML Handler. example: calling + description: Used for of the External LAML Handler. default: calling primary_request_url: type: string - description: Primary request url of the External LAML Handler. example: https://primary.com + description: Primary request url of the External LAML Handler. primary_request_method: type: string enum: - GET - POST - description: Primary request method of the External LAML Handler. example: GET + description: Primary request method of the External LAML Handler. default: POST fallback_request_url: type: string - description: Fallback request url of the External LAML Handler. example: https://fallback.com + description: Fallback request url of the External LAML Handler. fallback_request_method: type: string enum: - GET - POST - description: Fallback request method of the External LAML Handler. example: GET + description: Fallback request method of the External LAML Handler. default: POST status_callback_url: type: string - description: Status callback url of the External LAML Handler. example: https://callback.com + description: Status callback url of the External LAML Handler. status_callback_method: type: string enum: - GET - POST - description: Status callback method of the External LAML Handler. example: POST + description: Status callback method of the External LAML Handler. default: POST ExternalLamlHandlerCreateStatusCode422: type: object @@ -3260,45 +3479,45 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the External SWML Handler. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the External SWML Handler. name: type: string - description: Name of the External SWML Handler. example: My External SWML Handler + description: Name of the External SWML Handler. used_for: type: string enum: - calling - description: Used for of the External SWML Handler. example: calling + description: Used for of the External SWML Handler. primary_request_url: type: string - description: Primary request url of the External SWML Handler. example: https://primary.com + description: Primary request url of the External SWML Handler. primary_request_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Primary request method of the External SWML Handler. example: GET + description: Primary request method of the External SWML Handler. fallback_request_url: type: string - description: Fallback request url of the External SWML Handler. example: https://fallback.com + description: Fallback request url of the External SWML Handler. fallback_request_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Fallback request method of the External SWML Handler. example: GET + description: Fallback request method of the External SWML Handler. status_callback_url: type: string - description: Status callback url of the External SWML Handler. example: https://callback.com + description: Status callback url of the External SWML Handler. status_callback_method: allOf: - $ref: '#/components/schemas/UrlMethodType' - description: Status callback method of the External SWML Handler. example: POST + description: Status callback method of the External SWML Handler. ExternalSWMLHandlerAddress: type: object required: @@ -3314,34 +3533,34 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Fabric Address. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Unique ID of the Fabric Address. resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Fabric resource ID that the Fabric Address belongs to. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Fabric resource ID that the Fabric Address belongs to. name: type: string - description: Name of the Fabric Address. example: justice-league + description: Name of the Fabric Address. display_name: type: string - description: Display name of the Fabric Address. example: Justice League + description: Display name of the Fabric Address. type: allOf: - $ref: '#/components/schemas/DisplayTypes' - description: Type of the Fabric Address. example: app + description: Type of the Fabric Address. cover_url: type: string - description: Cover url of the Fabric Address. example: https://coverurl.com + description: Cover url of the Fabric Address. preview_url: type: string - description: Preview url of the Fabric Address. example: https://previewurl.com + description: Preview url of the Fabric Address. channel: allOf: - $ref: '#/components/schemas/AddressChannel' @@ -3368,18 +3587,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers/a87db7ed-8ebe-42e4-829f-8ba5a4152f54/addresses?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers/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 ExternalSWMLHandlerCreateRequest: type: object required: @@ -3387,50 +3606,50 @@ components: properties: name: type: string - description: Name of the External SWML Handler. example: My External SWML Handler + description: Name of the External SWML Handler. used_for: type: string enum: - calling - description: Used for of the External SWML Handler. example: calling + description: Used for of the External SWML Handler. default: calling primary_request_url: type: string - description: Primary request url of the External SWML Handler. example: https://primary.com + description: Primary request url of the External SWML Handler. primary_request_method: type: string enum: - GET - POST - description: Primary request method of the External SWML Handler. example: GET + description: Primary request method of the External SWML Handler. default: POST fallback_request_url: type: string - description: Fallback request url of the External SWML Handler. example: https://fallback.com + description: Fallback request url of the External SWML Handler. fallback_request_method: type: string enum: - GET - POST - description: Fallback request method of the External SWML Handler. example: GET + description: Fallback request method of the External SWML Handler. default: POST status_callback_url: type: string - description: Status callback url of the External SWML Handler. example: https://callback.com + description: Status callback url of the External SWML Handler. status_callback_method: type: string enum: - GET - POST - description: Status callback method of the External SWML Handler. example: POST + description: Status callback method of the External SWML Handler. default: POST ExternalSWMLHandlerListResponse: type: object @@ -3454,18 +3673,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page ExternalSWMLHandlerResponse: type: object required: @@ -3480,31 +3699,31 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the External SWML Handler. example: a87db7ed-8ebe-42e4-829f-8ba5a4152f54 + description: Unique ID of the External SWML Handler. project_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Project. example: 99151cf8-9548-4860-ba70-a8de824f3312 + description: Unique ID of the Project. display_name: type: string - description: Display name of the External SWML Handler Fabric Resource example: Booking Assistant + description: Display name of the External SWML Handler Fabric Resource type: type: string - description: Type of the Fabric Resource example: external_swml_handler + 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. - example: '2024-10-17T14:14:53Z' updated_at: type: string format: date-time + example: 2024-10-17T14:14:53Z description: Date and time when the resource was updated. - example: '2024-10-17T14:14:53Z' external_swml_handler: allOf: - $ref: '#/components/schemas/ExternalSWMLHandler' @@ -3514,50 +3733,50 @@ components: properties: name: type: string - description: Name of the External SWML Handler. example: My External SWML Handler + description: Name of the External SWML Handler. used_for: type: string enum: - calling - description: Used for of the External SWML Handler. example: calling + description: Used for of the External SWML Handler. default: calling primary_request_url: type: string - description: Primary request url of the External SWML Handler. example: https://primary.com + description: Primary request url of the External SWML Handler. primary_request_method: type: string enum: - GET - POST - description: Primary request method of the External SWML Handler. example: GET + description: Primary request method of the External SWML Handler. default: POST fallback_request_url: type: string - description: Fallback request url of the External SWML Handler. example: https://fallback.com + description: Fallback request url of the External SWML Handler. fallback_request_method: type: string enum: - GET - POST - description: Fallback request method of the External SWML Handler. example: GET + description: Fallback request method of the External SWML Handler. default: POST status_callback_url: type: string - description: Status callback url of the External SWML Handler. example: https://callback.com + description: Status callback url of the External SWML Handler. status_callback_method: type: string enum: - GET - POST - description: Status callback method of the External SWML Handler. example: POST + description: Status callback method of the External SWML Handler. default: POST ExternalSwmlHandlerCreateStatusCode422: type: object @@ -3607,33 +3826,33 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Fabric Address. example: 691af061-cd86-4893-a605-173f47afc4c2 + description: Unique ID of the Fabric Address. name: type: string - description: Name of the Fabric Address. example: justice-league + description: Name of the Fabric Address. display_name: type: string - description: Display name of the Fabric Address. example: Justice League + description: Display name of the Fabric Address. type: allOf: - $ref: '#/components/schemas/DisplayTypes' - description: Type of the Fabric Address. example: app + description: Type of the Fabric Address. cover_url: type: string - description: Cover url of the Fabric Address. example: https://coverurl.com + description: Cover url of the Fabric Address. preview_url: type: string - description: Preview url of the Fabric Address. example: https://previewurl.com + description: Preview url of the Fabric Address. locked: type: boolean - description: Locks the Fabric Address. This is used to prevent the Fabric Address from accepting calls. example: true + description: Locks the Fabric Address. This is used to prevent the Fabric Address from accepting calls. channel: allOf: - $ref: '#/components/schemas/AddressChannel' @@ -3641,8 +3860,8 @@ components: created_at: type: string format: date-time - description: Fabric Address Creation Date. example: 2024-05-06T12:20-12Z + description: Fabric Address Creation Date. FabricAddressPaginationResponse: type: object required: @@ -3653,18 +3872,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/addresses?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/addresses?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/addresses?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page FabricAddressesResponse: type: object required: @@ -3702,10 +3921,10 @@ components: type: array items: type: string - description: An array of required property names from the `properties` object. example: - name1 - name2 + description: An array of required property names from the `properties` object. GuestTokenCreateStatusCode422: type: object required: @@ -3735,8 +3954,8 @@ components: properties: description: type: string - description: A description of the property. example: Property description + description: A description of the property. nullable: type: boolean description: Whether the property can be null. @@ -3749,15 +3968,15 @@ components: type: array items: type: integer - description: An array of integers that are the possible values example: - 1 - 2 - 3 + description: An array of integers that are the possible values default: type: integer - description: The default integer value example: 5 + description: The default integer value description: Base interface for all property types title: Integer Function Property InviteTokenCreateStatusCode422: @@ -3800,32 +4019,32 @@ components: properties: name: type: string - description: Name of the language ('French', 'English', etc). example: French + description: Name of the language ('French', 'English', etc). code: type: string - description: Language code. For example, 'fr-FR'. example: fr-FR + description: Language code. For example, 'fr-FR'. voice: type: string - description: Voice to use for the language. For example, 'fr-FR-Neural2-B'. example: fr-FR-Neural2-B + description: Voice to use for the language. For example, 'fr-FR-Neural2-B'. function_fillers: type: array items: type: string - description: An array of strings to be used as fillers in the conversation when calling a `swaig function`. This helps the AI break silence between responses. example: - great - ok + description: An array of strings to be used as fillers in the conversation when calling a `swaig function`. This helps the AI break silence between responses. speech_fillers: type: array items: type: string - description: An array of strings to be used as fillers in the conversation. This helps the AI break silence between responses. example: - umm - hmm + description: An array of strings to be used as fillers in the conversation. This helps the AI break silence between responses. title: LanguagesWithFillers MessagingChannel: type: object @@ -3834,8 +4053,8 @@ components: properties: messaging: type: string - description: Messaging Channel of Fabric Address example: /external/resource_name?channel=messaging + description: Messaging Channel of Fabric Address NullProperty: type: object required: @@ -3849,8 +4068,8 @@ components: description: The type of parameter(s) the AI is passing to the function. description: type: string - description: A description of the property. example: Property Description + description: A description of the property. title: Null Function Property NumberProperty: type: object @@ -3859,8 +4078,8 @@ components: properties: description: type: string - description: A description of the property. example: Property description + description: A description of the property. nullable: type: boolean description: Whether the property can be null. @@ -3875,17 +4094,17 @@ components: anyOf: - type: integer - type: number - description: An array of integers that are the possible values example: - 1 - 2 - 3 + description: An array of integers that are the possible values default: anyOf: - type: integer - type: number - description: The default integer value example: 3 + description: The default integer value description: Base interface for all property types title: Number Function Property ObjectProperty: @@ -3895,8 +4114,8 @@ components: properties: description: type: string - description: A description of the property. example: Property description + description: A description of the property. nullable: type: boolean description: Whether the property can be null. @@ -3918,10 +4137,10 @@ components: type: array items: type: string - description: Required property names example: - name1 - name2 + description: Required property names description: Base interface for all property types title: Object Function Property OneOfProperty: @@ -3945,8 +4164,8 @@ components: properties: response: type: string - description: A static response text or message returned to the AI agents context. example: Order placed + description: A static response text or message returned to the AI agents context. action: type: array items: @@ -3967,18 +4186,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/subscribers/d369a402-7b43-4512-8735-9d5e1f387814/sip_endpoints?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/subscribers/d369a402-7b43-4512-8735-9d5e1f387814/sip_endpoints?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/subscribers/d369a402-7b43-4512-8735-9d5e1f387814/sip_endpoints?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page PlaybackBGAction: type: object required: @@ -3990,8 +4209,8 @@ components: file: type: string format: uri - description: URL or filepath of the audio file to play. example: https://cdn.signalwire.com/default-music/welcome.mp3 + description: URL or filepath of the audio file to play. wait: type: boolean description: Whether to wait for the audio file to finish playing before continuing. Default is `false`. @@ -4008,12 +4227,12 @@ components: properties: replace: type: string - description: The expression to replace. example: pizza + description: The expression to replace. with: type: string - description: The phonetic spelling of the expression. example: pissa + description: The phonetic spelling of the expression. ignore_case: type: boolean description: Whether the pronunciation replacement should ignore case. @@ -4034,20 +4253,20 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Sip Endpoint. example: acaa5c49-be5e-4477-bce0-48f4b23b7720 + description: Unique ID of the Sip Endpoint. username: type: string - description: Username of the Sip Endpoint. example: justice-league + description: Username of the Sip Endpoint. caller_id: type: string - description: Caller ID of the Sip Endpoint. example: call-id-123 + description: Caller ID of the Sip Endpoint. send_as: type: string - description: Purchased or verified number example: '+14632322867' + description: Purchased or verified number ciphers: type: array items: @@ -4061,18 +4280,18 @@ components: encryption: allOf: - $ref: '#/components/schemas/EncryptionType' - description: Encryption requirement of the Sip Endpoint. example: optional + description: Encryption requirement of the Sip Endpoint. call_handler: allOf: - $ref: '#/components/schemas/CallHandlerType' - description: Call handler of the Sip Endpoint. example: ai_agent + description: Call handler of the Sip Endpoint. calling_handler_resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Calling Handler Resource. example: f7078ea7-dc79-4763-96f6-725bf5829097 + description: Unique ID of the Calling Handler Resource. SWAIG: type: object properties: @@ -4105,8 +4324,8 @@ components: properties: web_hook_url: type: string - description: Default URL to send status callbacks and reports to. Authentication can also be set in the url in the format of `username:password@url.` example: username:password@https://example.com + description: Default URL to send status callbacks and reports to. Authentication can also be set in the url in the format of `username:password@url.` title: defaults SWAIGFunction: type: object @@ -4116,12 +4335,12 @@ components: properties: function: type: string - description: A unique name for the function. For example, 'get_weather'. example: get_weather + description: A unique name for the function. For example, 'get_weather'. description: type: string - description: A description of the context and purpose of the function, to explain to the agent when to use it. example: Get the weather information + description: A description of the context and purpose of the function, to explain to the agent when to use it. parameters: allOf: - $ref: '#/components/schemas/FunctionParameters' @@ -4148,19 +4367,19 @@ components: perform actions based on the input, or connect to external APIs or services in a serverless fashion. web_hook_url: type: string - description: Function-specific URL to send status callbacks and reports to. Takes precedence over a default setting. Authentication can also be set in the url in the format of `username:password@url.` example: username:password:https://statuscallback.com + description: Function-specific URL to send status callbacks and reports to. Takes precedence over a default setting. Authentication can also be set in the url in the format of `username:password@url.` wait_file: type: string format: uri - description: A file to play while the function is running. `wait_file_loops` can specify the amount of times that files should continuously play. Default is not set. example: https://cdn.signalwire.com/default-music/welcome.mp3 + description: A file to play while the function is running. `wait_file_loops` can specify the amount of times that files should continuously play. Default is not set. wait_file_loops: anyOf: - type: integer - type: string - description: The number of times to loop playing the file. Default is not set. example: 5 + description: The number of times to loop playing the file. Default is not set. title: functions SWAIGIncludes: type: object @@ -4172,14 +4391,14 @@ components: type: array items: type: string - description: Remote functions to fetch and include in your AI application. example: - transfer call - notify kitchen + description: Remote functions to fetch and include in your AI application. url: type: string - description: URL to fetch remote functions and include in your AI application. Authentication can also be set in the url in the format of `username:password@url`. example: username:password@https://example.com + description: URL to fetch remote functions and include in your AI application. Authentication can also be set in the url in the format of `username:password@url`. meta_data: type: object additionalProperties: {} @@ -4198,9 +4417,9 @@ components: properties: say: type: string + example: Welcome to Franklin's Pizza. description: A message to be spoken by the AI agent. title: say - example: Welcome to Franklin's Pizza. title: SayAction object SchemaType: oneOf: @@ -4224,12 +4443,12 @@ components: set_global_data: type: object additionalProperties: {} - description: A JSON object containing any global data, as a key-value map. This action sets the data in the `global_meta_data` to be globally referenced. - title: set_global_data example: small_size: 8 Inch large_size: 12 Inch closed: Monday + description: A JSON object containing any global data, as a key-value map. This action sets the data in the `global_meta_data` to be globally referenced. + title: set_global_data title: SetGlobalDataAction object SetMetaDataAction: type: object @@ -4239,13 +4458,288 @@ components: set_meta_data: type: object additionalProperties: {} + example: + extra_cheese: Can't do + extra_large_pizza: Only on Friday description: A JSON object containing any metadata, as a key-value map. This action sets the data in the `meta_data` to be referenced locally in the function. title: set_meta_data + title: SetMetaDataAction object + SipEndpointCreateStatusCode422: + type: object + required: + - errors + properties: + errors: + type: array + items: + $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error' + example: + errors: + - type: validation_error + code: invalid_parameter + message: Ciphers are invalid + attribute: ciphers + url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter + SipEndpointUpdateStatusCode422: + type: object + required: + - errors + properties: + errors: + type: array + items: + $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error' + example: + errors: + - type: validation_error + code: invalid_parameter + message: Ciphers are invalid + attribute: ciphers + url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter + SipGateway: + type: object + required: + - id + - uri + - name + - ciphers + - codecs + - encryption + properties: + id: + type: string + example: cce59cad-104d-4c28-ada4-98cfd102ae09 + description: Unique ID of the SIP Gateway. + uri: + type: string + example: user3@domain.com + description: SIP URI for the endpoint. + name: + type: string + example: Different SIP Endpoint Name + description: Display name of the SIP Gateway. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement. + SipGatewayAddress: + 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. + SipGatewayAddressListResponse: + type: object + required: + - data + - links + properties: + data: + type: array + items: + $ref: '#/components/schemas/SipGatewayAddress' + links: + $ref: '#/components/schemas/SipGatewayAddressPaginationResponse' + SipGatewayAddressPaginationResponse: + type: object + required: + - self + - first + - next + properties: + self: + type: string + format: uri + example: https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways/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/sip_gateways/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/sip_gateways/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 + SipGatewayCreateRequest: + type: object + required: + - name + - uri + - encryption + - ciphers + - codecs + properties: + name: + type: string + example: Different SIP Endpoint Name + description: Display name for the SIP Gateway. + uri: + type: string + example: user2@domain.com + description: SIP URI for the endpoint. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement for the SIP connection. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs for media transmission. + SipGatewayCreateRequestUpdate: + type: object + properties: + name: + type: string + example: Different SIP Endpoint Name + description: Display name for the SIP Gateway. + uri: + type: string + example: user2@domain.com + description: SIP URI for the endpoint. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement for the SIP connection. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string example: - extra_cheese: Can't do - extra_large_pizza: Only on Friday - title: SetMetaDataAction object - SipEndpointCreateStatusCode422: + - OPUS + description: List of supported codecs for media transmission. + SipGatewayCreateResponse: + type: object + required: + - id + - project_id + - display_name + - type + - created_at + - updated_at + - sip_gateway + properties: + id: + type: string + example: 0823a606-0aff-4c90-9eba-f88ba118fe05 + description: Unique ID of the resource. + project_id: + type: string + example: bc949800-7b40-43cf-8438-a85facfcbdd1 + description: Project ID associated with the resource. + display_name: + type: string + example: Different SIP Endpoint Name + description: Display name of the SIP Gateway. + type: + type: string + enum: + - sip_gateway + example: sip_gateway + description: Type of the resource. + created_at: + type: string + format: date-time + example: 2025-04-01T19:05:42Z + description: Timestamp when the resource was created. + updated_at: + type: string + format: date-time + example: 2025-04-01T19:05:42Z + description: Timestamp when the resource was last updated. + sip_gateway: + allOf: + - $ref: '#/components/schemas/SipGateway' + description: SIP Gateway configuration details. + SipGatewayCreateStatusCode422: type: object required: - errors @@ -4257,26 +4751,55 @@ components: example: errors: - type: validation_error - code: invalid_parameter - message: Ciphers are invalid - attribute: ciphers - url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter - SipEndpointUpdateStatusCode422: + code: missing_required_parameter + message: Name can't be blank + attribute: name + url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter + SipGatewayListResponse: type: object required: - - errors + - data + - links properties: - errors: + data: type: array items: - $ref: '#/components/schemas/Types.StatusCodes.StatusCode422Error' - example: - errors: - - type: validation_error - code: invalid_parameter - message: Ciphers are invalid - attribute: ciphers - url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter + $ref: '#/components/schemas/SipGatewayCreateResponse' + description: List of SIP Gateways. + links: + allOf: + - $ref: '#/components/schemas/SipGatewayPaginationResponse' + description: Pagination links for the response. + SipGatewayPaginationResponse: + type: object + required: + - self + - first + - next + properties: + self: + type: string + format: uri + example: https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways?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/sip_gateways?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/sip_gateways?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page + SipGatewayResponse: + type: object + allOf: + - $ref: '#/components/schemas/SipGatewayCreateResponse' + SipGatewayUpdateResponse: + type: object + allOf: + - $ref: '#/components/schemas/SipGatewayCreateResponse' StopAction: type: object required: @@ -4317,8 +4840,8 @@ components: properties: description: type: string - description: A description of the property. example: Property description + description: A description of the property. nullable: type: boolean description: Whether the property can be null. @@ -4331,19 +4854,19 @@ components: type: array items: type: string - description: An array of strings that are the possible values example: - value1 - value2 - value3 + description: An array of strings that are the possible values default: type: string - description: The default string value example: default value + description: The default string value pattern: type: string - description: Regular expression pattern example: ^[a-zA-Z0-9_.-]*$ + description: Regular expression pattern format: allOf: - $ref: '#/components/schemas/StringFormat' @@ -4366,44 +4889,44 @@ components: properties: id: type: string - description: Unique ID of the Subscriber. example: d369a402-7b43-4512-8735-9d5e1f387814 + description: Unique ID of the Subscriber. email: type: string - description: Email of the Subscriber. example: johndoe@example.com + description: Email of the Subscriber. first_name: type: string - description: First name of the Subscriber. example: John + description: First name of the Subscriber. last_name: type: string - description: Last name of the Subscriber. example: Doe + description: Last name of the Subscriber. display_name: type: string - description: Display name of the Subscriber. example: John Doe + description: Display name of the Subscriber. job_title: type: string - description: Job title of the Subscriber. example: Software Engineer + description: Job title of the Subscriber. timezone: type: string - description: Timezone of the Subscriber. example: America/New_York + description: Timezone of the Subscriber. country: type: string - description: Country of the Subscriber. example: United States + description: Country of the Subscriber. region: type: string - description: Region of the Subscriber. example: New York + description: Region of the Subscriber. company_name: type: string - description: Company name of the Subscriber. example: SignalWire + description: Company name of the Subscriber. SubscriberAddress: type: object required: @@ -4419,50 +4942,50 @@ components: id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of a Subscriber Address. example: acaa5c49-be5e-4477-bce0-48f4b23b7720 + description: Unique ID of a Subscriber Address. resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of a Subscriber Address. example: acaa5c49-be5e-4477-bce0-48f4b23b7720 + description: Unique ID of a Subscriber Address. name: type: string - description: Name of the Subscriber Address. example: reception + description: Name of the Subscriber Address. display_name: type: string - description: Display Name of the Subscriber Address. example: Reception + description: Display Name of the Subscriber Address. type: type: string - description: Type of the Subscriber Address. example: room + description: Type of the Subscriber Address. cover_url: type: string format: uri - description: Cover URL of the Subscriber Address. example: https://example.com/cover.webp + description: Cover URL of the Subscriber Address. preview_url: type: string format: uri - description: Preview URL of the Subscriber Address. example: https://example.com/preview.webp + description: Preview URL of the Subscriber Address. channels: type: object properties: video: type: string - description: Video Channel of the Subscriber Address. example: /public/reception?channel=video + description: Video Channel of the Subscriber Address. audio: type: string - description: Audio Channel of the Subscriber Address. example: /public/reception?channel=audio + description: Audio Channel of the Subscriber Address. messaging: type: string - description: Messaging Channel of the Subscriber Address. example: /public/reception?channel=messaging + description: Messaging Channel of the Subscriber Address. required: - video - audio @@ -4477,18 +5000,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/external_swml_handlers?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page SubscriberAddressesResponse: type: object required: @@ -4530,8 +5053,8 @@ components: description: List of up to 10 UUIDs representing the allowed Fabric addresses. expire_at: type: integer - description: A unixtime (the number of seconds since 1970-01-01 00:00:00) at which the token should no longer be valid. Defaults to 'two hours from now' example: 1725513600 + description: A unixtime (the number of seconds since 1970-01-01 00:00:00) at which the token should no longer be valid. Defaults to 'two hours from now' SubscriberGuestTokenCreateResponse: type: object required: @@ -4539,8 +5062,8 @@ components: properties: token: type: string - description: Guest Token example: eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY2giOiJwdWMuc2lnbmFsd2lyZS5jb20iLCJ0eXAiOiJTQVQifQ..8O4EJs349q97jAcd.H4GNrC6gsWdz91ArWF9ce00Cm62iHfsrFRRUUGW3e96j9C3IphiJXvHYHTmD4qMt8czZ8cniF8c53vVAIZF-yBQibejiMxwnqW6KkLct2EJoPUf9g-wQwM0-lGGj9iPx_7yprkQekFK-7svkLcKlo1voZyavxIsWQlXByppmR_ospVx2u8jbAab0ZjKJNEnr1yPF9oNkyMAnkpkS8k8PwKaxUHBc5SGumKlexUjL3ixZDR6UOcbApVXxrB-DmQBs3otOT7hzME7oKvR-6Xy0XJ1pt4Of7MEzNBUK5Z5NMjtFiA8IqwDlNJz3I5gn8hbjSZwSMJHRJGx2DKpNKiu6fcd-3i2VwCpnKHaNUybMJ5gV3cTNfTFJQBSearCLv-7gMx6Gqy9FF_Hm2bGlfnjTQ9BCsCqXBkQ9EQD6yboi2uUhPyLmpzPqlrBc9ik0c3qR5ey5Jym_VnZXaT_S5NxjzIjLzvs33GOKiooGMsBWOm6mzTPcf398xaSErT4dF2wXwtZANou7Dt4BoTKa.DcLVYpma-iItaGhaOStu9A + description: Guest Token SubscriberInviteTokenCreateRequest: type: object required: @@ -4552,8 +5075,8 @@ components: description: Unique ID of a Subscriber Address expires_at: type: integer - description: A unixtime (the number of seconds since 1970-01-01 00:00:00) at which the token should no longer be valid. Defaults to 'two hours from now' example: 1725513600 + description: A unixtime (the number of seconds since 1970-01-01 00:00:00) at which the token should no longer be valid. Defaults to 'two hours from now' SubscriberInviteTokenCreateResponse: type: object required: @@ -4561,8 +5084,8 @@ components: properties: token: type: string - description: Invite Token example: eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY2giOiJwdWMuc2lnbmFsd2lyZS5jb20iLCJ0eXAiOiJTQVQifQ..8O4EJs349q97jAcd.H4GNrC6gsWdz91ArWF9ce00Cm62iHfsrFRRUUGW3e96j9C3IphiJXvHYHTmD4qMt8czZ8cniF8c53vVAIZF-yBQibejiMxwnqW6KkLct2EJoPUf9g-wQwM0-lGGj9iPx_7yprkQekFK-7svkLcKlo1voZyavxIsWQlXByppmR_ospVx2u8jbAab0ZjKJNEnr1yPF9oNkyMAnkpkS8k8PwKaxUHBc5SGumKlexUjL3ixZDR6UOcbApVXxrB-DmQBs3otOT7hzME7oKvR-6Xy0XJ1pt4Of7MEzNBUK5Z5NMjtFiA8IqwDlNJz3I5gn8hbjSZwSMJHRJGx2DKpNKiu6fcd-3i2VwCpnKHaNUybMJ5gV3cTNfTFJQBSearCLv-7gMx6Gqy9FF_Hm2bGlfnjTQ9BCsCqXBkQ9EQD6yboi2uUhPyLmpzPqlrBc9ik0c3qR5ey5Jym_VnZXaT_S5NxjzIjLzvs33GOKiooGMsBWOm6mzTPcf398xaSErT4dF2wXwtZANou7Dt4BoTKa.DcLVYpma-iItaGhaOStu9A + description: Invite Token SubscriberListResponse: type: object required: @@ -4585,18 +5108,18 @@ components: self: type: string format: uri - description: Link of the current page example: https://{space_name}.signalwire.com/api/fabric/resources/subscribers?page_number=0&page_size=50 + description: Link of the current page first: type: string format: uri - description: Link to the first page example: https://{space_name}.signalwire.com/api/fabric/resources/subscribers?page_number=0&page_size=50 + description: Link to the first page next: type: string format: uri - description: Link to the next page example: https://{space_name}.signalwire.com/api/fabric/resources/subscribers?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page SubscriberRequest: type: object required: @@ -4604,46 +5127,46 @@ components: properties: password: type: string + example: password123 minLength: 8 maxLength: 72 description: Password of the Subscriber. Defaults to a secure random password if not provided. - example: password123 email: type: string - description: Email of the Subscriber. example: johndoe@example.com + description: Email of the Subscriber. first_name: type: string - description: First name of the Subscriber. example: John + description: First name of the Subscriber. last_name: type: string - description: Last name of the Subscriber. example: Doe + description: Last name of the Subscriber. display_name: type: string - description: Display name of the Subscriber. example: John Doe + description: Display name of the Subscriber. job_title: type: string - description: Job title of the Subscriber. example: Software Engineer + description: Job title of the Subscriber. timezone: type: string - description: Timezone of the Subscriber. example: America/New_York + description: Timezone of the Subscriber. country: type: string - description: Country of the Subscriber. example: United States + description: Country of the Subscriber. region: type: string - description: Region of the Subscriber. example: New York + description: Region of the Subscriber. company_name: type: string - description: Company name of the Subscriber. example: SignalWire + description: Company name of the Subscriber. SubscriberResponse: type: object required: @@ -4657,16 +5180,16 @@ components: properties: id: type: string - description: Unique ID of the request. example: d369a402-7b43-4512-8735-9d5e1f387814 + description: Unique ID of the request. project_id: type: string - description: Unique ID of the project. example: d369a402-7b43-4512-8735-9d5e1f387814 + description: Unique ID of the project. display_name: type: string - description: Display name of the Subscriber. example: John Doe + description: Display name of the Subscriber. type: type: string enum: @@ -4675,13 +5198,13 @@ components: created_at: type: string format: date-time + example: 2024-10-17T14:14:53Z description: Date and time when the resource was created. - example: '2024-10-17T14:14:53Z' updated_at: type: string format: date-time + example: 2024-10-17T14:14:53Z description: Date and time when the resource was updated. - example: '2024-10-17T14:14:53Z' subscriber: allOf: - $ref: '#/components/schemas/Subscriber' @@ -4694,20 +5217,20 @@ components: properties: username: type: string - description: Username of the Sip Endpoint. example: justice-league + description: Username of the Sip Endpoint. password: type: string - description: Password of the Sip Endpoint. example: hack-me-if-you-can + description: Password of the Sip Endpoint. caller_id: type: string - description: Caller ID of the Sip Endpoint. example: call-id-123 + description: Caller ID of the Sip Endpoint. send_as: type: string - description: The Number to send as. example: '+14632322867' + description: The Number to send as. ciphers: type: array items: @@ -4721,28 +5244,28 @@ components: encryption: allOf: - $ref: '#/components/schemas/EncryptionType' - description: Encryption requirement of the Sip Endpoint. example: optional + description: Encryption requirement of the Sip Endpoint. default: default SubscriberSipEndpointBaseRequestUpdate: type: object properties: username: type: string - description: Username of the Sip Endpoint. example: justice-league + description: Username of the Sip Endpoint. password: type: string - description: Password of the Sip Endpoint. example: hack-me-if-you-can + description: Password of the Sip Endpoint. caller_id: type: string - description: Caller ID of the Sip Endpoint. example: call-id-123 + description: Caller ID of the Sip Endpoint. send_as: type: string - description: The Number to send as. example: '+14632322867' + description: The Number to send as. ciphers: type: array items: @@ -4756,8 +5279,8 @@ components: encryption: allOf: - $ref: '#/components/schemas/EncryptionType' - description: Encryption requirement of the Sip Endpoint. example: optional + description: Encryption requirement of the Sip Endpoint. default: default SubscriberSipEndpointCreateRequest: oneOf: @@ -4769,8 +5292,8 @@ components: call_handler: allOf: - $ref: '#/components/schemas/CallHandlerPassthroughType' - description: Call handler of the Sip Endpoint. example: block-pstn + description: Call handler of the Sip Endpoint. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequest' title: Create Subscriber SIP Endpoint with Call Handler @@ -4780,8 +5303,8 @@ components: call_handler: allOf: - $ref: '#/components/schemas/CallHandlerPassthroughType' - description: Call handler of the Sip Endpoint. example: block-pstn + description: Call handler of the Sip Endpoint. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequestUpdate' title: Create Subscriber SIP Endpoint with Call Handler @@ -4791,8 +5314,8 @@ components: calling_handler_resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Calling Handler Resource. example: f7078ea7-dc79-4763-96f6-725bf5829097 + description: Unique ID of the Calling Handler Resource. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequest' title: Create Subscriber SIP Endpoint with Resource ID @@ -4802,8 +5325,8 @@ components: calling_handler_resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Calling Handler Resource. example: f7078ea7-dc79-4763-96f6-725bf5829097 + description: Unique ID of the Calling Handler Resource. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequestUpdate' title: Create Subscriber SIP Endpoint with Resource ID @@ -4829,8 +5352,8 @@ components: call_handler: allOf: - $ref: '#/components/schemas/CallHandlerPassthroughType' - description: Call handler of the Sip Endpoint. example: block-pstn + description: Call handler of the Sip Endpoint. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequest' title: Update Subscriber SIP Endpoint with Call Handler @@ -4840,8 +5363,8 @@ components: call_handler: allOf: - $ref: '#/components/schemas/CallHandlerPassthroughType' - description: Call handler of the Sip Endpoint. example: block-pstn + description: Call handler of the Sip Endpoint. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequestUpdate' title: Update Subscriber SIP Endpoint with Call Handler @@ -4851,8 +5374,8 @@ components: calling_handler_resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Calling Handler Resource. example: f7078ea7-dc79-4763-96f6-725bf5829097 + description: Unique ID of the Calling Handler Resource. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequest' title: Update Subscriber SIP Endpoint with Resource ID @@ -4862,8 +5385,8 @@ components: calling_handler_resource_id: allOf: - $ref: '#/components/schemas/uuid' - description: Unique ID of the Calling Handler Resource. example: f7078ea7-dc79-4763-96f6-725bf5829097 + description: Unique ID of the Calling Handler Resource. allOf: - $ref: '#/components/schemas/SubscriberSipEndpointBaseRequestUpdate' title: Update Subscriber SIP Endpoint with Resource ID @@ -4874,53 +5397,53 @@ components: properties: reference: type: string - description: A string that uniquely identifies the subscriber. Often it's an email, but can be any other string. example: john.doe@example.com + description: A string that uniquely identifies the subscriber. Often it's an email, but can be any other string. expire_at: type: integer - description: A unixtime (the number of seconds since 1970-01-01 00:00:00) at which the token should no longer be valid. Defaults to 'two hours from now' example: 1693823284 + description: A unixtime (the number of seconds since 1970-01-01 00:00:00) at which the token should no longer be valid. Defaults to 'two hours from now' application_id: allOf: - $ref: '#/components/schemas/uuid' - description: The ID of the application that the token is associated with. example: 123e4567-e89b-12d3-a456-426614174000 + description: The ID of the application that the token is associated with. password: type: string - description: Set or update the subscriber's password. Omit this field or pass an empty string if you don't want to update the password. example: password123 + description: Set or update the subscriber's password. Omit this field or pass an empty string if you don't want to update the password. first_name: type: string - description: Set or update the first name of the subscriber. example: John + description: Set or update the first name of the subscriber. last_name: type: string - description: Set or update the last name of the subscriber. example: Doe + description: Set or update the last name of the subscriber. display_name: type: string - description: Set or update the display name of the subscriber. example: John Doe + description: Set or update the display name of the subscriber. job_title: type: string - description: Set or update the job title of the subscriber. example: Software Engineer + description: Set or update the job title of the subscriber. time_zone: type: string - description: Set or update the time zone of the subscriber. example: America/New_York + description: Set or update the time zone of the subscriber. country: type: string - description: Set or update the country of the subscriber. example: US + description: Set or update the country of the subscriber. region: type: string - description: Set or update the region of the subscriber. example: CA + description: Set or update the region of the subscriber. company_name: type: string - description: Set or update the company name of the subscriber. example: SignalWire + description: Set or update the company name of the subscriber. SubscriberTokenResponse: type: object required: @@ -4930,13 +5453,13 @@ components: subscriber_id: allOf: - $ref: '#/components/schemas/uuid' - description: The ID of the subscriber that the token is associated with. example: 32d94154-9297-418c-9a85-4a69e0c67c30 + description: The ID of the subscriber that the token is associated with. token: allOf: - $ref: '#/components/schemas/uuid' - description: The token that is associated with the subscriber. example: eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwidHlwIjoiU0FUIn0..HahMYxqt4uI14qSH.daMTBR53lfEfEFiVAhr0pPSRqZhEod_YzavoG9-4ieiRQvl8GtP3FFNx0VLfkJqNcjUNbAaiKrEMnfOtCnQjiq1Kn0Iq90MYdM00QJ7cTaQ88vfbqdE92p-d4oDeg6z_vAsgrFgEobmrlDQndKxCWOD921iYxyLP0vqNaokN3kIM06iAWu_UpnTYEeR1l068xhK2xb6P9wbI2FDKFQoMgCdbjvABF7RRyaEzUoaQ5_Wj53YO6PFYuYcPbqMhdtvSSQiK3Nw6bFer2OfFs6s2RTukRGsocgC5Q7pwQwzYky-YgrPCb-pVAJajVSXUJrayvOi8-TeyCpICW4zTeJa5icZ380cWtafUH4rEB_FOJciJf0BCy48ajbz0NE121uBl2mqA1HE0_mQA53UqVjbrbE9hVOfnN4KpwOfULhIjx54tIekJQgG-aK2AYsLPCDNhuSpHvdwJcTM0Gzy3mS2veyaDV8q2qN5F_F9OThTQzcfy.AXzVNrJc_pGVPsticsVM0w + description: The token that is associated with the subscriber. SubscriberTokenStatusCode422: type: object required: @@ -4988,8 +5511,8 @@ components: - type: array items: type: string - description: The function names to toggle. example: Discount + description: The function names to toggle. required: - active - function @@ -5029,9 +5552,9 @@ components: anyOf: - type: string - type: object + example: closed description: The key of the global data to unset from the `global_meta_data`. You can also reset the `global_meta_data` by passing in a new object. title: unset_global_data - example: closed title: UnsetGlobalDataAction object UnsetMetaDataAction: type: object @@ -5042,9 +5565,9 @@ components: anyOf: - type: string - type: object + example: extra_cheese description: The key of the local data to unset from the `meta_data`. You can also reset the `meta_data` by passing in a new object. title: unset_meta_data - example: extra_cheese title: UnsetMetaDataAction object UrlMethodType: type: string @@ -5065,9 +5588,9 @@ components: properties: user_input: type: string + example: I want a tasty Pizza. description: Used to inject text into the users queue as if they input the data themselves. title: user_input - example: I want a tasty Pizza. title: UserInputAction object VideoChannel: type: object @@ -5076,8 +5599,8 @@ components: properties: video: type: string - description: Video Channel of Fabric Address example: /external/resource_name?channel=video + description: Video Channel of Fabric Address Webhook: type: object required: @@ -5099,27 +5622,27 @@ components: - type: array items: type: string - description: A string or array of strings that represent the keys to be used for error handling. This will match the key(s) in the response from the API call. example: failed + description: A string or array of strings that represent the keys to be used for error handling. This will match the key(s) in the response from the API call. url: type: string - description: The endpoint for the external service or API. example: https://example.com + description: The endpoint for the external service or API. foreach: type: object properties: input_key: type: string - description: The key to be used to access the current element in the array. example: success + description: The key to be used to access the current element in the array. output_key: type: string - description: The key that can be referenced in the output of the `foreach` iteration. The values that are stored from `append` will be stored in this key. example: deliverer + description: The key that can be referenced in the output of the `foreach` iteration. The values that are stored from `append` will be stored in this key. max: type: integer - description: The max amount of elements that are iterated over in the array. This will start at the beginning of the array. example: 5 + description: The max amount of elements that are iterated over in the array. This will start at the beginning of the array. append: type: string description: |- @@ -5163,8 +5686,8 @@ components: properties: response: type: string - description: A static response text or message returned to the AI agents context. example: Order placed + description: A static response text or message returned to the AI agents context. action: type: array items: From cad59e8c15744ce54e849706f1fd60db99544ca6 Mon Sep 17 00:00:00 2001 From: diego-signalwire Date: Thu, 3 Apr 2025 10:06:19 -0300 Subject: [PATCH 2/4] tweaks and fixes --- .../fabric-api/sip_gateways/main.tsp | 4 ++-- .../fabric-api/sip_gateways/models/requests.tsp | 4 ++-- .../fabric-api/sip_gateways/models/responses.tsp | 6 +++--- .../tsp-output/@typespec/openapi3/openapi.yaml | 16 ++++++++-------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/api/signalwire-rest/fabric-api/sip_gateways/main.tsp b/api/signalwire-rest/fabric-api/sip_gateways/main.tsp index cb9d95f3..4fc58273 100644 --- a/api/signalwire-rest/fabric-api/sip_gateways/main.tsp +++ b/api/signalwire-rest/fabric-api/sip_gateways/main.tsp @@ -30,7 +30,7 @@ namespace FabricAPI.SipGateways { StatusCode404; @summary("Create SIP Gateway") - @doc("Creates a Subscriber Guest Token to be used for server-side API calls. The token is authorized using an existing API token.") + @doc("Creates a SIP Gateway that can be used to dial external SIP entities.") @post create(...SipGatewayCreateRequest): { @statusCode statusCode: 201; @body sip_gateway: SipGatewayCreateResponse; } | StatusCode401 | @@ -40,7 +40,7 @@ namespace FabricAPI.SipGateways { @summary("Update SIP Gateway") @doc("Updates a SIP Gateway by ID") @patch update(...SipGatewayID, ...SipGatewayUpdateRequest): { - @statusCode statusCode: 200; @body cxml_application: SipGatewayUpdateResponse; + @statusCode statusCode: 200; @body sip_gateway: SipGatewayUpdateResponse; } | StatusCode401 | StatusCode404 | diff --git a/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp b/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp index 44fefb70..d495675f 100644 --- a/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp +++ b/api/signalwire-rest/fabric-api/sip_gateways/models/requests.tsp @@ -1,9 +1,9 @@ model SipGatewayCreateRequest { @doc("Display name for the SIP Gateway.") - @example("Different SIP Endpoint Name") + @example("My SIP Gateway") name: string; - @doc("SIP URI for the endpoint.") + @doc("External SIP URI.") @example("user2@domain.com") uri: string; diff --git a/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp b/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp index cfecbcd8..5c7dd4dd 100644 --- a/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp +++ b/api/signalwire-rest/fabric-api/sip_gateways/models/responses.tsp @@ -13,7 +13,7 @@ model SipGatewayCreateResponse { project_id: string; @doc("Display name of the SIP Gateway.") - @example("Different SIP Endpoint Name") + @example("My SIP Gateway") display_name: string; @doc("Type of the resource.") @@ -40,12 +40,12 @@ model SipGateway { @example("cce59cad-104d-4c28-ada4-98cfd102ae09") id: string; - @doc("SIP URI for the endpoint.") + @doc("The URI for the SIP Gateway.") @example("user3@domain.com") uri: string; @doc("Display name of the SIP Gateway.") - @example("Different SIP Endpoint Name") + @example("My SIP Gateway") name: string; @doc("List of supported SIP ciphers.") 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 1e9adc71..e2f08896 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 @@ -991,7 +991,7 @@ paths: post: operationId: SipGateways_create summary: Create SIP Gateway - description: Creates a Subscriber Guest Token to be used for server-side API calls. The token is authorized using an existing API token. + description: Creates a SIP Gateway that can be used to dial external SIP entities. parameters: [] responses: '201': @@ -4513,10 +4513,10 @@ components: uri: type: string example: user3@domain.com - description: SIP URI for the endpoint. + description: The URI for the SIP Gateway. name: type: string - example: Different SIP Endpoint Name + example: My SIP Gateway description: Display name of the SIP Gateway. ciphers: type: array @@ -4633,12 +4633,12 @@ components: properties: name: type: string - example: Different SIP Endpoint Name + example: My SIP Gateway description: Display name for the SIP Gateway. uri: type: string example: user2@domain.com - description: SIP URI for the endpoint. + description: External SIP URI. encryption: type: string enum: @@ -4667,12 +4667,12 @@ components: properties: name: type: string - example: Different SIP Endpoint Name + example: My SIP Gateway description: Display name for the SIP Gateway. uri: type: string example: user2@domain.com - description: SIP URI for the endpoint. + description: External SIP URI. encryption: type: string enum: @@ -4717,7 +4717,7 @@ components: description: Project ID associated with the resource. display_name: type: string - example: Different SIP Endpoint Name + example: My SIP Gateway description: Display name of the SIP Gateway. type: type: string From 63d03b2c6a2e2161a1fe664532a773d6eb932f3f Mon Sep 17 00:00:00 2001 From: diego-signalwire Date: Mon, 21 Apr 2025 12:04:08 -0300 Subject: [PATCH 3/4] put back sip_gateway folder to the main build list --- api/signalwire-rest/fabric-api/main.tsp | 1 + .../@typespec/openapi3/openapi.yaml | 523 ++++++++++++++++++ 2 files changed, 524 insertions(+) diff --git a/api/signalwire-rest/fabric-api/main.tsp b/api/signalwire-rest/fabric-api/main.tsp index 1a17fae5..113ee0b5 100644 --- a/api/signalwire-rest/fabric-api/main.tsp +++ b/api/signalwire-rest/fabric-api/main.tsp @@ -11,6 +11,7 @@ import "./external-swml-handler-addresses"; import "./ai-agent"; import "./ai-agent-addresses"; import "./embeds-tokens"; +import "./sip_gateways"; using TypeSpec.Http; 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 8a7d0e3f..59041fd1 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 @@ -13,6 +13,7 @@ tags: - name: 'AI Agents: Custom' - name: AI Agent - name: Embeds Tokens + - name: SIP Gateway paths: /addresses: get: @@ -792,6 +793,217 @@ paths: - Not Found tags: - External SWML Handler + /resources/sip_gateways: + get: + operationId: SipGateways_list + summary: List SIP Gateways + description: Returns a paginated list of SIP Gateways for the authenticated project. + parameters: [] + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayListResponse' + '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: + - SIP Gateway + post: + operationId: SipGateways_create + summary: Create SIP Gateway + description: Creates a SIP Gateway that can be used to dial external SIP entities. + 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/SipGatewayCreateResponse' + '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/SipGatewayCreateStatusCode422' + tags: + - SIP Gateway + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayCreateRequest' + /resources/sip_gateways/{id}: + get: + operationId: SipGateways_read + summary: Get SIP Gateway + description: Returns an SIP Gateway by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayResponse' + '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: + - SIP Gateway + patch: + operationId: SipGateways_update + summary: Update SIP Gateway + description: Updates a SIP Gateway by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayUpdateResponse' + '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/SipGatewayCreateStatusCode422' + tags: + - SIP Gateway + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayCreateRequestUpdate' + delete: + operationId: SipGateways_delete + summary: Delete SIP Gateway + description: Deletes a SIP Gateway} by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + 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: + - SIP Gateway + /resources/sip_gateways/{resource_id}/addresses: + get: + operationId: SipGateways_readAddressesByResourceId + summary: List Fabric Addresses assigned to a SIP Gateway + description: Returns a paginated list of Fabric Addresses associated with the specified SIP Gateway. + parameters: + - name: resource_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayAddressListResponse' + '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: + - SIP Gateway /resources/subscribers: get: operationId: Subscribers_list @@ -1328,6 +1540,13 @@ components: description: Unique ID of a Sip Endpoint. schema: $ref: '#/components/schemas/uuid' + SipGatewayID: + name: id + in: path + required: true + description: Unique ID of a SIP Gateway. + schema: + $ref: '#/components/schemas/uuid' SubscriberAddressID: name: id in: path @@ -3765,6 +3984,310 @@ components: message: Ciphers are invalid attribute: ciphers url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter + SipGateway: + type: object + required: + - id + - uri + - name + - ciphers + - codecs + - encryption + properties: + id: + type: string + example: cce59cad-104d-4c28-ada4-98cfd102ae09 + description: Unique ID of the SIP Gateway. + uri: + type: string + example: user3@domain.com + description: The URI for the SIP Gateway. + name: + type: string + example: My SIP Gateway + description: Display name of the SIP Gateway. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement. + SipGatewayAddress: + 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. + SipGatewayAddressListResponse: + type: object + required: + - data + - links + properties: + data: + type: array + items: + $ref: '#/components/schemas/SipGatewayAddress' + links: + $ref: '#/components/schemas/SipGatewayAddressPaginationResponse' + SipGatewayAddressPaginationResponse: + type: object + required: + - self + - first + - next + properties: + self: + type: string + format: uri + example: https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways/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/sip_gateways/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/sip_gateways/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 + SipGatewayCreateRequest: + type: object + required: + - name + - uri + - encryption + - ciphers + - codecs + properties: + name: + type: string + example: My SIP Gateway + description: Display name for the SIP Gateway. + uri: + type: string + example: user2@domain.com + description: External SIP URI. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement for the SIP connection. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs for media transmission. + SipGatewayCreateRequestUpdate: + type: object + properties: + name: + type: string + example: My SIP Gateway + description: Display name for the SIP Gateway. + uri: + type: string + example: user2@domain.com + description: External SIP URI. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement for the SIP connection. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs for media transmission. + SipGatewayCreateResponse: + type: object + required: + - id + - project_id + - display_name + - type + - created_at + - updated_at + - sip_gateway + properties: + id: + type: string + example: 0823a606-0aff-4c90-9eba-f88ba118fe05 + description: Unique ID of the resource. + project_id: + type: string + example: bc949800-7b40-43cf-8438-a85facfcbdd1 + description: Project ID associated with the resource. + display_name: + type: string + example: My SIP Gateway + description: Display name of the SIP Gateway. + type: + type: string + enum: + - sip_gateway + example: sip_gateway + description: Type of the resource. + created_at: + type: string + format: date-time + example: 2025-04-01T19:05:42Z + description: Timestamp when the resource was created. + updated_at: + type: string + format: date-time + example: 2025-04-01T19:05:42Z + description: Timestamp when the resource was last updated. + sip_gateway: + allOf: + - $ref: '#/components/schemas/SipGateway' + description: SIP Gateway configuration details. + SipGatewayCreateStatusCode422: + 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 can't be blank + attribute: name + url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter + SipGatewayListResponse: + type: object + required: + - data + - links + properties: + data: + type: array + items: + $ref: '#/components/schemas/SipGatewayCreateResponse' + description: List of SIP Gateways. + links: + allOf: + - $ref: '#/components/schemas/SipGatewayPaginationResponse' + description: Pagination links for the response. + SipGatewayPaginationResponse: + type: object + required: + - self + - first + - next + properties: + self: + type: string + format: uri + example: https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways?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/sip_gateways?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/sip_gateways?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page + SipGatewayResponse: + type: object + allOf: + - $ref: '#/components/schemas/SipGatewayCreateResponse' + SipGatewayUpdateResponse: + type: object + allOf: + - $ref: '#/components/schemas/SipGatewayCreateResponse' StopAction: type: object required: From c59ed3d9e36366ebd6d574c1c47a2184b33b64c7 Mon Sep 17 00:00:00 2001 From: diego-signalwire Date: Mon, 21 Apr 2025 12:21:29 -0300 Subject: [PATCH 4/4] update _spec.yaml with sip gateways endpoints --- api/signalwire-rest/fabric-api/_spec_.yaml | 524 ++++++++++++++++++++- 1 file changed, 523 insertions(+), 1 deletion(-) diff --git a/api/signalwire-rest/fabric-api/_spec_.yaml b/api/signalwire-rest/fabric-api/_spec_.yaml index 7fe03e74..e44c5767 100644 --- a/api/signalwire-rest/fabric-api/_spec_.yaml +++ b/api/signalwire-rest/fabric-api/_spec_.yaml @@ -61,6 +61,13 @@ components: description: Unique ID of a Sip Endpoint. schema: $ref: '#/components/schemas/uuid' + SipGatewayID: + name: id + in: path + required: true + description: Unique ID of a SIP Gateway. + schema: + $ref: '#/components/schemas/uuid' ExternalLAMLHandlerIDPath: name: external_laml_handler_id in: path @@ -3421,7 +3428,310 @@ components: message: Ciphers are invalid attribute: ciphers url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes#invalid_parameter - + SipGateway: + type: object + required: + - id + - uri + - name + - ciphers + - codecs + - encryption + properties: + id: + type: string + example: cce59cad-104d-4c28-ada4-98cfd102ae09 + description: Unique ID of the SIP Gateway. + uri: + type: string + example: user3@domain.com + description: The URI for the SIP Gateway. + name: + type: string + example: My SIP Gateway + description: Display name of the SIP Gateway. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement. + SipGatewayAddress: + 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. + SipGatewayAddressListResponse: + type: object + required: + - data + - links + properties: + data: + type: array + items: + $ref: '#/components/schemas/SipGatewayAddress' + links: + $ref: '#/components/schemas/SipGatewayAddressPaginationResponse' + SipGatewayAddressPaginationResponse: + type: object + required: + - self + - first + - next + properties: + self: + type: string + format: uri + example: https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways/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/sip_gateways/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/sip_gateways/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 + SipGatewayCreateRequest: + type: object + required: + - name + - uri + - encryption + - ciphers + - codecs + properties: + name: + type: string + example: My SIP Gateway + description: Display name for the SIP Gateway. + uri: + type: string + example: user2@domain.com + description: External SIP URI. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement for the SIP connection. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs for media transmission. + SipGatewayCreateRequestUpdate: + type: object + properties: + name: + type: string + example: My SIP Gateway + description: Display name for the SIP Gateway. + uri: + type: string + example: user2@domain.com + description: External SIP URI. + encryption: + type: string + enum: + - optional + - required + - disabled + example: required + description: Specifies the encryption requirement for the SIP connection. + ciphers: + type: array + items: + type: string + example: + - AEAD_AES_256_GCM_8 + - AES_256_CM_HMAC_SHA1_80 + description: List of supported SIP ciphers. + codecs: + type: array + items: + type: string + example: + - OPUS + description: List of supported codecs for media transmission. + SipGatewayCreateResponse: + type: object + required: + - id + - project_id + - display_name + - type + - created_at + - updated_at + - sip_gateway + properties: + id: + type: string + example: 0823a606-0aff-4c90-9eba-f88ba118fe05 + description: Unique ID of the resource. + project_id: + type: string + example: bc949800-7b40-43cf-8438-a85facfcbdd1 + description: Project ID associated with the resource. + display_name: + type: string + example: My SIP Gateway + description: Display name of the SIP Gateway. + type: + type: string + enum: + - sip_gateway + example: sip_gateway + description: Type of the resource. + created_at: + type: string + format: date-time + example: 2025-04-01T19:05:42Z + description: Timestamp when the resource was created. + updated_at: + type: string + format: date-time + example: 2025-04-01T19:05:42Z + description: Timestamp when the resource was last updated. + sip_gateway: + allOf: + - $ref: '#/components/schemas/SipGateway' + description: SIP Gateway configuration details. + SipGatewayCreateStatusCode422: + 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 can't be blank + attribute: name + url: https://developer.signalwire.com/rest/signalwire-rest/overview/error-codes/#missing_required_parameter + SipGatewayListResponse: + type: object + required: + - data + - links + properties: + data: + type: array + items: + $ref: '#/components/schemas/SipGatewayCreateResponse' + description: List of SIP Gateways. + links: + allOf: + - $ref: '#/components/schemas/SipGatewayPaginationResponse' + description: Pagination links for the response. + SipGatewayPaginationResponse: + type: object + required: + - self + - first + - next + properties: + self: + type: string + format: uri + example: https://{space_name}.signalwire.com/api/fabric/resources/sip_gateways?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/sip_gateways?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/sip_gateways?page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca + description: Link to the next page + SipGatewayResponse: + type: object + allOf: + - $ref: '#/components/schemas/SipGatewayCreateResponse' + SipGatewayUpdateResponse: + type: object + allOf: + - $ref: '#/components/schemas/SipGatewayCreateResponse' CxmlApplication: type: object required: @@ -3598,6 +3908,7 @@ tags: - name: Relay Applications - name: Resources - name: SIP Endpoints + - name: SIP Gateway - name: Subscribers - name: 'Subscribers: Tokens' - name: 'Subscribers: SIP Endpoints' @@ -7140,6 +7451,217 @@ paths: - Not Found tags: - External SWML Handler + /resources/sip_gateways: + get: + operationId: SipGateways_list + summary: List SIP Gateways + description: Returns a paginated list of SIP Gateways for the authenticated project. + parameters: [] + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayListResponse' + '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: + - SIP Gateway + post: + operationId: SipGateways_create + summary: Create SIP Gateway + description: Creates a SIP Gateway that can be used to dial external SIP entities. + 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/SipGatewayCreateResponse' + '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/SipGatewayCreateStatusCode422' + tags: + - SIP Gateway + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayCreateRequest' + /resources/sip_gateways/{id}: + get: + operationId: SipGateways_read + summary: Get SIP Gateway + description: Returns an SIP Gateway by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayResponse' + '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: + - SIP Gateway + patch: + operationId: SipGateways_update + summary: Update SIP Gateway + description: Updates a SIP Gateway by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayUpdateResponse' + '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/SipGatewayCreateStatusCode422' + tags: + - SIP Gateway + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayCreateRequestUpdate' + delete: + operationId: SipGateways_delete + summary: Delete SIP Gateway + description: Deletes a SIP Gateway} by ID + parameters: + - $ref: '#/components/parameters/SipGatewayID' + 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: + - SIP Gateway + /resources/sip_gateways/{resource_id}/addresses: + get: + operationId: SipGateways_readAddressesByResourceId + summary: List Fabric Addresses assigned to a SIP Gateway + description: Returns a paginated list of Fabric Addresses associated with the specified SIP Gateway. + parameters: + - name: resource_id + in: path + required: true + schema: + type: string + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + $ref: '#/components/schemas/SipGatewayAddressListResponse' + '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: + - SIP Gateway /resources/laml_bins/{id}/addresses: get: tags: