freeclimb 4.5.2 → 4.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +15 -7
  5. data/docs/AddToConference.md +0 -2
  6. data/docs/AddToConferenceAllOf.md +0 -2
  7. data/docs/CreateWebRTCToken.md +22 -0
  8. data/docs/DefaultApi.md +303 -7
  9. data/docs/GetDigits.md +1 -1
  10. data/docs/GetDigitsAllOf.md +1 -1
  11. data/docs/IncomingNumberResult.md +3 -1
  12. data/docs/IncomingNumberResultAllOf.md +3 -1
  13. data/docs/MessageRequest.md +2 -2
  14. data/docs/MessageRequestAllOf.md +2 -2
  15. data/docs/MessageResult.md +3 -1
  16. data/docs/MessageResultAllOf.md +3 -1
  17. data/docs/Play.md +0 -2
  18. data/docs/PlayAllOf.md +0 -2
  19. data/docs/RemoveFromConference.md +1 -4
  20. data/docs/SMSTenDLCCampaign.md +10 -0
  21. data/docs/SMSTollFreeCampaign.md +30 -0
  22. data/docs/SMSTollFreeCampaignsListResult.md +32 -0
  23. data/docs/SMSTollFreeCampaignsListResultAllOf.md +18 -0
  24. data/docs/Say.md +0 -2
  25. data/docs/SayAllOf.md +0 -2
  26. data/docs/SetListen.md +0 -2
  27. data/docs/SetListenAllOf.md +0 -2
  28. data/docs/SetTalk.md +0 -2
  29. data/docs/SetTalkAllOf.md +0 -2
  30. data/docs/TFN.md +18 -0
  31. data/docs/TerminateConference.md +1 -4
  32. data/docs/TranscribeUtterance.md +1 -1
  33. data/docs/TranscribeUtteranceAllOf.md +28 -0
  34. data/docs/TranscribeUtteranceAllOfRecord.md +22 -0
  35. data/lib/freeclimb/api/default_api.rb +262 -7
  36. data/lib/freeclimb/models/account_request.rb +0 -2
  37. data/lib/freeclimb/models/account_result.rb +0 -6
  38. data/lib/freeclimb/models/add_to_conference.rb +1 -29
  39. data/lib/freeclimb/models/add_to_conference_all_of.rb +1 -29
  40. data/lib/freeclimb/models/application_result.rb +0 -6
  41. data/lib/freeclimb/models/buy_incoming_number_request.rb +0 -4
  42. data/lib/freeclimb/models/call_result.rb +0 -6
  43. data/lib/freeclimb/models/conference_participant_result.rb +0 -6
  44. data/lib/freeclimb/models/conference_result.rb +0 -6
  45. data/lib/freeclimb/models/create_conference.rb +0 -8
  46. data/lib/freeclimb/models/create_conference_all_of.rb +0 -8
  47. data/lib/freeclimb/models/create_conference_request.rb +0 -6
  48. data/lib/freeclimb/models/create_web_rtc_token.rb +274 -0
  49. data/lib/freeclimb/models/dequeue.rb +1 -0
  50. data/lib/freeclimb/models/enqueue.rb +0 -6
  51. data/lib/freeclimb/models/enqueue_all_of.rb +0 -6
  52. data/lib/freeclimb/models/get_digits.rb +1 -17
  53. data/lib/freeclimb/models/get_digits_all_of.rb +1 -17
  54. data/lib/freeclimb/models/get_speech.rb +0 -22
  55. data/lib/freeclimb/models/get_speech_all_of.rb +0 -22
  56. data/lib/freeclimb/models/incoming_number_request.rb +0 -2
  57. data/lib/freeclimb/models/incoming_number_result.rb +14 -13
  58. data/lib/freeclimb/models/incoming_number_result_all_of.rb +14 -5
  59. data/lib/freeclimb/models/make_call_request.rb +0 -18
  60. data/lib/freeclimb/models/message_request.rb +10 -24
  61. data/lib/freeclimb/models/message_request_all_of.rb +10 -16
  62. data/lib/freeclimb/models/message_result.rb +17 -11
  63. data/lib/freeclimb/models/message_result_all_of.rb +17 -5
  64. data/lib/freeclimb/models/mutable_resource_model.rb +0 -6
  65. data/lib/freeclimb/models/out_dial.rb +0 -18
  66. data/lib/freeclimb/models/out_dial_all_of.rb +0 -18
  67. data/lib/freeclimb/models/park.rb +0 -4
  68. data/lib/freeclimb/models/park_all_of.rb +0 -4
  69. data/lib/freeclimb/models/play.rb +1 -17
  70. data/lib/freeclimb/models/play_all_of.rb +1 -17
  71. data/lib/freeclimb/models/queue_request.rb +0 -2
  72. data/lib/freeclimb/models/queue_result.rb +0 -6
  73. data/lib/freeclimb/models/record_utterance.rb +0 -12
  74. data/lib/freeclimb/models/record_utterance_all_of.rb +0 -12
  75. data/lib/freeclimb/models/recording_result.rb +0 -6
  76. data/lib/freeclimb/models/remove_from_conference.rb +4 -23
  77. data/lib/freeclimb/models/say.rb +1 -19
  78. data/lib/freeclimb/models/say_all_of.rb +1 -19
  79. data/lib/freeclimb/models/send_digits.rb +0 -4
  80. data/lib/freeclimb/models/send_digits_all_of.rb +0 -4
  81. data/lib/freeclimb/models/set_listen.rb +2 -18
  82. data/lib/freeclimb/models/set_listen_all_of.rb +2 -18
  83. data/lib/freeclimb/models/set_talk.rb +2 -18
  84. data/lib/freeclimb/models/set_talk_all_of.rb +2 -18
  85. data/lib/freeclimb/models/sms.rb +0 -6
  86. data/lib/freeclimb/models/sms_all_of.rb +0 -6
  87. data/lib/freeclimb/models/sms_ten_dlc_brand.rb +0 -60
  88. data/lib/freeclimb/models/sms_ten_dlc_campaign.rb +121 -41
  89. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign.rb +0 -44
  90. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_brand.rb +0 -20
  91. data/lib/freeclimb/models/sms_toll_free_campaign.rb +337 -0
  92. data/lib/freeclimb/models/sms_toll_free_campaigns_list_result.rb +311 -0
  93. data/lib/freeclimb/models/{remove_from_conference_all_of.rb → sms_toll_free_campaigns_list_result_all_of.rb} +14 -16
  94. data/lib/freeclimb/models/start_record_call.rb +1 -0
  95. data/lib/freeclimb/models/terminate_conference.rb +4 -23
  96. data/lib/freeclimb/models/{terminate_conference_all_of.rb → tfn.rb} +15 -14
  97. data/lib/freeclimb/models/transcribe_utterance.rb +11 -16
  98. data/lib/freeclimb/models/transcribe_utterance_all_of.rb +281 -0
  99. data/lib/freeclimb/models/{transcribe_utterance_record.rb → transcribe_utterance_all_of_record.rb} +3 -7
  100. data/lib/freeclimb/models/unpark.rb +1 -0
  101. data/lib/freeclimb/models/update_conference_participant_request.rb +0 -2
  102. data/lib/freeclimb/models/update_conference_request.rb +0 -2
  103. data/lib/freeclimb/version.rb +1 -1
  104. data/lib/freeclimb.rb +8 -4
  105. data/openapi.json +407 -88
  106. data/package.json +8 -0
  107. data/spec/api/default_api_spec.rb +215 -55
  108. data/spec/models/account_request_spec.rb +8 -6
  109. data/spec/models/account_result_spec.rb +28 -9
  110. data/spec/models/add_to_conference_spec.rb +21 -37
  111. data/spec/models/application_list_spec.rb +46 -22
  112. data/spec/models/application_request_spec.rb +13 -6
  113. data/spec/models/application_result_spec.rb +24 -9
  114. data/spec/models/available_number_list_spec.rb +46 -22
  115. data/spec/models/available_number_spec.rb +23 -10
  116. data/spec/models/buy_incoming_number_request_spec.rb +11 -7
  117. data/spec/models/call_list_spec.rb +46 -22
  118. data/spec/models/call_result_spec.rb +49 -15
  119. data/spec/models/capabilities_spec.rb +26 -11
  120. data/spec/models/conference_list_spec.rb +46 -22
  121. data/spec/models/conference_participant_list_spec.rb +46 -22
  122. data/spec/models/conference_participant_result_spec.rb +24 -9
  123. data/spec/models/conference_result_spec.rb +32 -9
  124. data/spec/models/create_conference_request_spec.rb +15 -6
  125. data/spec/models/create_conference_spec.rb +19 -7
  126. data/spec/models/create_web_rtc_token_spec.rb +231 -0
  127. data/spec/models/enqueue_spec.rb +16 -9
  128. data/spec/models/filter_logs_request_spec.rb +9 -7
  129. data/spec/models/get_digits_spec.rb +59 -35
  130. data/spec/models/get_speech_spec.rb +60 -24
  131. data/spec/models/hangup_spec.rb +7 -6
  132. data/spec/models/incoming_number_list_spec.rb +46 -22
  133. data/spec/models/incoming_number_request_spec.rb +9 -6
  134. data/spec/models/incoming_number_result_spec.rb +68 -13
  135. data/spec/models/log_list_spec.rb +46 -22
  136. data/spec/models/log_result_spec.rb +21 -9
  137. data/spec/models/make_call_request_spec.rb +26 -11
  138. data/spec/models/message_request_spec.rb +49 -35
  139. data/spec/models/message_result_spec.rb +64 -11
  140. data/spec/models/messages_list_spec.rb +46 -22
  141. data/spec/models/mutable_resource_model_spec.rb +15 -9
  142. data/spec/models/out_dial_spec.rb +33 -13
  143. data/spec/models/pagination_model_spec.rb +40 -21
  144. data/spec/models/park_spec.rb +13 -8
  145. data/spec/models/pause_spec.rb +14 -10
  146. data/spec/models/percl_command_spec.rb +6 -6
  147. data/spec/models/percl_script_spec.rb +11 -6
  148. data/spec/models/play_early_media_spec.rb +9 -7
  149. data/spec/models/play_spec.rb +17 -40
  150. data/spec/models/queue_list_spec.rb +46 -22
  151. data/spec/models/queue_member_list_spec.rb +46 -22
  152. data/spec/models/queue_member_spec.rb +21 -12
  153. data/spec/models/queue_request_spec.rb +13 -9
  154. data/spec/models/queue_result_spec.rb +37 -18
  155. data/spec/models/record_utterance_spec.rb +28 -13
  156. data/spec/models/recording_list_spec.rb +46 -22
  157. data/spec/models/recording_result_spec.rb +25 -12
  158. data/spec/models/redirect_spec.rb +9 -7
  159. data/spec/models/reject_spec.rb +7 -6
  160. data/spec/models/remove_from_conference_spec.rb +0 -133
  161. data/spec/models/say_spec.rb +18 -40
  162. data/spec/models/send_digits_spec.rb +17 -10
  163. data/spec/models/set_listen_spec.rb +8 -37
  164. data/spec/models/set_talk_spec.rb +8 -37
  165. data/spec/models/sms_spec.rb +16 -9
  166. data/spec/models/sms_ten_dlc_brand_spec.rb +38 -4
  167. data/spec/models/sms_ten_dlc_brands_list_result_spec.rb +46 -22
  168. data/spec/models/sms_ten_dlc_campaign_spec.rb +228 -4
  169. data/spec/models/sms_ten_dlc_campaigns_list_result_spec.rb +46 -22
  170. data/spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb +25 -7
  171. data/spec/models/sms_ten_dlc_partner_campaign_spec.rb +56 -8
  172. data/spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb +46 -22
  173. data/spec/models/sms_toll_free_campaign_spec.rb +382 -0
  174. data/spec/models/sms_toll_free_campaigns_list_result_spec.rb +395 -0
  175. data/spec/models/terminate_conference_spec.rb +0 -133
  176. data/spec/models/tfn_spec.rb +164 -0
  177. data/spec/models/{transcribe_utterance_record_spec.rb → transcribe_utterance_all_of_record_spec.rb} +78 -67
  178. data/spec/models/transcribe_utterance_spec.rb +37 -96
  179. data/spec/models/update_call_request_spec.rb +12 -7
  180. data/spec/models/update_conference_participant_request_spec.rb +10 -6
  181. data/spec/models/update_conference_request_spec.rb +15 -6
  182. data/yarn.lock +1292 -0
  183. metadata +105 -84
data/openapi.json CHANGED
@@ -473,6 +473,7 @@
473
473
  },
474
474
  "properties": {
475
475
  "command": {
476
+ "x-is-no-property": true,
476
477
  "type": "string",
477
478
  "description": "Name of PerCL Command (this is automatically derived from mapping configuration and should not be manually supplied in any arguments)"
478
479
  }
@@ -505,10 +506,6 @@
505
506
  "description": "ID of the Conference to which to add the Participant (Call leg). Conference must exist or an error will result.",
506
507
  "type": "string"
507
508
  },
508
- "callId": {
509
- "description": "ID of the Call that will be added to the specified Conference. The Call must be in progress or an error will result. If the Call is part of an existing Conference, it is first removed from that Conference and is then moved to the new one.",
510
- "type": "string"
511
- },
512
509
  "leaveConferenceUrl": {
513
510
  "description": "URL to be invoked when the Participant leaves the Conference. ",
514
511
  "type": "string"
@@ -538,8 +535,7 @@
538
535
  "x-percl-command": true,
539
536
  "allOf": [
540
537
  {
541
- "$ref": "#/components/schemas/PerclCommand",
542
- "x-is-uri": true
538
+ "$ref": "#/components/schemas/PerclCommand"
543
539
  },
544
540
  {
545
541
  "type": "object",
@@ -651,7 +647,7 @@
651
647
  },
652
648
  "initialTimeoutMs": {
653
649
  "description": "Maximum time in milliseconds that FreeClimb will wait for the Caller to press the first digit before making a determination that a `timeout` has occurred and moving on to make the request to the `actionUrl` to submit the results of the `GetDigits` command. This timeout interval begins when all nested commands have been fully executed.",
654
- "type": "string"
650
+ "type": "integer"
655
651
  },
656
652
  "maxDigits": {
657
653
  "description": "Maximum number of digits expected in the input. If the terminating digit is not entered and the caller has entered the maximum number of digits allowed, the `GetDigits` command terminates regardless of the value of `finishOnKey`.",
@@ -692,7 +688,8 @@
692
688
  "description": "When the caller has finished speaking or the command has timed out, FreeClimb will make a POST request to this URL. A PerCL response is expected to continue handling the call.",
693
689
  "type": "string",
694
690
  "format": "uri",
695
- "x-is-uri": true
691
+ "x-is-uri": true,
692
+ "x-is-url": true
696
693
  },
697
694
  "grammarType": {
698
695
  "$ref": "#/components/schemas/GrammarType"
@@ -897,10 +894,6 @@
897
894
  "description": "Number of times the audio file is played. Specifying '0' causes the Play action to loop until the Call is hung up.",
898
895
  "type": "integer"
899
896
  },
900
- "conferenceId": {
901
- "description": "ID of the Conference the audio should be rendered to. If this is not specified, the audio is by default rendered to the caller associated with the call leg that corresponds to the current PerCL execution context. The call leg associated with this command must be in the specified Conference or the command will return an error.",
902
- "type": "string"
903
- },
904
897
  "privacyMode": {
905
898
  "description": "Parameter `privacyMode` will not log the `text` as required by PCI compliance.",
906
899
  "type": "boolean"
@@ -1015,19 +1008,15 @@
1015
1008
  "RemoveFromConference": {
1016
1009
  "description": "The `RemoveFromConference` command removes a Participant from a Conference but does not hang up. Instead, the Call is simply unbridged and what happens next with the Call is determined by the PerCL returned in response to the `leaveConferenceUrl` attribute.",
1017
1010
  "x-percl-command": true,
1011
+ "x-no-properties": true,
1018
1012
  "allOf": [
1019
1013
  {
1020
1014
  "$ref": "#/components/schemas/PerclCommand"
1021
1015
  },
1022
1016
  {
1023
- "required": ["callId"],
1017
+ "required": [],
1024
1018
  "type": "object",
1025
- "properties": {
1026
- "callId": {
1027
- "description": "ID of the Call leg to be removed from the Conference. The Call must be in a Conference or an error will be triggered.",
1028
- "type": "string"
1029
- }
1030
- }
1019
+ "properties": {}
1031
1020
  }
1032
1021
  ]
1033
1022
  },
@@ -1055,10 +1044,6 @@
1055
1044
  "type": "integer",
1056
1045
  "default": 1
1057
1046
  },
1058
- "conferenceId": {
1059
- "description": "D of the Conference the speech should be rendered to. If this is not specified, the speech is by default rendered to the Caller associated with the call leg that corresponds to the current PerCL execution context. The call leg associated with this command must be in the specified Conference or the command will return an error.",
1060
- "type": "string"
1061
- },
1062
1047
  "privacyMode": {
1063
1048
  "description": "Parameter `privacyMode` will not log the `text` as required by PCI compliance.",
1064
1049
  "type": "boolean"
@@ -1102,13 +1087,9 @@
1102
1087
  "$ref": "#/components/schemas/PerclCommand"
1103
1088
  },
1104
1089
  {
1105
- "required": ["callId"],
1090
+ "required": [],
1106
1091
  "type": "object",
1107
1092
  "properties": {
1108
- "callId": {
1109
- "description": "ID of the call leg that is to be assigned the listen privilege. The Call must be in a Conference or an error will be triggered.",
1110
- "type": "string"
1111
- },
1112
1093
  "listen": {
1113
1094
  "description": "Specifying `false` will silence the Conference for this Participant.",
1114
1095
  "type": "boolean"
@@ -1125,13 +1106,9 @@
1125
1106
  "$ref": "#/components/schemas/PerclCommand"
1126
1107
  },
1127
1108
  {
1128
- "required": ["callId"],
1109
+ "required": [],
1129
1110
  "type": "object",
1130
1111
  "properties": {
1131
- "callId": {
1132
- "description": "ID of the call leg that is to be muted or unmuted. The Call must be in a Conference or an error will be triggered.",
1133
- "type": "string"
1134
- },
1135
1112
  "talk": {
1136
1113
  "description": "Specifying `false` mutes the Participant.",
1137
1114
  "type": "boolean"
@@ -1156,6 +1133,7 @@
1156
1133
  "type": "string"
1157
1134
  },
1158
1135
  "from": {
1136
+ "x-is-private-property": true,
1159
1137
  "description": "E.164 representation of the phone number to use as the sender. This must be an incoming phone number you have purchased from FreeClimb.",
1160
1138
  "type": "string"
1161
1139
  },
@@ -1187,19 +1165,15 @@
1187
1165
  "TerminateConference": {
1188
1166
  "description": "The `TerminateConference` command terminates an existing Conference. Any active participants are hung up on by FreeClimb. If this is not the desired behavior, use the `RemoveFromConference` command to unbridge Calls that should not be hung up. Note: The Call requesting TerminateConference must be on the same Conference for this command to execute.",
1189
1167
  "x-percl-command": true,
1168
+ "x-no-properties": true,
1190
1169
  "allOf": [
1191
1170
  {
1192
1171
  "$ref": "#/components/schemas/PerclCommand"
1193
1172
  },
1194
1173
  {
1195
- "required": ["conferenceId"],
1174
+ "required": [],
1196
1175
  "type": "object",
1197
- "properties": {
1198
- "conferenceId": {
1199
- "description": "ID of the conference to terminate.",
1200
- "type": "string"
1201
- }
1202
- }
1176
+ "properties": {}
1203
1177
  }
1204
1178
  ]
1205
1179
  },
@@ -1310,6 +1284,18 @@
1310
1284
  }
1311
1285
  }
1312
1286
  },
1287
+ "TFN": {
1288
+ "description": "TollFree Campaign details for this number",
1289
+ "type": "object",
1290
+ "required": ["campaignId"],
1291
+ "x-is-object": true,
1292
+ "properties": {
1293
+ "campaignId": {
1294
+ "description": "alphanumeric identifier for the TollFree campaign associated with this number",
1295
+ "type": "string"
1296
+ }
1297
+ }
1298
+ },
1313
1299
  "AccountRequest": {
1314
1300
  "type": "object",
1315
1301
  "properties": {
@@ -1609,6 +1595,10 @@
1609
1595
  "type": "boolean",
1610
1596
  "description": "The offnet field is a boolean representing whether the number is offnet registered or not. This field will be rendered only for requests to the IncomingPhone number resource.",
1611
1597
  "nullable": true
1598
+ },
1599
+ "tfn": {
1600
+ "$ref": "#/components/schemas/TFN",
1601
+ "nullable": true
1612
1602
  }
1613
1603
  }
1614
1604
  }
@@ -1694,6 +1684,7 @@
1694
1684
  "nullable": true
1695
1685
  },
1696
1686
  "from": {
1687
+ "x-is-private-property": true,
1697
1688
  "type": "string",
1698
1689
  "description": "Phone number that initiated this Call.",
1699
1690
  "nullable": true
@@ -1765,6 +1756,7 @@
1765
1756
  "required": ["from", "to"],
1766
1757
  "properties": {
1767
1758
  "from": {
1759
+ "x-is-private-property": true,
1768
1760
  "type": "string",
1769
1761
  "description": "Phone number to use as the caller ID. This can be: (a) The To or From number provided in FreeClimb's initial request to your app or (b) Any incoming phone number you have purchased from FreeClimb."
1770
1762
  },
@@ -2033,6 +2025,7 @@
2033
2025
  "required": ["from", "to", "text"],
2034
2026
  "properties": {
2035
2027
  "from": {
2028
+ "x-is-private-property": true,
2036
2029
  "type": "string",
2037
2030
  "description": "Phone number to use as the sender. This must be an incoming phone number that you have purchased from FreeClimb."
2038
2031
  },
@@ -2048,9 +2041,14 @@
2048
2041
  "type": "string",
2049
2042
  "description": "When the Message changes status, this URL is invoked using HTTP POST with the messageStatus parameters. **Note:** This is a notification only; any PerCL returned is ignored."
2050
2043
  },
2051
- "accountId": {
2052
- "type": "string",
2053
- "description": "String that uniquely identifies this account resource."
2044
+ "mediaUrls": {
2045
+ "type": "array",
2046
+ "description": "an array of HTTP URLs which are to be used as attachments to the message. This will force the message into being an MMS message and must be done using a from number which is MMS capabile.",
2047
+ "x-is-list": true,
2048
+ "items": {
2049
+ "type": "string",
2050
+ "format": "uri"
2051
+ }
2054
2052
  }
2055
2053
  }
2056
2054
  }
@@ -2098,6 +2096,7 @@
2098
2096
  "$ref": "#/components/schemas/MessageStatus"
2099
2097
  },
2100
2098
  "from": {
2099
+ "x-is-private-property": true,
2101
2100
  "type": "string",
2102
2101
  "description": "Phone number in E.164 format that sent the message.",
2103
2102
  "nullable": true
@@ -2136,6 +2135,15 @@
2136
2135
  "type": "number",
2137
2136
  "description": "The number of segments into which the message was split",
2138
2137
  "nullable": true
2138
+ },
2139
+ "mediaUrls": {
2140
+ "type": "array",
2141
+ "description": "an array of HTTP URLs which were attached this this message",
2142
+ "x-is-list": true,
2143
+ "items": {
2144
+ "type": "string",
2145
+ "format": "uri"
2146
+ }
2139
2147
  }
2140
2148
  }
2141
2149
  }
@@ -2452,6 +2460,7 @@
2452
2460
  "type": "string",
2453
2461
  "x-has-writer": true,
2454
2462
  "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
2463
+ "x-enum-type": "SMSTenDLCCampaignStatusEnum",
2455
2464
  "enum": ["ACTIVE", "EXPIRED"],
2456
2465
  "x-enum-varnames": ["ACTIVE", "EXPIRED"]
2457
2466
  },
@@ -2579,6 +2588,31 @@
2579
2588
  "nullable": true,
2580
2589
  "description": "Help message of the campaign."
2581
2590
  },
2591
+ "optinKeywords": {
2592
+ "maxLength": 255,
2593
+ "type": "string",
2594
+ "description": "Subscriber opt-in keywords. Multiple keywords are comma separated without space."
2595
+ },
2596
+ "optoutKeywords": {
2597
+ "maxLength": 255,
2598
+ "type": "string",
2599
+ "description": "Subscriber opt-out keywords. Multiple keywords are comma separated without space."
2600
+ },
2601
+ "helpKeywords": {
2602
+ "maxLength": 255,
2603
+ "type": "string",
2604
+ "description": "Subscriber help keywords. Multiple keywords are comma separated without space."
2605
+ },
2606
+ "optinMessage": {
2607
+ "maxLength": 255,
2608
+ "type": "string",
2609
+ "description": "Subscriber opt-in message."
2610
+ },
2611
+ "optoutMessage": {
2612
+ "maxLength": 255,
2613
+ "type": "string",
2614
+ "description": "Subscriber opt-out message."
2615
+ },
2582
2616
  "referenceId": {
2583
2617
  "maxLength": 50,
2584
2618
  "type": "string",
@@ -2669,6 +2703,7 @@
2669
2703
  "type": "string",
2670
2704
  "x-has-writer": true,
2671
2705
  "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
2706
+ "x-enum-type": "SMSTenDLCPartnerCampaignStatusEnum",
2672
2707
  "enum": ["ACTIVE", "EXPIRED"],
2673
2708
  "x-enum-varnames": ["ACTIVE", "EXPIRED"]
2674
2709
  },
@@ -2953,6 +2988,7 @@
2953
2988
  "vertical"
2954
2989
  ],
2955
2990
  "type": "object",
2991
+ "x-sms-ten-dlc-brand": true,
2956
2992
  "properties": {
2957
2993
  "accountId": {
2958
2994
  "type": "string",
@@ -2964,6 +3000,7 @@
2964
3000
  "type": "string",
2965
3001
  "x-has-writer": true,
2966
3002
  "description": "Entity type behind the brand. This is the form of business establishment.",
3003
+ "x-enum-type": "SMSTenDLCBrandEntityTypeEnum",
2967
3004
  "enum": [
2968
3005
  "PRIVATE_PROFIT",
2969
3006
  "PUBLIC_PROFIT",
@@ -3077,6 +3114,7 @@
3077
3114
  "x-has-writer": true,
3078
3115
  "description": "(Required for public company) stock exchange.",
3079
3116
  "example": "NASDAQ",
3117
+ "x-enum-type": "SMSTenDLCBrandStockExchangeEnum",
3080
3118
  "enum": [
3081
3119
  "NONE",
3082
3120
  "NASDAQ",
@@ -3151,6 +3189,7 @@
3151
3189
  "type": "string",
3152
3190
  "x-has-writer": true,
3153
3191
  "description": "Brand relationship to the CSP",
3192
+ "x-enum-type": "SMSTenDLCBrandBrandRelationshipEnum",
3154
3193
  "enum": [
3155
3194
  "BASIC_ACCOUNT",
3156
3195
  "SMALL_ACCOUNT",
@@ -3179,6 +3218,7 @@
3179
3218
  "altBusinessIdType": {
3180
3219
  "type": "string",
3181
3220
  "x-has-writer": true,
3221
+ "x-enum-type": "SMSTenDLCBrandAltBusinessIdTypeEnum",
3182
3222
  "enum": ["NONE", "DUNS", "GIIN", "LEI"],
3183
3223
  "x-enum-varnames": ["NONE", "DUNS", "GIIN", "LEI"],
3184
3224
  "description": "The type of the Alternative business identifier"
@@ -3211,6 +3251,7 @@
3211
3251
  "type": "string",
3212
3252
  "x-has-writer": true,
3213
3253
  "description": "TCR assessment of the brand identification status.",
3254
+ "x-enum-type": "SMSTenDLCBrandIdentityStatusEnum",
3214
3255
  "enum": [
3215
3256
  "SELF_DECLARED",
3216
3257
  "UNVERIFIED",
@@ -3264,61 +3305,147 @@
3264
3305
  "createDate": "2022-07-01T20:29:23Z"
3265
3306
  }
3266
3307
  },
3308
+ "SMSTollFreeCampaignsListResult": {
3309
+ "allOf": [
3310
+ {
3311
+ "$ref": "#/components/schemas/PaginationModel"
3312
+ },
3313
+ {
3314
+ "type": "object",
3315
+ "properties": {
3316
+ "brands": {
3317
+ "type": "array",
3318
+ "items": {
3319
+ "$ref": "#/components/schemas/SMSTollFreeCampaign"
3320
+ },
3321
+ "nullable": true,
3322
+ "x-is-list": true
3323
+ }
3324
+ }
3325
+ }
3326
+ ]
3327
+ },
3328
+ "SMSTollFreeCampaign": {
3329
+ "type": "object",
3330
+ "required": [
3331
+ "accountId",
3332
+ "campaignId",
3333
+ "useCase",
3334
+ "registrationStatus",
3335
+ "dateCreated",
3336
+ "dateUpdated",
3337
+ "revision"
3338
+ ],
3339
+ "x-sms-toll-free-campaign": true,
3340
+ "properties": {
3341
+ "accountId": {
3342
+ "type": "string",
3343
+ "description": "ID of the account that created this toll-free campaign",
3344
+ "nullable": true
3345
+ },
3346
+ "campaignId": {
3347
+ "type": "string",
3348
+ "description": "Alphanumeric identifier used by the platform to identify this toll-free campaign"
3349
+ },
3350
+ "useCase": {
3351
+ "type": "string"
3352
+ },
3353
+ "registrationStatus": {
3354
+ "type": "string",
3355
+ "x-has-writer": true,
3356
+ "description": "Current toll-free campaign registration status.Possible values: UNREGISTERED,INITIATED,PENDING,DECLINED,REGISTERED. A newly created campaign defaults to INITIATED status. ",
3357
+ "x-enum-type": "SMSTollFreeCampaignRegistrationStatusEnum",
3358
+ "enum": [
3359
+ "UNREGISTERED",
3360
+ "INITIATED",
3361
+ "PENDING",
3362
+ "DECLINED",
3363
+ "REGISTERED"
3364
+ ],
3365
+ "x-enum-varnames": [
3366
+ "UNREGISTERED",
3367
+ "INITIATED",
3368
+ "PENDING",
3369
+ "DECLINED",
3370
+ "REGISTERED"
3371
+ ]
3372
+ },
3373
+ "dateCreated": {
3374
+ "type": "string"
3375
+ },
3376
+ "dateUpdated": {
3377
+ "type": "string"
3378
+ },
3379
+ "revision": {
3380
+ "type": "integer"
3381
+ }
3382
+ }
3383
+ },
3267
3384
  "TranscribeUtterance": {
3268
3385
  "title": "TranscribeUtterance",
3269
3386
  "x-stoplight": {
3270
3387
  "id": "u509r3zqc38ze"
3271
3388
  },
3272
- "x-percl-command": true,
3273
- "type": "object",
3274
3389
  "description": "The `TranscribeUtterance` command transcribes the caller’s voice and returns transcription of the audio and optionally returns the recording of the audio transcribed.\n\n`TranscribeUtterance` is blocking and is a terminal command. As such, the actionUrl property is required, and control of the Call picks up using the `PerCL` returned in response of the `actionUrl`. Recording and Transcription information is returned in the actionUrl request. If the reason this command ended was due to the call hanging up, any PerCL returned will not execute.",
3275
- "properties": {
3276
- "actionUrl": {
3277
- "type": "string"
3278
- },
3279
- "playBeep": {
3280
- "type": "boolean",
3281
- "default": false
3390
+ "x-percl-command": true,
3391
+ "allOf": [
3392
+ {
3393
+ "$ref": "#/components/schemas/PerclCommand"
3282
3394
  },
3283
- "record": {
3395
+ {
3396
+ "required": ["actionUrl"],
3284
3397
  "type": "object",
3398
+ "description": "The `TranscribeUtterance` command transcribes the caller’s voice and returns transcription of the audio and optionally returns the recording of the audio transcribed.\n\n`TranscribeUtterance` is blocking and is a terminal command. As such, the actionUrl property is required, and control of the Call picks up using the `PerCL` returned in response of the `actionUrl`. Recording and Transcription information is returned in the actionUrl request. If the reason this command ended was due to the call hanging up, any PerCL returned will not execute.",
3285
3399
  "properties": {
3286
- "saveRecording": {
3400
+ "actionUrl": {
3401
+ "type": "string"
3402
+ },
3403
+ "playBeep": {
3287
3404
  "type": "boolean",
3288
3405
  "default": false
3289
3406
  },
3290
- "maxLengthSec": {
3291
- "type": "integer",
3292
- "minimum": 1,
3293
- "maximum": 60,
3294
- "default": 60
3407
+ "record": {
3408
+ "type": "object",
3409
+ "x-is-object": true,
3410
+ "properties": {
3411
+ "saveRecording": {
3412
+ "type": "boolean",
3413
+ "default": false
3414
+ },
3415
+ "maxLengthSec": {
3416
+ "type": "integer",
3417
+ "minimum": 1,
3418
+ "maximum": 60,
3419
+ "default": 60
3420
+ },
3421
+ "rcrdTerminationSilenceTimeMs": {
3422
+ "type": "integer",
3423
+ "exclusiveMinimum": true,
3424
+ "minimum": 0,
3425
+ "maximum": 3000
3426
+ }
3427
+ }
3295
3428
  },
3296
- "rcrdTerminationSilenceTimeMs": {
3297
- "type": "integer",
3298
- "exclusiveMinimum": true,
3299
- "minimum": 0,
3300
- "maximum": 3000
3429
+ "privacyForLogging": {
3430
+ "type": "boolean",
3431
+ "default": false
3432
+ },
3433
+ "privacyForRecording": {
3434
+ "type": "boolean",
3435
+ "default": false
3436
+ },
3437
+ "prompts": {
3438
+ "type": "array",
3439
+ "x-is-list": true,
3440
+ "items": {}
3301
3441
  }
3302
3442
  }
3303
- },
3304
- "privacyForLogging": {
3305
- "type": "boolean",
3306
- "default": false
3307
- },
3308
- "privacyForRecording": {
3309
- "type": "boolean",
3310
- "default": false
3311
- },
3312
- "prompts": {
3313
- "type": "array",
3314
- "items": {}
3315
3443
  }
3316
- },
3317
- "required": ["actionUrl"],
3444
+ ],
3318
3445
  "x-examples": {
3319
3446
  "Example 1": {
3320
3447
  "TranscribeUtterance": {
3321
- "actionUrl": "http://foo.vail/handleTranscription",
3448
+ "actionUrl": "http://yoursite.com/handleTranscription",
3322
3449
  "record": {
3323
3450
  "maxLengthSec": 60,
3324
3451
  "saveRecording": true,
@@ -3335,6 +3462,28 @@
3335
3462
  }
3336
3463
  }
3337
3464
  }
3465
+ },
3466
+ "CreateWebRTCToken": {
3467
+ "type": "object",
3468
+ "required": ["to", "from", "uses"],
3469
+ "x-web-rtc": true,
3470
+ "additionalProperties": false,
3471
+ "properties": {
3472
+ "to": {
3473
+ "type": "string",
3474
+ "description": "E.164 formatted phone number to which calls using this token will be made."
3475
+ },
3476
+ "from": {
3477
+ "x-is-private-property": true,
3478
+ "type": "string",
3479
+ "description": "E.164 formatted phone number owned by the reqeusting account from which calls using this token will be made."
3480
+ },
3481
+ "uses": {
3482
+ "type": "integer",
3483
+ "description": "number of times this token may be used for a WebRTC call",
3484
+ "minimum": 1
3485
+ }
3486
+ }
3338
3487
  }
3339
3488
  }
3340
3489
  },
@@ -3857,6 +4006,15 @@
3857
4006
  {
3858
4007
  "$ref": "#/components/parameters/Capabilities.ShortCode"
3859
4008
  },
4009
+ {
4010
+ "name": "tfn.campaignId",
4011
+ "in": "query",
4012
+ "required": false,
4013
+ "description": "Only show incoming phone number resources that have been assigned to the provided TFNCampaign ID.",
4014
+ "schema": {
4015
+ "type": "string"
4016
+ }
4017
+ },
3860
4018
  {
3861
4019
  "name": "offnet",
3862
4020
  "in": "query",
@@ -4200,6 +4358,43 @@
4200
4358
  }
4201
4359
  }
4202
4360
  },
4361
+ "/Accounts/{accountId}/Calls/WebRTC/Token": {
4362
+ "post": {
4363
+ "summary": "Make a JWT for WebRTC calling",
4364
+ "description": "Make a JWT for WebRTC calling",
4365
+ "operationId": "make-a-webrtc-jwt",
4366
+ "x-web-rtc": true,
4367
+ "parameters": [
4368
+ {
4369
+ "$ref": "#/components/parameters/AccountId"
4370
+ }
4371
+ ],
4372
+ "requestBody": {
4373
+ "description": "Information needed to craft a JWT compatible with the platforms WebRTC APIs",
4374
+ "required": true,
4375
+ "content": {
4376
+ "application/json": {
4377
+ "schema": {
4378
+ "$ref": "#/components/schemas/CreateWebRTCToken"
4379
+ }
4380
+ }
4381
+ }
4382
+ },
4383
+ "responses": {
4384
+ "200": {
4385
+ "description": "The created JWT",
4386
+ "content": {
4387
+ "text/plain": {
4388
+ "schema": {
4389
+ "type": "string",
4390
+ "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEyMzQ1Njc4LCJjdXN0b20iOnsidG8iOiIrMTEyMjMzMzQ0NDQiLCJmcm9tIjoiKzE0NDQ0MzMzMjIxIiwidXNlcyI6MX19.H3UKv7poe0adLoFpilxOtC5dGsE5eb2ZxiuygDPs23E"
4391
+ }
4392
+ }
4393
+ }
4394
+ }
4395
+ }
4396
+ }
4397
+ },
4203
4398
  "/Accounts/{accountId}/Conferences": {
4204
4399
  "post": {
4205
4400
  "tags": [],
@@ -4325,15 +4520,8 @@
4325
4520
  },
4326
4521
  "deprecated": false,
4327
4522
  "responses": {
4328
- "200": {
4329
- "description": "Conference Details to Update",
4330
- "content": {
4331
- "application/json": {
4332
- "schema": {
4333
- "$ref": "#/components/schemas/ConferenceResult"
4334
- }
4335
- }
4336
- }
4523
+ "204": {
4524
+ "description": "Successful conference details update"
4337
4525
  }
4338
4526
  }
4339
4527
  },
@@ -4550,6 +4738,58 @@
4550
4738
  }
4551
4739
  }
4552
4740
  },
4741
+ "/Accounts/{accountId}/Conferences/{conferenceId}/Recordings": {
4742
+ "get": {
4743
+ "tags": [],
4744
+ "summary": "List Conference Recordings",
4745
+ "operationId": "list-conference-recordings",
4746
+ "parameters": [
4747
+ {
4748
+ "name": "callId",
4749
+ "in": "query",
4750
+ "description": "Show only Recordings made during the Call with this ID.",
4751
+ "required": false,
4752
+ "schema": {
4753
+ "type": "string"
4754
+ }
4755
+ },
4756
+ {
4757
+ "name": "dateCreated",
4758
+ "in": "query",
4759
+ "description": "Only show Recordings created on this date, formatted as *YYYY-MM-DD*.",
4760
+ "required": false,
4761
+ "schema": {
4762
+ "type": "string"
4763
+ }
4764
+ },
4765
+ {
4766
+ "$ref": "#/components/parameters/AccountId"
4767
+ },
4768
+ {
4769
+ "name": "conferenceId",
4770
+ "in": "path",
4771
+ "description": "Show only Recordings made during the conference with this ID.",
4772
+ "required": true,
4773
+ "schema": {
4774
+ "type": "string"
4775
+ }
4776
+ }
4777
+ ],
4778
+ "responses": {
4779
+ "200": {
4780
+ "description": "List of Recordings",
4781
+ "content": {
4782
+ "application/json": {
4783
+ "schema": {
4784
+ "$ref": "#/components/schemas/RecordingList"
4785
+ }
4786
+ }
4787
+ }
4788
+ }
4789
+ },
4790
+ "deprecated": false
4791
+ }
4792
+ },
4553
4793
  "/Accounts/{accountId}/Queues/{queueId}": {
4554
4794
  "post": {
4555
4795
  "tags": [],
@@ -5615,6 +5855,85 @@
5615
5855
  },
5616
5856
  "deprecated": false
5617
5857
  }
5858
+ },
5859
+ "/Accounts/{accountId}/Messages/TollFree/Campaigns": {
5860
+ "get": {
5861
+ "tags": [],
5862
+ "summary": "Get list of TollFree Campaigns",
5863
+ "operationId": "get-tollFree-sms-campaigns",
5864
+ "parameters": [
5865
+ {
5866
+ "$ref": "#/components/parameters/AccountId"
5867
+ }
5868
+ ],
5869
+ "responses": {
5870
+ "200": {
5871
+ "description": "The list toll-free campaigns",
5872
+ "content": {
5873
+ "application/json": {
5874
+ "schema": {
5875
+ "$ref": "#/components/schemas/SMSTollFreeCampaignsListResult"
5876
+ },
5877
+ "example": {
5878
+ "total": 1,
5879
+ "start": 0,
5880
+ "end": 0,
5881
+ "page": 0,
5882
+ "numPages": 1,
5883
+ "pageSize": 100,
5884
+ "nextPageUri": null,
5885
+ "tfnCampaigns": [
5886
+ {
5887
+ "accountId": "ACe39970fb7c31c747c67148900b4d9da60a41e532",
5888
+ "campaignId": "cmptfn_387ec3f6e03b340553f35f29c8f118cdf3eae08a",
5889
+ "useCase": "example use case",
5890
+ "registrationStatus": "PENDING",
5891
+ "dateCreated": 1704839615,
5892
+ "dateUpdated": 1704839615,
5893
+ "revision": 1
5894
+ }
5895
+ ]
5896
+ }
5897
+ }
5898
+ }
5899
+ }
5900
+ },
5901
+ "deprecated": false
5902
+ }
5903
+ },
5904
+ "/Accounts/{accountId}/Messages/TollFree/Campaigns/{campaignId}": {
5905
+ "get": {
5906
+ "tags": [],
5907
+ "summary": "Get a TollFree SMS Campaign",
5908
+ "operationId": "get-tollFree-sms-campaign",
5909
+ "parameters": [
5910
+ {
5911
+ "$ref": "#/components/parameters/AccountId"
5912
+ },
5913
+ {
5914
+ "name": "campaignId",
5915
+ "in": "path",
5916
+ "description": "String that uniquely identifies this TollFree Campaign resource.",
5917
+ "required": true,
5918
+ "schema": {
5919
+ "type": "string"
5920
+ }
5921
+ }
5922
+ ],
5923
+ "responses": {
5924
+ "200": {
5925
+ "description": "The specific SMS TollFree Campaign that’s been processed by FreeClimb",
5926
+ "content": {
5927
+ "application/json": {
5928
+ "schema": {
5929
+ "$ref": "#/components/schemas/SMSTollFreeCampaign"
5930
+ }
5931
+ }
5932
+ }
5933
+ }
5934
+ },
5935
+ "deprecated": false
5936
+ }
5618
5937
  }
5619
5938
  },
5620
5939
  "x-headers": [],