bandwidth-sdk 17.3.2 → 18.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +6 -6
  3. data/README.md +28 -2
  4. data/bandwidth.yml +979 -60
  5. data/coverage/.last_run.json +1 -1
  6. data/coverage/.resultset.json +783 -152
  7. data/coverage/index.html +21642 -14804
  8. data/docs/BrtcError.md +26 -0
  9. data/docs/BrtcErrorResponse.md +22 -0
  10. data/docs/BrtcErrorSource.md +24 -0
  11. data/docs/BrtcLink.md +22 -0
  12. data/docs/CreateCall.md +2 -2
  13. data/docs/CreateEndpointRequestBase.md +26 -0
  14. data/docs/CreateEndpointResponse.md +22 -0
  15. data/docs/CreateEndpointResponseData.md +32 -0
  16. data/docs/CreateWebRtcConnectionRequest.md +28 -0
  17. data/docs/Device.md +24 -0
  18. data/docs/{BusinessRegistrationIssuingCountryEnum.md → DeviceStatusEnum.md} +2 -2
  19. data/docs/Endpoint.md +30 -0
  20. data/docs/EndpointDirectionEnum.md +15 -0
  21. data/docs/EndpointEvent.md +34 -0
  22. data/docs/EndpointEventTypeEnum.md +15 -0
  23. data/docs/EndpointResponse.md +22 -0
  24. data/docs/EndpointStatusEnum.md +15 -0
  25. data/docs/EndpointTypeEnum.md +15 -0
  26. data/docs/Endpoints.md +28 -0
  27. data/docs/EndpointsApi.md +395 -0
  28. data/docs/InboundCallback.md +2 -2
  29. data/docs/ListEndpointsResponse.md +24 -0
  30. data/docs/LookupResult.md +1 -1
  31. data/docs/MachineDetectionConfiguration.md +1 -1
  32. data/docs/MediaApi.md +1 -1
  33. data/docs/MessageRequest.md +1 -1
  34. data/docs/MmsMessageContentFile.md +1 -1
  35. data/docs/Page.md +24 -0
  36. data/docs/RbmActionBase.md +1 -1
  37. data/docs/RbmSuggestionResponse.md +1 -1
  38. data/docs/SipConnectionMetadata.md +24 -0
  39. data/docs/SipCredentials.md +20 -0
  40. data/docs/StatusCallback.md +1 -1
  41. data/docs/SyncLookupRequest.md +3 -1
  42. data/docs/TfvSubmissionInfo.md +3 -3
  43. data/docs/UpdateCall.md +1 -1
  44. data/docs/VerificationRequest.md +3 -3
  45. data/docs/VerificationUpdateRequest.md +3 -3
  46. data/docs/WebhookSubscriptionError.md +22 -0
  47. data/docs/WebhookSubscriptionsListBody.md +1 -1
  48. data/lib/bandwidth-sdk/api/endpoints_api.rb +397 -0
  49. data/lib/bandwidth-sdk/api/media_api.rb +2 -2
  50. data/lib/bandwidth-sdk/configuration.rb +30 -0
  51. data/lib/bandwidth-sdk/models/brtc_error.rb +219 -0
  52. data/lib/bandwidth-sdk/models/brtc_error_response.rb +204 -0
  53. data/lib/bandwidth-sdk/models/brtc_error_source.rb +176 -0
  54. data/lib/bandwidth-sdk/models/brtc_link.rb +166 -0
  55. data/lib/bandwidth-sdk/models/create_call.rb +7 -7
  56. data/lib/bandwidth-sdk/models/create_endpoint_request_base.rb +250 -0
  57. data/lib/bandwidth-sdk/models/create_endpoint_response.rb +218 -0
  58. data/lib/bandwidth-sdk/models/create_endpoint_response_data.rb +356 -0
  59. data/lib/bandwidth-sdk/models/create_web_rtc_connection_request.rb +266 -0
  60. data/lib/bandwidth-sdk/models/device.rb +258 -0
  61. data/lib/bandwidth-sdk/models/device_status_enum.rb +40 -0
  62. data/lib/bandwidth-sdk/models/endpoint.rb +329 -0
  63. data/lib/bandwidth-sdk/models/endpoint_direction_enum.rb +41 -0
  64. data/lib/bandwidth-sdk/models/endpoint_event.rb +381 -0
  65. data/lib/bandwidth-sdk/models/endpoint_event_type_enum.rb +40 -0
  66. data/lib/bandwidth-sdk/models/endpoint_response.rb +218 -0
  67. data/lib/bandwidth-sdk/models/endpoint_status_enum.rb +40 -0
  68. data/lib/bandwidth-sdk/models/endpoint_type_enum.rb +39 -0
  69. data/lib/bandwidth-sdk/models/endpoints.rb +311 -0
  70. data/lib/bandwidth-sdk/models/inbound_callback.rb +2 -2
  71. data/lib/bandwidth-sdk/models/list_endpoints_response.rb +229 -0
  72. data/lib/bandwidth-sdk/models/lookup_result.rb +1 -1
  73. data/lib/bandwidth-sdk/models/machine_detection_configuration.rb +1 -1
  74. data/lib/bandwidth-sdk/models/message_request.rb +1 -1
  75. data/lib/bandwidth-sdk/models/mms_message_content_file.rb +1 -1
  76. data/lib/bandwidth-sdk/models/page.rb +259 -0
  77. data/lib/bandwidth-sdk/models/sip_connection_metadata.rb +175 -0
  78. data/lib/bandwidth-sdk/models/sip_credentials.rb +156 -0
  79. data/lib/bandwidth-sdk/models/status_callback.rb +1 -1
  80. data/lib/bandwidth-sdk/models/sync_lookup_request.rb +35 -4
  81. data/lib/bandwidth-sdk/models/tfv_submission_info.rb +4 -2
  82. data/lib/bandwidth-sdk/models/update_call.rb +6 -6
  83. data/lib/bandwidth-sdk/models/verification_request.rb +4 -2
  84. data/lib/bandwidth-sdk/models/verification_update_request.rb +4 -2
  85. data/lib/bandwidth-sdk/models/webhook_subscription_error.rb +165 -0
  86. data/lib/bandwidth-sdk/models/webhook_subscriptions_list_body.rb +1 -1
  87. data/lib/bandwidth-sdk/version.rb +1 -1
  88. data/lib/bandwidth-sdk.rb +24 -2
  89. data/spec/smoke/endpoints_api_spec.rb +148 -0
  90. data/spec/smoke/phone_number_lookup_api_spec.rb +1 -9
  91. data/spec/unit/api/endpoints_api_spec.rb +172 -0
  92. data/spec/unit/api/phone_number_lookup_api_spec.rb +2 -0
  93. data/spec/unit/api/toll_free_verification_api_spec.rb +1 -1
  94. metadata +104 -54
  95. data/lib/bandwidth-sdk/models/business_registration_issuing_country_enum.rb +0 -55
data/bandwidth.yml CHANGED
@@ -22,6 +22,7 @@ tags:
22
22
  - name: MFA
23
23
  - name: Phone Number Lookup
24
24
  - name: Toll-Free Verification
25
+ - name: Endpoints
25
26
  paths:
26
27
  /users/{accountId}/media:
27
28
  get:
@@ -95,8 +96,8 @@ paths:
95
96
  under this account, the previous file will be overwritten.
96
97
 
97
98
 
98
- A list of supported media types can be found
99
- [here](https://support.bandwidth.com/hc/en-us/articles/360014128994-What-MMS-file-types-are-supported-).
99
+ A list of supported media types can be found at [Bandwidth
100
+ Support](https://www.bandwidth.com/support/en/articles/12823220-what-mms-file-types-are-supported).
100
101
  operationId: uploadMedia
101
102
  tags:
102
103
  - Media
@@ -1690,6 +1691,165 @@ paths:
1690
1691
  '503':
1691
1692
  $ref: '#/components/responses/tfvServiceUnavailableResponse'
1692
1693
  servers: *ref_4
1694
+ /accounts/{accountId}/endpoints:
1695
+ get:
1696
+ tags:
1697
+ - Endpoints
1698
+ summary: List Endpoints
1699
+ description: Returns a list of endpoints associated with the specified account.
1700
+ operationId: listEndpoints
1701
+ parameters:
1702
+ - $ref: '#/components/parameters/accountId'
1703
+ - $ref: '#/components/parameters/endpointType'
1704
+ - $ref: '#/components/parameters/endpointStatus'
1705
+ - $ref: '#/components/parameters/afterCursor'
1706
+ - $ref: '#/components/parameters/limit1'
1707
+ responses:
1708
+ '200':
1709
+ $ref: '#/components/responses/listEndpointsResponse'
1710
+ '400':
1711
+ $ref: '#/components/responses/badRequestErrorResponse'
1712
+ '401':
1713
+ $ref: '#/components/responses/unauthorizedErrorResponse'
1714
+ '403':
1715
+ $ref: '#/components/responses/forbiddenErrorResponse'
1716
+ '404':
1717
+ $ref: '#/components/responses/notFoundErrorResponse'
1718
+ '405':
1719
+ $ref: '#/components/responses/methodNotAllowedErrorResponse'
1720
+ '415':
1721
+ $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
1722
+ '429':
1723
+ $ref: '#/components/responses/tooManyRequestsErrorResponse'
1724
+ '500':
1725
+ $ref: '#/components/responses/serviceUnavailableErrorResponse'
1726
+ post:
1727
+ tags:
1728
+ - Endpoints
1729
+ summary: Create Endpoint
1730
+ description: Creates a new Endpoint for the specified account.
1731
+ operationId: createEndpoint
1732
+ parameters:
1733
+ - $ref: '#/components/parameters/accountId'
1734
+ requestBody:
1735
+ $ref: '#/components/requestBodies/createEndpointRequest'
1736
+ responses:
1737
+ '201':
1738
+ $ref: '#/components/responses/createEndpointResponse'
1739
+ '400':
1740
+ $ref: '#/components/responses/badRequestErrorResponse'
1741
+ '401':
1742
+ $ref: '#/components/responses/unauthorizedErrorResponse'
1743
+ '403':
1744
+ $ref: '#/components/responses/forbiddenErrorResponse'
1745
+ '404':
1746
+ $ref: '#/components/responses/notFoundErrorResponse'
1747
+ '405':
1748
+ $ref: '#/components/responses/methodNotAllowedErrorResponse'
1749
+ '415':
1750
+ $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
1751
+ '429':
1752
+ $ref: '#/components/responses/tooManyRequestsErrorResponse'
1753
+ '500':
1754
+ $ref: '#/components/responses/serviceUnavailableErrorResponse'
1755
+ callbacks:
1756
+ endpointEventCallback:
1757
+ $ref: '#/components/callbacks/endpointEvent'
1758
+ servers: &ref_5
1759
+ - url: https://api.bandwidth.com/v2
1760
+ description: Production
1761
+ /accounts/{accountId}/endpoints/{endpointId}:
1762
+ get:
1763
+ tags:
1764
+ - Endpoints
1765
+ summary: Get Endpoint
1766
+ description: Returns information about the specified endpoint.
1767
+ operationId: getEndpoint
1768
+ parameters:
1769
+ - $ref: '#/components/parameters/accountId'
1770
+ - $ref: '#/components/parameters/endpointId'
1771
+ responses:
1772
+ '200':
1773
+ $ref: '#/components/responses/getEndpointResponse'
1774
+ '400':
1775
+ $ref: '#/components/responses/badRequestErrorResponse'
1776
+ '401':
1777
+ $ref: '#/components/responses/unauthorizedErrorResponse'
1778
+ '403':
1779
+ $ref: '#/components/responses/forbiddenErrorResponse'
1780
+ '404':
1781
+ $ref: '#/components/responses/notFoundErrorResponse'
1782
+ '405':
1783
+ $ref: '#/components/responses/methodNotAllowedErrorResponse'
1784
+ '415':
1785
+ $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
1786
+ '429':
1787
+ $ref: '#/components/responses/tooManyRequestsErrorResponse'
1788
+ '500':
1789
+ $ref: '#/components/responses/serviceUnavailableErrorResponse'
1790
+ delete:
1791
+ tags:
1792
+ - Endpoints
1793
+ summary: Delete Endpoint
1794
+ description: >-
1795
+ Deletes the specified endpoint. If the endpoint is actively streaming
1796
+ media, the media stream will be terminated.
1797
+ operationId: deleteEndpoint
1798
+ parameters:
1799
+ - $ref: '#/components/parameters/accountId'
1800
+ - $ref: '#/components/parameters/endpointId'
1801
+ responses:
1802
+ '204':
1803
+ description: No Content
1804
+ '400':
1805
+ $ref: '#/components/responses/badRequestErrorResponse'
1806
+ '401':
1807
+ $ref: '#/components/responses/unauthorizedErrorResponse'
1808
+ '403':
1809
+ $ref: '#/components/responses/forbiddenErrorResponse'
1810
+ '404':
1811
+ $ref: '#/components/responses/notFoundErrorResponse'
1812
+ '405':
1813
+ $ref: '#/components/responses/methodNotAllowedErrorResponse'
1814
+ '415':
1815
+ $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
1816
+ '429':
1817
+ $ref: '#/components/responses/tooManyRequestsErrorResponse'
1818
+ '500':
1819
+ $ref: '#/components/responses/serviceUnavailableErrorResponse'
1820
+ servers: *ref_5
1821
+ /accounts/{accountId}/endpoints/{endpointId}/bxml:
1822
+ put:
1823
+ tags:
1824
+ - Endpoints
1825
+ summary: Update Endpoint BXML
1826
+ description: Updates the BXML for the specified endpoint.
1827
+ operationId: updateEndpointBxml
1828
+ parameters:
1829
+ - $ref: '#/components/parameters/accountId'
1830
+ - $ref: '#/components/parameters/endpointId'
1831
+ requestBody:
1832
+ $ref: '#/components/requestBodies/updateEndpointBxmlRequest'
1833
+ responses:
1834
+ '204':
1835
+ description: No Content
1836
+ '400':
1837
+ $ref: '#/components/responses/badRequestErrorResponse'
1838
+ '401':
1839
+ $ref: '#/components/responses/unauthorizedErrorResponse'
1840
+ '403':
1841
+ $ref: '#/components/responses/forbiddenErrorResponse'
1842
+ '404':
1843
+ $ref: '#/components/responses/notFoundErrorResponse'
1844
+ '405':
1845
+ $ref: '#/components/responses/methodNotAllowedErrorResponse'
1846
+ '415':
1847
+ $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
1848
+ '429':
1849
+ $ref: '#/components/responses/tooManyRequestsErrorResponse'
1850
+ '500':
1851
+ $ref: '#/components/responses/serviceUnavailableErrorResponse'
1852
+ servers: *ref_5
1693
1853
  components:
1694
1854
  schemas:
1695
1855
  applicationId:
@@ -1986,7 +2146,7 @@ components:
1986
2146
  type: string
1987
2147
  description: >-
1988
2148
  The name of the Authorized Message Provider (AMP) that handled this
1989
- message.
2149
+ message.
1990
2150
 
1991
2151
  In the US, this is the carrier that the message was sent to.
1992
2152
 
@@ -2073,7 +2233,7 @@ components:
2073
2233
  description: >-
2074
2234
  Either an alphanumeric sender ID or the sender's Bandwidth phone
2075
2235
  number in E.164 format, which must be hosted within Bandwidth and
2076
- linked to the account that is generating the message.
2236
+ linked to the account that is generating the message.
2077
2237
 
2078
2238
  Alphanumeric Sender IDs can contain up to 11 characters, upper-case
2079
2239
  letters A-Z, lower-case letters a-z, numbers 0-9, space, hyphen -,
@@ -2255,8 +2415,8 @@ components:
2255
2415
 
2256
2416
  For MMS, the API limits file size to 3.5MB. Specific carriers and
2257
2417
  channels may have a smaller limit that could cause a large file to
2258
- fail, see
2259
- [here](https://support.bandwidth.com/hc/en-us/articles/360014235473-What-are-the-MMS-file-size-limits)
2418
+ fail, see more at [Bandwidth
2419
+ Support](https://www.bandwidth.com/support/en/articles/12823216-what-are-the-mms-file-size-limits)
2260
2420
  for more details.
2261
2421
  example: https://dev.bandwidth.com/images/bandwidth-logo.png
2262
2422
  maxLength: 1000
@@ -2396,8 +2556,8 @@ components:
2396
2556
  Specifies how the URL should be opened on a mobile device.
2397
2557
 
2398
2558
  - `BROWSER` Opens the URL in the device's default browser. If
2399
- application is not set or the device doesnt support WebView, this
2400
- option is used by default.
2559
+ application is not set or the device doesn't support WebView, this
2560
+ option is used by default.
2401
2561
 
2402
2562
  - `WEBVIEW` Opens the URL in an in-app WebView.
2403
2563
  enum:
@@ -2410,7 +2570,7 @@ components:
2410
2570
  Defines the layout of the WebView on a mobile device. It must be defined
2411
2571
  when application is set to `WEBVIEW`
2412
2572
 
2413
- - `FULL` WebView takes the full screen.
2573
+ - `FULL` WebView takes the full screen.
2414
2574
 
2415
2575
  - `HALF` WebView takes half of the screen.
2416
2576
 
@@ -2812,7 +2972,7 @@ components:
2812
2972
  to:
2813
2973
  type: string
2814
2974
  description: >
2815
- The destination phone number the message was sent to.
2975
+ The destination phone number the message was sent to.
2816
2976
 
2817
2977
  For inbound callbacks, this is the Bandwidth number or alphanumeric
2818
2978
  identifier that received the message.
@@ -2863,7 +3023,7 @@ components:
2863
3023
  client to a Bandwidth number.
2864
3024
 
2865
3025
  - `request-location-response` indicates a response to a location request
2866
- sent by the Bandwidth user's client after receiving an RBM message.
3026
+ sent by the Bandwidth user's client after receiving an RBM message.
2867
3027
 
2868
3028
  - `suggestion-response` indicates a response to a suggestion sent by the
2869
3029
  Bandwidth user's client after receiving an RBM message.
@@ -3102,7 +3262,7 @@ components:
3102
3262
  nullable: true
3103
3263
  type: string
3104
3264
  description: >-
3105
- The caller display name to use when the call is created.
3265
+ The caller display name to use when the call is created.
3106
3266
 
3107
3267
  May not exceed 256 characters nor contain control characters such as
3108
3268
  new lines.
@@ -3280,8 +3440,8 @@ components:
3280
3440
  May be cleared by setting `tag=""`
3281
3441
 
3282
3442
 
3283
- Max length 256 characters.
3284
- maxLength: 256
3443
+ Max length 4096 characters.
3444
+ maxLength: 4096
3285
3445
  example: arbitrary text here
3286
3446
  createCallResponse:
3287
3447
  type: object
@@ -3658,11 +3818,11 @@ components:
3658
3818
  May be cleared by setting `tag=""`.
3659
3819
 
3660
3820
 
3661
- Max length 256 characters.
3821
+ Max length 4096 characters.
3662
3822
 
3663
3823
 
3664
3824
  Not allowed if `state` is `completed`.
3665
- maxLength: 256
3825
+ maxLength: 4096
3666
3826
  example: My Custom Tag
3667
3827
  updateCallRecording:
3668
3828
  type: object
@@ -4039,7 +4199,7 @@ components:
4039
4199
  format: double
4040
4200
  description: >-
4041
4201
  When an answering machine is detected, the amount of silence (in
4042
- seconds) before assuming the message has finished playing.
4202
+ seconds) before assuming the message has finished playing.
4043
4203
 
4044
4204
  If not provided it will default to the speechEndThreshold value.
4045
4205
  example: 5
@@ -5599,6 +5759,19 @@ components:
5599
5759
  items:
5600
5760
  type: string
5601
5761
  pattern: ^\+[1-9]\d{1,14}$
5762
+ rcsAgent:
5763
+ type: string
5764
+ description: >-
5765
+ Override the default RCS sender/agent ID used when checking RCS
5766
+ capabilities.
5767
+
5768
+ When provided, this value is used as the `sender` in the RCS
5769
+ capability-check request instead of the account default.
5770
+
5771
+ Must be 1–40 characters and contain only letters, digits,
5772
+ underscores, or hyphens.
5773
+ pattern: ^[A-Za-z0-9_-]{1,40}$
5774
+ example: MyCustomRcsAgent
5602
5775
  required:
5603
5776
  - phoneNumbers
5604
5777
  asyncLookupRequest:
@@ -5783,7 +5956,7 @@ components:
5783
5956
  format: date
5784
5957
  description: >-
5785
5958
  [DNI-Only](#section/DNI-Only). The date the phone number entered the
5786
- status described in `latestMessageDeliveryStatus`.
5959
+ status described in `latestMessageDeliveryStatus`.
5787
5960
 
5788
5961
  Think of this as the "start time" for that status.
5789
5962
 
@@ -5887,17 +6060,21 @@ components:
5887
6060
  Government-issued business identifying number.
5888
6061
 
5889
6062
 
5890
- **Note:** If this field is provided, it is strongly recommended to also
5891
- provide `businessRegistrationType` and
5892
- `businessRegistrationIssuingCountry`. Submissions missing these fields
5893
- have a high likelihood of rejection.
6063
+ **Note: As of October 19th, 2026 this field will be required when
6064
+ `businessEntityType` is _not_ `SOLE_PROPRIETOR`. If this field is
6065
+ provided, `businessRegistrationType` and
6066
+ `businessRegistrationIssuingCountry` are also required.**
5894
6067
  nullable: true
5895
6068
  maxLength: 500
5896
6069
  example: 12-3456789
5897
6070
  businessRegistrationTypeEnum:
5898
6071
  type: string
5899
- description: |
6072
+ description: >
5900
6073
  The type of business registration number.
6074
+
6075
+
6076
+ **Note: As of October 19th, 2026 this field will be required when
6077
+ `businessRegistrationNumber` is provided.**
5901
6078
  enum:
5902
6079
  - EIN
5903
6080
  - CBN
@@ -5919,20 +6096,16 @@ components:
5919
6096
  - OTHER
5920
6097
  example: EIN
5921
6098
  nullable: true
5922
- businessRegistrationIssuingCountryEnum:
6099
+ businessRegistrationIssuingCountry:
5923
6100
  type: string
5924
6101
  description: >-
5925
6102
  The country issuing the business registration in ISO-3166-1 alpha-3
5926
- format. Alpha-2 country codes are acceptable, but the application will
5927
- convert them to alpha-3 when received, so alpha-3 is encouraged.
6103
+ format. Alpha-2 format is accepted by the API, but alpha-3 is highly
6104
+ encouraged.
5928
6105
 
5929
6106
 
5930
- **Note:** If this field is omitted but `businessRegistrationType` is
5931
- provided, the application will attempt to infer the country based on the
5932
- registration type. However, if the application cannot confidently infer
5933
- the country, the submission may be rejected. To ensure the highest
5934
- likelihood of acceptance, it is recommended to provide both
5935
- `businessRegistrationType` and `businessRegistrationIssuingCountry`.
6107
+ **Note: As of October 19th, 2026 this field will be required when
6108
+ `businessRegistrationNumber` is provided.**
5936
6109
 
5937
6110
 
5938
6111
  | Registration Type | Supported Countries |
@@ -5974,30 +6147,22 @@ components:
5974
6147
  | UID | CHE |
5975
6148
 
5976
6149
  | OTHER | Must Provide Country Code |
5977
- enum:
5978
- - USA
5979
- - CAN
5980
- - HKG
5981
- - GBR
5982
- - IRL
5983
- - BRA
5984
- - NLD
5985
- - AUS
5986
- - FRA
5987
- - NZL
5988
- - DEU
5989
- - ESP
5990
- - CHE
5991
- - CYP
5992
- - IND
5993
- - CHN
5994
- - BGR
5995
6150
  example: USA
5996
- nullable: false
6151
+ nullable: true
5997
6152
  businessEntityTypeEnum:
5998
6153
  type: string
5999
- description: |
6154
+ description: >
6000
6155
  The type of registered business.
6156
+
6157
+
6158
+ **Note: As of October 19th, 2026 submissions using a value other than
6159
+ `SOLE_PROPRIETOR` must provide a value for `businessRegistrationNumber`,
6160
+ `businessRegistrationType`, and `businessRegistrationIssuingCountry`.
6161
+
6162
+ Submissions using `SOLE_PROPRIETOR` must _omit_
6163
+ `businessRegistrationNumber`, `businessRegistrationType`, and
6164
+ `businessRegistrationIssuingCountry`. Failure to adhere to these
6165
+ constraints will result in a 400 Bad Request rejection.**
6001
6166
  enum:
6002
6167
  - SOLE_PROPRIETOR
6003
6168
  - PRIVATE_PROFIT
@@ -6106,7 +6271,7 @@ components:
6106
6271
  businessRegistrationType:
6107
6272
  $ref: '#/components/schemas/businessRegistrationTypeEnum'
6108
6273
  businessRegistrationIssuingCountry:
6109
- $ref: '#/components/schemas/businessRegistrationIssuingCountryEnum'
6274
+ $ref: '#/components/schemas/businessRegistrationIssuingCountry'
6110
6275
  businessEntityType:
6111
6276
  $ref: '#/components/schemas/businessEntityTypeEnum'
6112
6277
  helpMessageResponse:
@@ -6161,7 +6326,7 @@ components:
6161
6326
  businessEntityType:
6162
6327
  $ref: '#/components/schemas/businessEntityTypeEnum'
6163
6328
  businessRegistrationIssuingCountry:
6164
- $ref: '#/components/schemas/businessRegistrationIssuingCountryEnum'
6329
+ $ref: '#/components/schemas/businessRegistrationIssuingCountry'
6165
6330
  helpMessageResponse:
6166
6331
  $ref: '#/components/schemas/helpMessageResponse'
6167
6332
  ageGatedContent:
@@ -6468,7 +6633,7 @@ components:
6468
6633
  errors:
6469
6634
  type: array
6470
6635
  items:
6471
- $ref: '#/components/schemas/error'
6636
+ $ref: '#/components/schemas/webhookSubscriptionError'
6472
6637
  data:
6473
6638
  items:
6474
6639
  $ref: '#/components/schemas/webhookSubscription'
@@ -6494,7 +6659,7 @@ components:
6494
6659
  If more results exist than specified by 'size', this link return the
6495
6660
  last page of result.
6496
6661
  type: string
6497
- error:
6662
+ webhookSubscriptionError:
6498
6663
  type: object
6499
6664
  properties:
6500
6665
  code:
@@ -6657,13 +6822,15 @@ components:
6657
6822
  description: Government-issued business identifying number.
6658
6823
  businessRegistrationType:
6659
6824
  $ref: '#/components/schemas/businessRegistrationTypeEnum'
6825
+ description: The type of business registration number.
6660
6826
  businessRegistrationIssuingCountry:
6661
- $ref: '#/components/schemas/businessRegistrationIssuingCountryEnum'
6827
+ $ref: '#/components/schemas/businessRegistrationIssuingCountry'
6662
6828
  description: >-
6663
6829
  The country issuing the business registration in ISO-3166-1 alpha-3
6664
6830
  format.
6665
6831
  businessEntityType:
6666
6832
  $ref: '#/components/schemas/businessEntityTypeEnum'
6833
+ description: The type of registered business.
6667
6834
  tfvStatusEnum:
6668
6835
  type: string
6669
6836
  enum:
@@ -6693,6 +6860,365 @@ components:
6693
6860
  nullable: true
6694
6861
  example: >-
6695
6862
  cv.user123|sess456|mno|tfree|read_write|X7yZ9aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789aBcDeFgHiJkLmNoPqRsTuVw
6863
+ endpointId:
6864
+ type: string
6865
+ description: The unique ID of the endpoint.
6866
+ example: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
6867
+ endpointStatusEnum:
6868
+ type: string
6869
+ enum:
6870
+ - CONNECTED
6871
+ - DISCONNECTED
6872
+ deviceStatusEnum:
6873
+ type: string
6874
+ enum:
6875
+ - CONNECTED
6876
+ - DISCONNECTED
6877
+ endpointTypeEnum:
6878
+ type: string
6879
+ enum:
6880
+ - WEBRTC
6881
+ endpointDirectionEnum:
6882
+ type: string
6883
+ enum:
6884
+ - INBOUND
6885
+ - OUTBOUND
6886
+ - BIDIRECTIONAL
6887
+ sipCredentials:
6888
+ type: object
6889
+ properties:
6890
+ username:
6891
+ type: string
6892
+ description: The username for the SIP connection.
6893
+ example: username
6894
+ password:
6895
+ type: string
6896
+ description: The password for the SIP connection.
6897
+ example: password
6898
+ sipConnectionMetadata:
6899
+ title: SIP Connection
6900
+ type: object
6901
+ properties:
6902
+ ipAddress:
6903
+ type: string
6904
+ format: ipv4
6905
+ description: The IP address of the SIP connection.
6906
+ example: 192.168.0.0
6907
+ port:
6908
+ type: integer
6909
+ description: The port of the SIP connection.
6910
+ example: 5060
6911
+ credentials:
6912
+ $ref: '#/components/schemas/sipCredentials'
6913
+ uuiHeader:
6914
+ type: string
6915
+ description: The User-to-User Information header for the SIP connection.
6916
+ example: my-uui-header
6917
+ webRtcConnectionMetadata:
6918
+ title: WebRTC Connection
6919
+ type: object
6920
+ endpointToken:
6921
+ type: string
6922
+ description: >-
6923
+ The json web token specific to the endpoint. Used to authenticate the
6924
+ client with the media gateway.
6925
+ example: xxxxx.yyyyy.zzzzz
6926
+ endpointTag:
6927
+ type: string
6928
+ description: A tag for the endpoint.
6929
+ example: my-tag
6930
+ maximum: 1024
6931
+ device:
6932
+ type: object
6933
+ properties:
6934
+ deviceId:
6935
+ type: string
6936
+ description: The unique ID of the device.
6937
+ example: d-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
6938
+ deviceName:
6939
+ type: string
6940
+ description: The name of the device.
6941
+ maximum: 1024
6942
+ example: David's iPhone
6943
+ status:
6944
+ $ref: '#/components/schemas/deviceStatusEnum'
6945
+ creationTimestamp:
6946
+ type: string
6947
+ format: date-time
6948
+ description: The time the device was created. In ISO-8601 format.
6949
+ example: '2021-01-01T00:00:00Z'
6950
+ required:
6951
+ - deviceId
6952
+ - status
6953
+ - creationTimestamp
6954
+ endpoints:
6955
+ type: object
6956
+ properties:
6957
+ endpointId:
6958
+ $ref: '#/components/schemas/endpointId'
6959
+ type:
6960
+ $ref: '#/components/schemas/endpointTypeEnum'
6961
+ status:
6962
+ $ref: '#/components/schemas/endpointStatusEnum'
6963
+ creationTimestamp:
6964
+ type: string
6965
+ format: date-time
6966
+ description: The time the endpoint was created. In ISO-8601 format.
6967
+ example: '2021-01-01T00:00:00Z'
6968
+ expirationTimestamp:
6969
+ type: string
6970
+ format: date-time
6971
+ description: >-
6972
+ The time the endpoint token will expire. In ISO-8601 format. Tokens
6973
+ last 24 hours.
6974
+ example: '2021-01-02T00:00:00Z'
6975
+ tag:
6976
+ $ref: '#/components/schemas/endpointTag'
6977
+ required:
6978
+ - endpointId
6979
+ - type
6980
+ - status
6981
+ - creationTimestamp
6982
+ - expirationTimestamp
6983
+ endpoint:
6984
+ type: object
6985
+ allOf:
6986
+ - $ref: '#/components/schemas/endpoints'
6987
+ - type: object
6988
+ properties:
6989
+ devices:
6990
+ type: array
6991
+ items:
6992
+ $ref: '#/components/schemas/device'
6993
+ createWebRtcConnectionRequest:
6994
+ allOf:
6995
+ - $ref: '#/components/schemas/createEndpointRequestBase'
6996
+ - type: object
6997
+ properties:
6998
+ connectionMetadata:
6999
+ $ref: '#/components/schemas/webRtcConnectionMetadata'
7000
+ createEndpointRequestBase:
7001
+ type: object
7002
+ properties:
7003
+ type:
7004
+ $ref: '#/components/schemas/endpointTypeEnum'
7005
+ direction:
7006
+ $ref: '#/components/schemas/endpointDirectionEnum'
7007
+ eventCallbackUrl:
7008
+ type: string
7009
+ format: uri
7010
+ description: The URL to send event callbacks to.
7011
+ example: https://myapp.com/callback
7012
+ eventFallbackUrl:
7013
+ type: string
7014
+ format: uri
7015
+ description: The URL to send event fallbacks to.
7016
+ example: https://fallback.myapp.com/callback
7017
+ tag:
7018
+ $ref: '#/components/schemas/endpointTag'
7019
+ required:
7020
+ - type
7021
+ - direction
7022
+ createEndpointRequest:
7023
+ oneOf:
7024
+ - $ref: '#/components/schemas/createWebRtcConnectionRequest'
7025
+ discriminator:
7026
+ propertyName: type
7027
+ mapping:
7028
+ WEBRTC: '#/components/schemas/createWebRtcConnectionRequest'
7029
+ createEndpointResponseData:
7030
+ allOf:
7031
+ - $ref: '#/components/schemas/endpoint'
7032
+ - type: object
7033
+ properties:
7034
+ token:
7035
+ $ref: '#/components/schemas/endpointToken'
7036
+ required:
7037
+ - token
7038
+ endpointEventTypeEnum:
7039
+ type: string
7040
+ enum:
7041
+ - DEVICE_CONNECTED
7042
+ - DEVICE_DISCONNECTED
7043
+ endpointEvent:
7044
+ description: An event that occurred on an endpoint.
7045
+ allOf:
7046
+ - $ref: '#/components/schemas/endpoints'
7047
+ - type: object
7048
+ properties:
7049
+ eventTime:
7050
+ type: string
7051
+ format: date-time
7052
+ description: The time the event occurred. In ISO-8601 format.
7053
+ example: '2021-01-01T00:00:00Z'
7054
+ eventType:
7055
+ $ref: '#/components/schemas/endpointEventTypeEnum'
7056
+ device:
7057
+ $ref: '#/components/schemas/device'
7058
+ required:
7059
+ - eventType
7060
+ - eventTime
7061
+ brtcLink:
7062
+ type: object
7063
+ properties:
7064
+ href:
7065
+ type: string
7066
+ description: The full URL of the link.
7067
+ example: >-
7068
+ https://api.bandwidth.com/v2/accounts/5500123/endpoints/e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
7069
+ rel:
7070
+ type: string
7071
+ description: The relationship of the link to the current resource.
7072
+ example: self
7073
+ method:
7074
+ type: string
7075
+ description: The HTTP method to use when making the request.
7076
+ example: GET
7077
+ page:
7078
+ type: object
7079
+ properties:
7080
+ pageSize:
7081
+ type: integer
7082
+ description: The number of items per page.
7083
+ minimum: 0
7084
+ example: 10
7085
+ totalElements:
7086
+ type: integer
7087
+ description: The total number of items.
7088
+ minimum: 0
7089
+ example: 100
7090
+ totalPages:
7091
+ type: integer
7092
+ description: The total number of pages.
7093
+ minimum: 0
7094
+ example: 10
7095
+ pageNumber:
7096
+ type: integer
7097
+ description: The current page number.
7098
+ minimum: 0
7099
+ example: 0
7100
+ required:
7101
+ - pageSize
7102
+ brtcError:
7103
+ type: object
7104
+ properties:
7105
+ id:
7106
+ type: string
7107
+ format: uuid
7108
+ description: A unique identifier for the error.
7109
+ example: 59512d87-7a92-4040-8e4a-78fb772019b9
7110
+ type:
7111
+ type: string
7112
+ description: The type of error.
7113
+ example: resource.not_found
7114
+ description:
7115
+ type: string
7116
+ description: A description of the error.
7117
+ example: The requested resource was not found.
7118
+ code:
7119
+ type: string
7120
+ description: A code that uniquely identifies the error.
7121
+ example: '404'
7122
+ source:
7123
+ $ref: '#/components/schemas/brtcErrorSource'
7124
+ required:
7125
+ - type
7126
+ - description
7127
+ brtcErrorSource:
7128
+ type: object
7129
+ properties:
7130
+ parameter:
7131
+ type: string
7132
+ description: The URI parameter that caused the error.
7133
+ example: accountId
7134
+ field:
7135
+ type: string
7136
+ description: The request body field that caused the error.
7137
+ example: accountId
7138
+ header:
7139
+ type: string
7140
+ description: The header that caused the error.
7141
+ example: Authorization
7142
+ reference:
7143
+ type: string
7144
+ description: >-
7145
+ The resource ID or path to the resource (or non-existent resource)
7146
+ causing the error.
7147
+ example: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
7148
+ listEndpointsResponse:
7149
+ type: object
7150
+ properties:
7151
+ links:
7152
+ type: array
7153
+ items:
7154
+ $ref: '#/components/schemas/brtcLink'
7155
+ page:
7156
+ $ref: '#/components/schemas/page'
7157
+ data:
7158
+ type: array
7159
+ items:
7160
+ $ref: '#/components/schemas/endpoints'
7161
+ errors:
7162
+ type: array
7163
+ items:
7164
+ $ref: '#/components/schemas/brtcError'
7165
+ required:
7166
+ - links
7167
+ - data
7168
+ - errors
7169
+ endpointResponse:
7170
+ type: object
7171
+ properties:
7172
+ links:
7173
+ type: array
7174
+ items:
7175
+ $ref: '#/components/schemas/brtcLink'
7176
+ data:
7177
+ $ref: '#/components/schemas/endpoint'
7178
+ errors:
7179
+ type: array
7180
+ items:
7181
+ $ref: '#/components/schemas/brtcError'
7182
+ required:
7183
+ - links
7184
+ - data
7185
+ - errors
7186
+ createEndpointResponse:
7187
+ type: object
7188
+ properties:
7189
+ links:
7190
+ type: array
7191
+ items:
7192
+ $ref: '#/components/schemas/brtcLink'
7193
+ data:
7194
+ $ref: '#/components/schemas/createEndpointResponseData'
7195
+ errors:
7196
+ type: array
7197
+ items:
7198
+ $ref: '#/components/schemas/brtcError'
7199
+ required:
7200
+ - links
7201
+ - data
7202
+ - errors
7203
+ brtcErrorResponse:
7204
+ type: object
7205
+ properties:
7206
+ links:
7207
+ type: array
7208
+ items:
7209
+ $ref: '#/components/schemas/brtcLink'
7210
+ data:
7211
+ type: object
7212
+ nullable: true
7213
+ additionalProperties: false
7214
+ errors:
7215
+ type: array
7216
+ items:
7217
+ $ref: '#/components/schemas/brtcError'
7218
+ required:
7219
+ - links
7220
+ - data
7221
+ - errors
6696
7222
  responses:
6697
7223
  createMessageResponse:
6698
7224
  description: Accepted
@@ -7367,6 +7893,114 @@ components:
7367
7893
  type: Service Unavailable
7368
7894
  verifyPutResponse:
7369
7895
  description: Accepted
7896
+ listEndpointsResponse:
7897
+ description: OK
7898
+ content:
7899
+ application/json:
7900
+ schema:
7901
+ $ref: '#/components/schemas/listEndpointsResponse'
7902
+ examples:
7903
+ listEndpointsResponseExample:
7904
+ $ref: '#/components/examples/listEndpointsResponseExample'
7905
+ createEndpointResponse:
7906
+ description: Created
7907
+ content:
7908
+ application/json:
7909
+ schema:
7910
+ $ref: '#/components/schemas/createEndpointResponse'
7911
+ examples:
7912
+ createEndpointResponseExample:
7913
+ $ref: '#/components/examples/createEndpointResponseExample'
7914
+ getEndpointResponse:
7915
+ description: OK
7916
+ content:
7917
+ application/json:
7918
+ schema:
7919
+ $ref: '#/components/schemas/endpointResponse'
7920
+ examples:
7921
+ getEndpointResponseExample:
7922
+ $ref: '#/components/examples/getEndpointResponseExample'
7923
+ badRequestErrorResponse:
7924
+ description: Bad Request
7925
+ content:
7926
+ application/json:
7927
+ schema:
7928
+ $ref: '#/components/schemas/brtcErrorResponse'
7929
+ examples:
7930
+ badRequestErrorExample:
7931
+ $ref: '#/components/examples/badRequestErrorExample'
7932
+ unauthorizedErrorResponse:
7933
+ description: Unauthorized
7934
+ content:
7935
+ application/json:
7936
+ schema:
7937
+ $ref: '#/components/schemas/brtcErrorResponse'
7938
+ examples:
7939
+ unauthorizedErrorExample:
7940
+ $ref: '#/components/examples/unauthorizedErrorExample'
7941
+ forbiddenErrorResponse:
7942
+ description: Forbidden
7943
+ content:
7944
+ application/json:
7945
+ schema:
7946
+ $ref: '#/components/schemas/brtcErrorResponse'
7947
+ examples:
7948
+ forbiddenErrorExample:
7949
+ $ref: '#/components/examples/forbiddenErrorExample'
7950
+ notFoundErrorResponse:
7951
+ description: Not Found
7952
+ content:
7953
+ application/json:
7954
+ schema:
7955
+ $ref: '#/components/schemas/brtcErrorResponse'
7956
+ examples:
7957
+ notFoundErrorExample:
7958
+ $ref: '#/components/examples/notFoundErrorExample'
7959
+ methodNotAllowedErrorResponse:
7960
+ description: Method Not Allowed
7961
+ content:
7962
+ application/json:
7963
+ schema:
7964
+ $ref: '#/components/schemas/brtcErrorResponse'
7965
+ examples:
7966
+ methodNotAllowedErrorExample:
7967
+ $ref: '#/components/examples/methodNotAllowedErrorExample'
7968
+ unsupportedMediaTypeErrorResponse:
7969
+ description: Unsupported Media Type
7970
+ content:
7971
+ application/json:
7972
+ schema:
7973
+ $ref: '#/components/schemas/brtcErrorResponse'
7974
+ examples:
7975
+ unsuppotedMediaTypeErrorExample:
7976
+ $ref: '#/components/examples/unsupportedMediaTypeErrorExample'
7977
+ tooManyRequestsErrorResponse:
7978
+ description: Too Many Requests
7979
+ headers:
7980
+ Retry-After:
7981
+ description: >-
7982
+ The number of seconds the client should wait before making another
7983
+ request.
7984
+ required: true
7985
+ schema:
7986
+ type: integer
7987
+ example: 900
7988
+ content:
7989
+ application/json:
7990
+ schema:
7991
+ $ref: '#/components/schemas/brtcErrorResponse'
7992
+ examples:
7993
+ tooManyRequestsErrorExample:
7994
+ $ref: '#/components/examples/tooManyRequestsErrorExample'
7995
+ serviceUnavailableErrorResponse:
7996
+ description: Service Unavailable
7997
+ content:
7998
+ application/json:
7999
+ schema:
8000
+ $ref: '#/components/schemas/brtcErrorResponse'
8001
+ examples:
8002
+ serviceUnavailableErrorExample:
8003
+ $ref: '#/components/examples/serviceUnavailableErrorExample'
7370
8004
  parameters:
7371
8005
  accountId:
7372
8006
  in: path
@@ -7866,6 +8500,45 @@ components:
7866
8500
  type: string
7867
8501
  description: Webhook subscription ID
7868
8502
  example: 7bt57JcsVYJrN9K1OcV1Nu
8503
+ endpointId:
8504
+ name: endpointId
8505
+ in: path
8506
+ required: true
8507
+ schema:
8508
+ type: string
8509
+ example: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
8510
+ description: BRTC Endpoint ID.
8511
+ endpointType:
8512
+ name: type
8513
+ in: query
8514
+ schema:
8515
+ $ref: '#/components/schemas/endpointTypeEnum'
8516
+ description: The type of endpoint.
8517
+ endpointStatus:
8518
+ name: status
8519
+ in: query
8520
+ schema:
8521
+ $ref: '#/components/schemas/endpointStatusEnum'
8522
+ description: The status of the endpoint.
8523
+ afterCursor:
8524
+ name: afterCursor
8525
+ in: query
8526
+ schema:
8527
+ type: string
8528
+ example: TWF5IHRoZSBmb3JjZSBiZSB3aXRoIHlvdQ==
8529
+ description: >-
8530
+ The cursor to use for pagination. This is the value of the `next` link
8531
+ in the previous response.
8532
+ limit1:
8533
+ name: limit
8534
+ in: query
8535
+ schema:
8536
+ type: integer
8537
+ minimum: 1
8538
+ maximum: 1000
8539
+ default: 100
8540
+ example: 2
8541
+ description: The maximum number of endpoints to return in the response.
7869
8542
  examples:
7870
8543
  smsMessageReceivedCallbackExample:
7871
8544
  summary: An example of a sms message-received callback body.
@@ -8098,6 +8771,13 @@ components:
8098
8771
  phoneNumbers:
8099
8772
  - '+19196104423'
8100
8773
  - '+19196104424'
8774
+ rcsAgentRequestExample:
8775
+ summary: Number Lookup Request with Custom RCS Agent
8776
+ value:
8777
+ phoneNumbers:
8778
+ - '+19196104423'
8779
+ - '+19196104424'
8780
+ rcsAgent: MyCustomRcsAgent
8101
8781
  lookupAcceptedExample:
8102
8782
  summary: Numbers Lookup Accepted
8103
8783
  value:
@@ -8348,6 +9028,205 @@ components:
8348
9028
  Unexpected error. Please contact Bandwidth Support if your
8349
9029
  requests are receiving this status code for an extended period of
8350
9030
  time.
9031
+ listEndpointsResponseExample:
9032
+ summary: List Endpoints Paginated Response
9033
+ value:
9034
+ links:
9035
+ - href: >-
9036
+ https://api.bandwidth.com/v2/accounts/5500123/endpoints?type=SIP&status=CONNECTED&limit=2
9037
+ rel: self
9038
+ method: GET
9039
+ - href: >-
9040
+ https://api.bandwidth.com/v2/accounts/5500123/endpoints?type=SIP&status=CONNECTED&limit=2&afterCursor=TWF5IHRoZSBmb3JjZSBiZSB3aXRoIHlvdQ==
9041
+ rel: next
9042
+ method: GET
9043
+ page:
9044
+ pageSize: 2
9045
+ totalElements: 10
9046
+ totalPages: 5
9047
+ pageNumber: 0
9048
+ data:
9049
+ - endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9050
+ type: WEBRTC
9051
+ status: CONNECTED
9052
+ creationTimestamp: '2021-01-01T00:00:00Z'
9053
+ expirationTimestamp: '2021-01-02T00:00:00Z'
9054
+ tag: my-tag
9055
+ - endpointId: e-2cb0-4a07-b215-b22865662d85-15ac29a2-1331029c
9056
+ type: WEBRTC
9057
+ status: CONNECTED
9058
+ creationTimestamp: '2021-01-01T00:00:00Z'
9059
+ expirationTimestamp: '2021-01-02T00:00:00Z'
9060
+ tag: my-tag
9061
+ errors: []
9062
+ createEndpointResponseExample:
9063
+ summary: Create Endpoint Response
9064
+ value:
9065
+ links:
9066
+ - href: >-
9067
+ https://api.bandwidth.com/v2/accounts/5500123/endpoints/e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9068
+ rel: endpoint
9069
+ method: GET
9070
+ data:
9071
+ endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9072
+ token: xxxxx.yyyyy.zzzzz
9073
+ type: WEBRTC
9074
+ status: CONNECTED
9075
+ creationTimestamp: '2021-01-01T00:00:00Z'
9076
+ expirationTimestamp: '2021-01-02T00:00:00Z'
9077
+ devices: []
9078
+ tag: my-tag
9079
+ errors: []
9080
+ getEndpointResponseExample:
9081
+ summary: Get Endpoint Response
9082
+ value:
9083
+ links:
9084
+ - href: >-
9085
+ https://api.bandwidth.com/v2/accounts/5500123/endpoints/e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9086
+ rel: self
9087
+ method: GET
9088
+ data:
9089
+ endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9090
+ type: WEBRTC
9091
+ status: CONNECTED
9092
+ creationTimestamp: '2021-01-01T00:00:00Z'
9093
+ expirationTimestamp: '2021-01-02T00:00:00Z'
9094
+ devices: []
9095
+ tag: my-tag
9096
+ errors: []
9097
+ createSipEndpointRequestExample:
9098
+ summary: SIP Endpoint Example
9099
+ value:
9100
+ type: SIP
9101
+ connectionMetadata:
9102
+ ipAddress: 0.0.0.0
9103
+ port: 3000
9104
+ credentials:
9105
+ username: username
9106
+ password: '********'
9107
+ uuiHeader: 123456;encoding=jwt
9108
+ direction: INBOUND
9109
+ eventCallbackUrl: https://myEventCallbackUrl.com/callbacks/bandwidth
9110
+ eventFallbackUrl: https://fallback.myEventCallbackUrl.com/callbacks/bandwidth
9111
+ tag: '{"myTag": "myTagValue"}'
9112
+ createWeRtcEndpointExample:
9113
+ summary: WebRTC Endpoint Example
9114
+ value:
9115
+ type: WEBRTC
9116
+ direction: BIDIRECTIONAL
9117
+ eventCallbackUrl: https://myEventCallbackUrl.com/callbacks/bandwidth
9118
+ eventFallbackUrl: https://fallback.myEventCallbackUrl.com/callbacks/bandwidth
9119
+ tag: '{"myTag": "myTagValue"}'
9120
+ updateEndpointBxmlRequestExample:
9121
+ summary: Update Endpoint BXML Request Example
9122
+ value: <Bxml><StartRecording /></Bxml>
9123
+ endpointDisconnectedEventExample:
9124
+ summary: Endpoint Disconnected Event
9125
+ value:
9126
+ endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9127
+ type: WEBRTC
9128
+ status: DISCONNECTED
9129
+ creationTimestamp: '2021-01-01T00:00:00Z'
9130
+ expirationTimestamp: '2021-01-02T00:00:00Z'
9131
+ eventTime: '2021-01-01T00:00:00Z'
9132
+ eventType: DEVICE_DISCONNECTED
9133
+ tag: my-tag
9134
+ badRequestErrorExample:
9135
+ summary: Bad Request Error Example
9136
+ value:
9137
+ links: []
9138
+ data: null
9139
+ errors:
9140
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9141
+ type: invalid_parameter
9142
+ description: accountId must not contain any characters other than numbers.
9143
+ code: '400'
9144
+ source:
9145
+ parameter: accountId
9146
+ unauthorizedErrorExample:
9147
+ summary: Unauthorized Error Example
9148
+ value:
9149
+ links: []
9150
+ data: null
9151
+ errors:
9152
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9153
+ type: unauthorized
9154
+ description: >-
9155
+ The provided credentials are not authorized to access this
9156
+ resource.
9157
+ code: '401'
9158
+ source:
9159
+ header: Authorization
9160
+ forbiddenErrorExample:
9161
+ summary: Forbidden Error Example
9162
+ value:
9163
+ links: []
9164
+ data: null
9165
+ errors:
9166
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9167
+ type: forbidden
9168
+ description: >-
9169
+ The provided credentials are not authorized to access this
9170
+ resource.
9171
+ code: '403'
9172
+ source:
9173
+ header: Authorization
9174
+ notFoundErrorExample:
9175
+ summary: Not Found Error Example
9176
+ value:
9177
+ links: []
9178
+ data: null
9179
+ errors:
9180
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9181
+ type: resource_not_found
9182
+ description: The requested resource was not found.
9183
+ code: '404'
9184
+ source:
9185
+ reference: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
9186
+ methodNotAllowedErrorExample:
9187
+ summary: Method Not Allowed Error Example
9188
+ value:
9189
+ links: []
9190
+ data: null
9191
+ errors:
9192
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9193
+ type: method_not_allowed
9194
+ description: The requested method is not allowed on this resource.
9195
+ code: '405'
9196
+ source:
9197
+ parameter: accountId
9198
+ unsupportedMediaTypeErrorExample:
9199
+ summary: Unsupported Media Type Error Example
9200
+ value:
9201
+ links: []
9202
+ data: null
9203
+ errors:
9204
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9205
+ type: unsupported_media_type
9206
+ description: The provided media type is not supported.
9207
+ code: '415'
9208
+ source:
9209
+ header: Content-Type
9210
+ tooManyRequestsErrorExample:
9211
+ summary: Too Many Requests Error Example
9212
+ value:
9213
+ links: []
9214
+ data: null
9215
+ errors:
9216
+ - type: too_many_endpoints
9217
+ description: >-
9218
+ Too many endpoints. Please delete an existing endpoint or wait 24
9219
+ hours for an endpoint to be removed.
9220
+ serviceUnavailableErrorExample:
9221
+ summary: Service Unavailable Error Example
9222
+ value:
9223
+ links: []
9224
+ data: null
9225
+ errors:
9226
+ - id: 59512d87-7a92-4040-8e4a-78fb772019b9
9227
+ type: service_unavailable
9228
+ description: The service is currently unavailable.
9229
+ code: '500'
8351
9230
  requestBodies:
8352
9231
  createMessageRequest:
8353
9232
  content:
@@ -8659,6 +9538,8 @@ components:
8659
9538
  $ref: '#/components/examples/singleNumberRequestExample'
8660
9539
  multipleNumberRequestExample:
8661
9540
  $ref: '#/components/examples/multipleNumberRequestExample'
9541
+ rcsAgentRequestExample:
9542
+ $ref: '#/components/examples/rcsAgentRequestExample'
8662
9543
  createAsyncBulkLookupRequest:
8663
9544
  description: Asynchronous bulk phone number lookup request.
8664
9545
  required: true
@@ -8703,6 +9584,30 @@ components:
8703
9584
  application/json:
8704
9585
  schema:
8705
9586
  $ref: '#/components/schemas/webhookSubscriptionRequestSchema'
9587
+ createEndpointRequest:
9588
+ required: true
9589
+ content:
9590
+ application/json:
9591
+ schema:
9592
+ $ref: '#/components/schemas/createEndpointRequest'
9593
+ examples:
9594
+ createWebRtcEndpointRequestExample:
9595
+ $ref: '#/components/examples/createWeRtcEndpointExample'
9596
+ updateEndpointBxmlRequest:
9597
+ required: true
9598
+ content:
9599
+ application/xml:
9600
+ schema:
9601
+ type: string
9602
+ description: >-
9603
+ The BXML document to update the endpoint with. This BXML document
9604
+ will be executed against the endpoint when it is updated.
9605
+
9606
+ For more information, please refer to our [BXML
9607
+ documentation](/docs/voice/bxml/).
9608
+ examples:
9609
+ updateEndpointBxmlRequestExample:
9610
+ $ref: '#/components/examples/updateEndpointBxmlRequestExample'
8706
9611
  securitySchemes:
8707
9612
  Basic:
8708
9613
  type: http
@@ -8729,12 +9634,12 @@ components:
8729
9634
  required: true
8730
9635
  description: >-
8731
9636
  <p>This Inbound Message Webhook is an envelope containing either a
8732
- received (MO) message to your
9637
+ received (MO) message to your
8733
9638
 
8734
9639
  message-enabled Bandwidth telephone number or a multichannel
8735
- client's response to a suggestion response
9640
+ client's response to a suggestion response
8736
9641
 
8737
- or location request.
9642
+ or location request.
8738
9643
 
8739
9644
  <p>The payload type will be one of <code>message-received</code>,
8740
9645
  <code>suggestion-response</code>, or
@@ -8836,3 +9741,17 @@ components:
8836
9741
  $ref: '#/components/responses/tfvServerErrorResponse'
8837
9742
  '503':
8838
9743
  $ref: '#/components/responses/tfvServiceUnavailableResponse'
9744
+ endpointEvent:
9745
+ '{request.body#/eventCallbackUrl}':
9746
+ post:
9747
+ requestBody:
9748
+ content:
9749
+ application/json:
9750
+ schema:
9751
+ $ref: '#/components/schemas/endpointEvent'
9752
+ examples:
9753
+ endpointDisconnectedEventExample:
9754
+ $ref: '#/components/examples/endpointDisconnectedEventExample'
9755
+ responses:
9756
+ '204':
9757
+ description: Event was successfully received.