freeclimb 4.5.2 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +13 -6
  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 +302 -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/lib/freeclimb/api/default_api.rb +258 -7
  33. data/lib/freeclimb/models/add_to_conference.rb +1 -13
  34. data/lib/freeclimb/models/add_to_conference_all_of.rb +1 -13
  35. data/lib/freeclimb/models/create_web_rtc_token.rb +278 -0
  36. data/lib/freeclimb/models/get_digits.rb +1 -1
  37. data/lib/freeclimb/models/get_digits_all_of.rb +1 -1
  38. data/lib/freeclimb/models/incoming_number_result.rb +16 -5
  39. data/lib/freeclimb/models/incoming_number_result_all_of.rb +16 -5
  40. data/lib/freeclimb/models/message_request.rb +11 -9
  41. data/lib/freeclimb/models/message_request_all_of.rb +11 -9
  42. data/lib/freeclimb/models/message_result.rb +19 -5
  43. data/lib/freeclimb/models/message_result_all_of.rb +19 -5
  44. data/lib/freeclimb/models/play.rb +1 -13
  45. data/lib/freeclimb/models/play_all_of.rb +1 -13
  46. data/lib/freeclimb/models/remove_from_conference.rb +3 -23
  47. data/lib/freeclimb/models/say.rb +1 -13
  48. data/lib/freeclimb/models/say_all_of.rb +1 -13
  49. data/lib/freeclimb/models/set_listen.rb +2 -18
  50. data/lib/freeclimb/models/set_listen_all_of.rb +2 -18
  51. data/lib/freeclimb/models/set_talk.rb +2 -18
  52. data/lib/freeclimb/models/set_talk_all_of.rb +2 -18
  53. data/lib/freeclimb/models/sms_ten_dlc_campaign.rb +131 -1
  54. data/lib/freeclimb/models/sms_toll_free_campaign.rb +349 -0
  55. data/lib/freeclimb/models/sms_toll_free_campaigns_list_result.rb +311 -0
  56. data/lib/freeclimb/models/sms_toll_free_campaigns_list_result_all_of.rb +226 -0
  57. data/lib/freeclimb/models/terminate_conference.rb +3 -23
  58. data/lib/freeclimb/models/tfn.rb +229 -0
  59. data/lib/freeclimb/version.rb +1 -1
  60. data/lib/freeclimb.rb +5 -2
  61. data/openapi.json +605 -110
  62. data/package.json +8 -0
  63. data/spec/api/default_api_spec.rb +104 -3
  64. data/spec/models/add_to_conference_spec.rb +0 -30
  65. data/spec/models/create_web_rtc_token_spec.rb +225 -0
  66. data/spec/models/get_digits_spec.rb +19 -19
  67. data/spec/models/incoming_number_result_spec.rb +25 -0
  68. data/spec/models/message_request_spec.rb +23 -23
  69. data/spec/models/message_result_spec.rb +30 -0
  70. data/spec/models/play_spec.rb +0 -30
  71. data/spec/models/remove_from_conference_spec.rb +1 -67
  72. data/spec/models/say_spec.rb +0 -30
  73. data/spec/models/set_listen_spec.rb +0 -31
  74. data/spec/models/set_talk_spec.rb +0 -31
  75. data/spec/models/sms_ten_dlc_campaign_spec.rb +165 -0
  76. data/spec/models/sms_toll_free_campaign_spec.rb +368 -0
  77. data/spec/models/sms_toll_free_campaigns_list_result_spec.rb +371 -0
  78. data/spec/models/terminate_conference_spec.rb +1 -67
  79. data/spec/models/tfn_spec.rb +162 -0
  80. data/yarn.lock +1292 -0
  81. metadata +103 -83
data/openapi.json CHANGED
@@ -83,8 +83,16 @@
83
83
  "schemas": {
84
84
  "AccountStatus": {
85
85
  "type": "string",
86
- "enum": ["closed", "suspended", "active"],
87
- "x-enum-varnames": ["CLOSED", "SUSPENDED", "ACTIVE"],
86
+ "enum": [
87
+ "closed",
88
+ "suspended",
89
+ "active"
90
+ ],
91
+ "x-enum-varnames": [
92
+ "CLOSED",
93
+ "SUSPENDED",
94
+ "ACTIVE"
95
+ ],
88
96
  "x-enum": true,
89
97
  "description": "The status of this account. It is one of: active, suspended, or closed.",
90
98
  "nullable": true
@@ -92,24 +100,44 @@
92
100
  "AccountType": {
93
101
  "type": "string",
94
102
  "description": "The type of this account. It is one of: trial or full.",
95
- "enum": ["trial", "full"],
103
+ "enum": [
104
+ "trial",
105
+ "full"
106
+ ],
96
107
  "x-enum": true,
97
- "x-enum-varnames": ["TRIAL", "FULL"],
108
+ "x-enum-varnames": [
109
+ "TRIAL",
110
+ "FULL"
111
+ ],
98
112
  "nullable": true
99
113
  },
100
114
  "AnsweredBy": {
101
115
  "type": "string",
102
116
  "nullable": true,
103
- "enum": ["human", "machine"],
104
- "x-enum-varnames": ["HUMAN", "MACHINE"],
117
+ "enum": [
118
+ "human",
119
+ "machine"
120
+ ],
121
+ "x-enum-varnames": [
122
+ "HUMAN",
123
+ "MACHINE"
124
+ ],
105
125
  "x-enum": true,
106
126
  "description": "If this Call was initiated with answering machine detection, either `human` or `machine`. Empty otherwise."
107
127
  },
108
128
  "CallDirection": {
109
129
  "type": "string",
110
130
  "nullable": true,
111
- "enum": ["inbound", "outboundAPI", "outboundDial"],
112
- "x-enum-varnames": ["INBOUND", "OUTBOUND_API", "OUTBOUND_DIAL"],
131
+ "enum": [
132
+ "inbound",
133
+ "outboundAPI",
134
+ "outboundDial"
135
+ ],
136
+ "x-enum-varnames": [
137
+ "INBOUND",
138
+ "OUTBOUND_API",
139
+ "OUTBOUND_DIAL"
140
+ ],
113
141
  "x-enum": true,
114
142
  "description": "Direction of the Call. `inbound` for Calls into FreeClimb, `outboundAPI` for Calls initiated via the REST API, `outboundDial` for Calls initiated by the `OutDial` PerCL command."
115
143
  },
@@ -142,8 +170,18 @@
142
170
  "ConferenceStatus": {
143
171
  "type": "string",
144
172
  "nullable": true,
145
- "enum": ["empty", "populated", "inProgress", "terminated"],
146
- "x-enum-varnames": ["EMPTY", "POPULATED", "IN_PROGRESS", "TERMINATED"],
173
+ "enum": [
174
+ "empty",
175
+ "populated",
176
+ "inProgress",
177
+ "terminated"
178
+ ],
179
+ "x-enum-varnames": [
180
+ "EMPTY",
181
+ "POPULATED",
182
+ "IN_PROGRESS",
183
+ "TERMINATED"
184
+ ],
147
185
  "x-enum": true,
148
186
  "description": "The status of the Conference. One of: creating, empty, populated, inProgress, or terminated."
149
187
  },
@@ -207,16 +245,28 @@
207
245
  },
208
246
  "GrammarType": {
209
247
  "type": "string",
210
- "enum": ["URL", "BUILTIN"],
248
+ "enum": [
249
+ "URL",
250
+ "BUILTIN"
251
+ ],
211
252
  "nullable": true,
212
- "x-enum-varnames": ["URL", "BUILT_IN"],
253
+ "x-enum-varnames": [
254
+ "URL",
255
+ "BUILT_IN"
256
+ ],
213
257
  "x-enum": true,
214
258
  "description": "The grammar file type to use for speech recognition. A value of 'URL' indicates the grammarFile attribute specifies a URL that points to the grammar file. A value of `BUILTIN` indicates the grammarFile attribute specifies the name of one of the platform built-in grammar files."
215
259
  },
216
260
  "IfMachine": {
217
261
  "type": "string",
218
- "enum": ["redirect", "hangup"],
219
- "x-enum-varnames": ["REDIRECT", "HANGUP"],
262
+ "enum": [
263
+ "redirect",
264
+ "hangup"
265
+ ],
266
+ "x-enum-varnames": [
267
+ "REDIRECT",
268
+ "HANGUP"
269
+ ],
220
270
  "x-enum": true,
221
271
  "description": "Specifies how FreeClimb should handle this OutDial if an answering machine answers the Call. Valid values: `redirect` invokes the ifMachineUrl for instructions. `hangup` hangs up the Call. The ifMachineUrl will not be invoked."
222
272
  },
@@ -282,22 +332,42 @@
282
332
  },
283
333
  "LogLevel": {
284
334
  "type": "string",
285
- "enum": ["info", "warning", "error"],
335
+ "enum": [
336
+ "info",
337
+ "warning",
338
+ "error"
339
+ ],
286
340
  "nullable": true,
287
- "x-enum-varnames": ["INFO", "WARNING", "ERROR"],
341
+ "x-enum-varnames": [
342
+ "INFO",
343
+ "WARNING",
344
+ "ERROR"
345
+ ],
288
346
  "x-enum": true,
289
347
  "description": "Level of the log. Possible values are info, warning, and error."
290
348
  },
291
349
  "MachineType": {
292
350
  "type": "string",
293
- "enum": ["answeringMachine", "faxMachine"],
294
- "x-enum-varnames": ["ANSWERING_MACHINE", "FAX_MACHINE"],
351
+ "enum": [
352
+ "answeringMachine",
353
+ "faxMachine"
354
+ ],
355
+ "x-enum-varnames": [
356
+ "ANSWERING_MACHINE",
357
+ "FAX_MACHINE"
358
+ ],
295
359
  "x-enum": true
296
360
  },
297
361
  "MessageDirection": {
298
362
  "type": "string",
299
- "enum": ["inbound", "outbound"],
300
- "x-enum-varnames": ["INBOUND", "OUTBOUND"],
363
+ "enum": [
364
+ "inbound",
365
+ "outbound"
366
+ ],
367
+ "x-enum-varnames": [
368
+ "INBOUND",
369
+ "OUTBOUND"
370
+ ],
301
371
  "x-enum": true
302
372
  },
303
373
  "MessageStatus": {
@@ -335,8 +405,18 @@
335
405
  "PlayBeep": {
336
406
  "type": "string",
337
407
  "nullable": true,
338
- "enum": ["always", "never", "entryOnly", "exitOnly"],
339
- "x-enum-varnames": ["ALWAYS", "NEVER", "ENTRY_ONLY", "EXIT_ONLY"],
408
+ "enum": [
409
+ "always",
410
+ "never",
411
+ "entryOnly",
412
+ "exitOnly"
413
+ ],
414
+ "x-enum-varnames": [
415
+ "ALWAYS",
416
+ "NEVER",
417
+ "ENTRY_ONLY",
418
+ "EXIT_ONLY"
419
+ ],
340
420
  "x-enum": true,
341
421
  "description": "Indicates whether to play a beep when a Participant enters or leaves the Conference. either `always`, `never`, `entryOnly`, or `exitOnly`. Leaving this unset will make conference default to `always` ",
342
422
  "default": "always",
@@ -344,14 +424,34 @@
344
424
  },
345
425
  "QueueResultStatus": {
346
426
  "type": "string",
347
- "enum": ["queueFull", "dequeued", "hangup", "systemError"],
348
- "x-enum-varnames": ["QUEUE_FULL", "DEQUEUED", "HANGUP", "SYSTEM_ERROR"],
427
+ "enum": [
428
+ "queueFull",
429
+ "dequeued",
430
+ "hangup",
431
+ "systemError"
432
+ ],
433
+ "x-enum-varnames": [
434
+ "QUEUE_FULL",
435
+ "DEQUEUED",
436
+ "HANGUP",
437
+ "SYSTEM_ERROR"
438
+ ],
349
439
  "x-enum": true
350
440
  },
351
441
  "RecordUtteranceTermReason": {
352
442
  "type": "string",
353
- "enum": ["finishKey", "timeout", "hangup", "maxLength"],
354
- "x-enum-varnames": ["FINISH_KEY", "TIMEOUT", "HANGUP", "MAX_LENGTH"],
443
+ "enum": [
444
+ "finishKey",
445
+ "timeout",
446
+ "hangup",
447
+ "maxLength"
448
+ ],
449
+ "x-enum-varnames": [
450
+ "FINISH_KEY",
451
+ "TIMEOUT",
452
+ "HANGUP",
453
+ "MAX_LENGTH"
454
+ ],
355
455
  "x-enum": true
356
456
  },
357
457
  "RequestType": {
@@ -410,15 +510,27 @@
410
510
  },
411
511
  "UpdateCallRequestStatus": {
412
512
  "type": "string",
413
- "enum": ["canceled", "completed"],
414
- "x-enum-varnames": ["CANCELED", "COMPLETED"],
513
+ "enum": [
514
+ "canceled",
515
+ "completed"
516
+ ],
517
+ "x-enum-varnames": [
518
+ "CANCELED",
519
+ "COMPLETED"
520
+ ],
415
521
  "x-enum": true,
416
522
  "description": "Either `canceled` or `completed`. Specifying `canceled` attempts to hang up calls that are queued without affecting calls already in progress. Specifying `completed` attempts to hang up a call already in progress."
417
523
  },
418
524
  "UpdateConferenceRequestStatus": {
419
525
  "type": "string",
420
- "enum": ["empty", "terminated"],
421
- "x-enum-varnames": ["EMPTY", "TERMINATED"],
526
+ "enum": [
527
+ "empty",
528
+ "terminated"
529
+ ],
530
+ "x-enum-varnames": [
531
+ "EMPTY",
532
+ "TERMINATED"
533
+ ],
422
534
  "x-enum": true,
423
535
  "description": "New status of the conference. Valid values: `empty` or `terminated`. For more information, see **Status Parameter** below.**"
424
536
  },
@@ -487,7 +599,9 @@
487
599
  },
488
600
  {
489
601
  "type": "object",
490
- "required": ["conferenceId"],
602
+ "required": [
603
+ "conferenceId"
604
+ ],
491
605
  "properties": {
492
606
  "allowCallControl": {
493
607
  "description": "If `true`, Call control will be enabled for this Participant's Call leg.",
@@ -505,10 +619,6 @@
505
619
  "description": "ID of the Conference to which to add the Participant (Call leg). Conference must exist or an error will result.",
506
620
  "type": "string"
507
621
  },
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
622
  "leaveConferenceUrl": {
513
623
  "description": "URL to be invoked when the Participant leaves the Conference. ",
514
624
  "type": "string"
@@ -543,7 +653,9 @@
543
653
  },
544
654
  {
545
655
  "type": "object",
546
- "required": ["actionUrl"],
656
+ "required": [
657
+ "actionUrl"
658
+ ],
547
659
  "properties": {
548
660
  "actionUrl": {
549
661
  "description": " This URL is invoked once the Conference is successfully created. Actions on the Conference, such as adding Participants, can be performed via the PerCL script returned in the response. ",
@@ -596,7 +708,11 @@
596
708
  },
597
709
  {
598
710
  "type": "object",
599
- "required": ["queueId", "waitUrl", "actionUrl"],
711
+ "required": [
712
+ "queueId",
713
+ "waitUrl",
714
+ "actionUrl"
715
+ ],
600
716
  "properties": {
601
717
  "actionUrl": {
602
718
  "description": "A request is made to this URL when the Call leaves the Queue, which can occur if enqueue of the Call fails or when the call is dequeued via the `Dequeue` command, the REST API (POST to Queue Member resource), or the caller hangs up.",
@@ -630,7 +746,9 @@
630
746
  },
631
747
  {
632
748
  "type": "object",
633
- "required": ["actionUrl"],
749
+ "required": [
750
+ "actionUrl"
751
+ ],
634
752
  "properties": {
635
753
  "actionUrl": {
636
754
  "description": "When the Caller has finished entering digits, FreeClimb will make an HTTP POST request to this URL. A PerCL response is expected to continue handling the Call. Make sure to keep “http://“ in the URL.",
@@ -651,7 +769,7 @@
651
769
  },
652
770
  "initialTimeoutMs": {
653
771
  "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"
772
+ "type": "integer"
655
773
  },
656
774
  "maxDigits": {
657
775
  "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`.",
@@ -686,7 +804,10 @@
686
804
  },
687
805
  {
688
806
  "type": "object",
689
- "required": ["actionUrl", "grammarFile"],
807
+ "required": [
808
+ "actionUrl",
809
+ "grammarFile"
810
+ ],
690
811
  "properties": {
691
812
  "actionUrl": {
692
813
  "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.",
@@ -839,7 +960,10 @@
839
960
  },
840
961
  {
841
962
  "type": "object",
842
- "required": ["waitUrl", "actionUrl"],
963
+ "required": [
964
+ "waitUrl",
965
+ "actionUrl"
966
+ ],
843
967
  "properties": {
844
968
  "waitUrl": {
845
969
  "description": "Specifies a URL pointing to a PerCL script containing actions to be executed while the caller is Parked. Once the script returned by the waitUrl runs out of commands to execute, FreeClimb will re-request the waitUrl and start over, essentially looping the script requests indefinitely.",
@@ -868,7 +992,9 @@
868
992
  },
869
993
  {
870
994
  "type": "object",
871
- "required": ["length"],
995
+ "required": [
996
+ "length"
997
+ ],
872
998
  "properties": {
873
999
  "length": {
874
1000
  "description": "Length in milliseconds. FreeClimb will wait silently before continuing on.",
@@ -886,7 +1012,9 @@
886
1012
  "$ref": "#/components/schemas/PerclCommand"
887
1013
  },
888
1014
  {
889
- "required": ["file"],
1015
+ "required": [
1016
+ "file"
1017
+ ],
890
1018
  "type": "object",
891
1019
  "properties": {
892
1020
  "file": {
@@ -897,10 +1025,6 @@
897
1025
  "description": "Number of times the audio file is played. Specifying '0' causes the Play action to loop until the Call is hung up.",
898
1026
  "type": "integer"
899
1027
  },
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
1028
  "privacyMode": {
905
1029
  "description": "Parameter `privacyMode` will not log the `text` as required by PCI compliance.",
906
1030
  "type": "boolean"
@@ -917,7 +1041,9 @@
917
1041
  "$ref": "#/components/schemas/PerclCommand"
918
1042
  },
919
1043
  {
920
- "required": ["file"],
1044
+ "required": [
1045
+ "file"
1046
+ ],
921
1047
  "type": "object",
922
1048
  "properties": {
923
1049
  "file": {
@@ -937,7 +1063,9 @@
937
1063
  "x-is-uri": true
938
1064
  },
939
1065
  {
940
- "required": ["actionUrl"],
1066
+ "required": [
1067
+ "actionUrl"
1068
+ ],
941
1069
  "type": "object",
942
1070
  "properties": {
943
1071
  "actionUrl": {
@@ -982,7 +1110,9 @@
982
1110
  "x-is-uri": true
983
1111
  },
984
1112
  {
985
- "required": ["actionUrl"],
1113
+ "required": [
1114
+ "actionUrl"
1115
+ ],
986
1116
  "type": "object",
987
1117
  "properties": {
988
1118
  "actionUrl": {
@@ -1020,14 +1150,9 @@
1020
1150
  "$ref": "#/components/schemas/PerclCommand"
1021
1151
  },
1022
1152
  {
1023
- "required": ["callId"],
1153
+ "required": [],
1024
1154
  "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
- }
1155
+ "properties": {}
1031
1156
  }
1032
1157
  ]
1033
1158
  },
@@ -1039,7 +1164,9 @@
1039
1164
  "$ref": "#/components/schemas/PerclCommand"
1040
1165
  },
1041
1166
  {
1042
- "required": ["text"],
1167
+ "required": [
1168
+ "text"
1169
+ ],
1043
1170
  "type": "object",
1044
1171
  "properties": {
1045
1172
  "text": {
@@ -1055,10 +1182,6 @@
1055
1182
  "type": "integer",
1056
1183
  "default": 1
1057
1184
  },
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
1185
  "privacyMode": {
1063
1186
  "description": "Parameter `privacyMode` will not log the `text` as required by PCI compliance.",
1064
1187
  "type": "boolean"
@@ -1075,7 +1198,9 @@
1075
1198
  "$ref": "#/components/schemas/PerclCommand"
1076
1199
  },
1077
1200
  {
1078
- "required": ["digits"],
1201
+ "required": [
1202
+ "digits"
1203
+ ],
1079
1204
  "type": "object",
1080
1205
  "properties": {
1081
1206
  "digits": {
@@ -1102,13 +1227,9 @@
1102
1227
  "$ref": "#/components/schemas/PerclCommand"
1103
1228
  },
1104
1229
  {
1105
- "required": ["callId"],
1230
+ "required": [],
1106
1231
  "type": "object",
1107
1232
  "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
1233
  "listen": {
1113
1234
  "description": "Specifying `false` will silence the Conference for this Participant.",
1114
1235
  "type": "boolean"
@@ -1125,13 +1246,9 @@
1125
1246
  "$ref": "#/components/schemas/PerclCommand"
1126
1247
  },
1127
1248
  {
1128
- "required": ["callId"],
1249
+ "required": [],
1129
1250
  "type": "object",
1130
1251
  "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
1252
  "talk": {
1136
1253
  "description": "Specifying `false` mutes the Participant.",
1137
1254
  "type": "boolean"
@@ -1148,7 +1265,11 @@
1148
1265
  "$ref": "#/components/schemas/PerclCommand"
1149
1266
  },
1150
1267
  {
1151
- "required": ["to", "from", "text"],
1268
+ "required": [
1269
+ "to",
1270
+ "from",
1271
+ "text"
1272
+ ],
1152
1273
  "type": "object",
1153
1274
  "properties": {
1154
1275
  "to": {
@@ -1192,14 +1313,9 @@
1192
1313
  "$ref": "#/components/schemas/PerclCommand"
1193
1314
  },
1194
1315
  {
1195
- "required": ["conferenceId"],
1316
+ "required": [],
1196
1317
  "type": "object",
1197
- "properties": {
1198
- "conferenceId": {
1199
- "description": "ID of the conference to terminate.",
1200
- "type": "string"
1201
- }
1202
- }
1318
+ "properties": {}
1203
1319
  }
1204
1320
  ]
1205
1321
  },
@@ -1280,7 +1396,13 @@
1280
1396
  "Capabilities": {
1281
1397
  "description": "Details for which features this number may be used.",
1282
1398
  "type": "object",
1283
- "required": ["voice", "sms", "tollFree", "tenDLC", "shortCode"],
1399
+ "required": [
1400
+ "voice",
1401
+ "sms",
1402
+ "tollFree",
1403
+ "tenDLC",
1404
+ "shortCode"
1405
+ ],
1284
1406
  "x-is-object": true,
1285
1407
  "properties": {
1286
1408
  "voice": {
@@ -1310,6 +1432,20 @@
1310
1432
  }
1311
1433
  }
1312
1434
  },
1435
+ "TFN": {
1436
+ "description": "TollFree Campaign details for this number",
1437
+ "type": "object",
1438
+ "required": [
1439
+ "campaignId"
1440
+ ],
1441
+ "x-is-object": true,
1442
+ "properties": {
1443
+ "campaignId": {
1444
+ "description": "alphanumeric identifier for the TollFree campaign associated with this number",
1445
+ "type": "string"
1446
+ }
1447
+ }
1448
+ },
1313
1449
  "AccountRequest": {
1314
1450
  "type": "object",
1315
1451
  "properties": {
@@ -1609,6 +1745,10 @@
1609
1745
  "type": "boolean",
1610
1746
  "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
1747
  "nullable": true
1748
+ },
1749
+ "tfn": {
1750
+ "$ref": "#/components/schemas/TFN",
1751
+ "nullable": true
1612
1752
  }
1613
1753
  }
1614
1754
  }
@@ -1654,7 +1794,9 @@
1654
1794
  },
1655
1795
  "BuyIncomingNumberRequest": {
1656
1796
  "type": "object",
1657
- "required": ["phoneNumber"],
1797
+ "required": [
1798
+ "phoneNumber"
1799
+ ],
1658
1800
  "properties": {
1659
1801
  "phoneNumber": {
1660
1802
  "type": "string",
@@ -1753,7 +1895,9 @@
1753
1895
  },
1754
1896
  "UpdateCallRequest": {
1755
1897
  "type": "object",
1756
- "required": ["status"],
1898
+ "required": [
1899
+ "status"
1900
+ ],
1757
1901
  "properties": {
1758
1902
  "status": {
1759
1903
  "$ref": "#/components/schemas/UpdateCallRequestStatus"
@@ -1762,7 +1906,10 @@
1762
1906
  },
1763
1907
  "MakeCallRequest": {
1764
1908
  "type": "object",
1765
- "required": ["from", "to"],
1909
+ "required": [
1910
+ "from",
1911
+ "to"
1912
+ ],
1766
1913
  "properties": {
1767
1914
  "from": {
1768
1915
  "type": "string",
@@ -2030,7 +2177,11 @@
2030
2177
  },
2031
2178
  {
2032
2179
  "type": "object",
2033
- "required": ["from", "to", "text"],
2180
+ "required": [
2181
+ "from",
2182
+ "to",
2183
+ "text"
2184
+ ],
2034
2185
  "properties": {
2035
2186
  "from": {
2036
2187
  "type": "string",
@@ -2048,9 +2199,13 @@
2048
2199
  "type": "string",
2049
2200
  "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
2201
  },
2051
- "accountId": {
2052
- "type": "string",
2053
- "description": "String that uniquely identifies this account resource."
2202
+ "mediaUrls": {
2203
+ "type": "array",
2204
+ "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.",
2205
+ "items": {
2206
+ "type": "string",
2207
+ "format": "uri"
2208
+ }
2054
2209
  }
2055
2210
  }
2056
2211
  }
@@ -2136,6 +2291,14 @@
2136
2291
  "type": "number",
2137
2292
  "description": "The number of segments into which the message was split",
2138
2293
  "nullable": true
2294
+ },
2295
+ "mediaUrls": {
2296
+ "type": "array",
2297
+ "description": "an array of HTTP URLs which were attached this this message",
2298
+ "items": {
2299
+ "type": "string",
2300
+ "format": "uri"
2301
+ }
2139
2302
  }
2140
2303
  }
2141
2304
  }
@@ -2389,7 +2552,9 @@
2389
2552
  },
2390
2553
  "FilterLogsRequest": {
2391
2554
  "type": "object",
2392
- "required": ["pql"],
2555
+ "required": [
2556
+ "pql"
2557
+ ],
2393
2558
  "properties": {
2394
2559
  "pql": {
2395
2560
  "type": "string",
@@ -2452,8 +2617,14 @@
2452
2617
  "type": "string",
2453
2618
  "x-has-writer": true,
2454
2619
  "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
2455
- "enum": ["ACTIVE", "EXPIRED"],
2456
- "x-enum-varnames": ["ACTIVE", "EXPIRED"]
2620
+ "enum": [
2621
+ "ACTIVE",
2622
+ "EXPIRED"
2623
+ ],
2624
+ "x-enum-varnames": [
2625
+ "ACTIVE",
2626
+ "EXPIRED"
2627
+ ]
2457
2628
  },
2458
2629
  "createDate": {
2459
2630
  "type": "string",
@@ -2579,6 +2750,31 @@
2579
2750
  "nullable": true,
2580
2751
  "description": "Help message of the campaign."
2581
2752
  },
2753
+ "optinKeywords": {
2754
+ "maxLength": 255,
2755
+ "type": "string",
2756
+ "description": "Subscriber opt-in keywords. Multiple keywords are comma separated without space."
2757
+ },
2758
+ "optoutKeywords": {
2759
+ "maxLength": 255,
2760
+ "type": "string",
2761
+ "description": "Subscriber opt-out keywords. Multiple keywords are comma separated without space."
2762
+ },
2763
+ "helpKeywords": {
2764
+ "maxLength": 255,
2765
+ "type": "string",
2766
+ "description": "Subscriber help keywords. Multiple keywords are comma separated without space."
2767
+ },
2768
+ "optinMessage": {
2769
+ "maxLength": 255,
2770
+ "type": "string",
2771
+ "description": "Subscriber opt-in message."
2772
+ },
2773
+ "optoutMessage": {
2774
+ "maxLength": 255,
2775
+ "type": "string",
2776
+ "description": "Subscriber opt-out message."
2777
+ },
2582
2778
  "referenceId": {
2583
2779
  "maxLength": 50,
2584
2780
  "type": "string",
@@ -2653,7 +2849,12 @@
2653
2849
  ]
2654
2850
  },
2655
2851
  "SMSTenDLCPartnerCampaign": {
2656
- "required": ["brandId", "campaignId", "description", "usecase"],
2852
+ "required": [
2853
+ "brandId",
2854
+ "campaignId",
2855
+ "description",
2856
+ "usecase"
2857
+ ],
2657
2858
  "type": "object",
2658
2859
  "properties": {
2659
2860
  "accountId": {
@@ -2669,8 +2870,14 @@
2669
2870
  "type": "string",
2670
2871
  "x-has-writer": true,
2671
2872
  "description": "Current campaign status. Possible values: ACTIVE, EXPIRED. A newly created campaign defaults to ACTIVE status. ",
2672
- "enum": ["ACTIVE", "EXPIRED"],
2673
- "x-enum-varnames": ["ACTIVE", "EXPIRED"]
2873
+ "enum": [
2874
+ "ACTIVE",
2875
+ "EXPIRED"
2876
+ ],
2877
+ "x-enum-varnames": [
2878
+ "ACTIVE",
2879
+ "EXPIRED"
2880
+ ]
2674
2881
  },
2675
2882
  "createDate": {
2676
2883
  "type": "string",
@@ -2849,7 +3056,10 @@
2849
3056
  }
2850
3057
  },
2851
3058
  "SMSTenDLCPartnerCampaignBrand": {
2852
- "required": ["email", "phone"],
3059
+ "required": [
3060
+ "email",
3061
+ "phone"
3062
+ ],
2853
3063
  "type": "object",
2854
3064
  "x-is-object": true,
2855
3065
  "properties": {
@@ -3179,8 +3389,18 @@
3179
3389
  "altBusinessIdType": {
3180
3390
  "type": "string",
3181
3391
  "x-has-writer": true,
3182
- "enum": ["NONE", "DUNS", "GIIN", "LEI"],
3183
- "x-enum-varnames": ["NONE", "DUNS", "GIIN", "LEI"],
3392
+ "enum": [
3393
+ "NONE",
3394
+ "DUNS",
3395
+ "GIIN",
3396
+ "LEI"
3397
+ ],
3398
+ "x-enum-varnames": [
3399
+ "NONE",
3400
+ "DUNS",
3401
+ "GIIN",
3402
+ "LEI"
3403
+ ],
3184
3404
  "description": "The type of the Alternative business identifier"
3185
3405
  },
3186
3406
  "universalEin": {
@@ -3264,6 +3484,80 @@
3264
3484
  "createDate": "2022-07-01T20:29:23Z"
3265
3485
  }
3266
3486
  },
3487
+ "SMSTollFreeCampaignsListResult": {
3488
+ "allOf": [
3489
+ {
3490
+ "$ref": "#/components/schemas/PaginationModel"
3491
+ },
3492
+ {
3493
+ "type": "object",
3494
+ "properties": {
3495
+ "brands": {
3496
+ "type": "array",
3497
+ "items": {
3498
+ "$ref": "#/components/schemas/SMSTollFreeCampaign"
3499
+ },
3500
+ "nullable": true,
3501
+ "x-is-list": true
3502
+ }
3503
+ }
3504
+ }
3505
+ ]
3506
+ },
3507
+ "SMSTollFreeCampaign": {
3508
+ "type": "object",
3509
+ "required": [
3510
+ "accountId",
3511
+ "campaignId",
3512
+ "useCase",
3513
+ "registrationStatus",
3514
+ "dateCreated",
3515
+ "dateUpdated",
3516
+ "revision"
3517
+ ],
3518
+ "properties": {
3519
+ "accountId": {
3520
+ "type": "string",
3521
+ "description": "ID of the account that created this toll-free campaign",
3522
+ "nullable": true
3523
+ },
3524
+ "campaignId": {
3525
+ "type": "string",
3526
+ "description": "Alphanumeric identifier used by the platform to identify this toll-free campaign"
3527
+ },
3528
+ "useCase": {
3529
+ "type": "string"
3530
+ },
3531
+ "registrationStatus": {
3532
+ "type": "string",
3533
+ "x-has-writer": true,
3534
+ "description": "Current toll-free campaign registration status.Possible values: UNREGISTERED,INITIATED,PENDING,DECLINED,REGISTERED. A newly created campaign defaults to INITIATED status. ",
3535
+ "enum": [
3536
+ "UNREGISTERED",
3537
+ "INITIATED",
3538
+ "PENDING",
3539
+ "DECLINED",
3540
+ "REGISTERED"
3541
+ ],
3542
+ "x-enum-varnames": [
3543
+ "UNREGISTERED",
3544
+ "INITIATED",
3545
+ "PENDING",
3546
+ "DECLINED",
3547
+ "REGISTERED"
3548
+ ]
3549
+ },
3550
+ "dateCreated": {
3551
+ "type": "string"
3552
+ },
3553
+ "dateUpdated": {
3554
+ "type": "string"
3555
+ },
3556
+ "revision": {
3557
+ "type": "integer"
3558
+ }
3559
+ }
3560
+ },
3267
3561
  "TranscribeUtterance": {
3268
3562
  "title": "TranscribeUtterance",
3269
3563
  "x-stoplight": {
@@ -3314,7 +3608,9 @@
3314
3608
  "items": {}
3315
3609
  }
3316
3610
  },
3317
- "required": ["actionUrl"],
3611
+ "required": [
3612
+ "actionUrl"
3613
+ ],
3318
3614
  "x-examples": {
3319
3615
  "Example 1": {
3320
3616
  "TranscribeUtterance": {
@@ -3335,6 +3631,30 @@
3335
3631
  }
3336
3632
  }
3337
3633
  }
3634
+ },
3635
+ "CreateWebRTCToken": {
3636
+ "type": "object",
3637
+ "required": [
3638
+ "to",
3639
+ "from",
3640
+ "uses"
3641
+ ],
3642
+ "additionalProperties": false,
3643
+ "properties": {
3644
+ "to": {
3645
+ "type": "string",
3646
+ "description": "E.164 formatted phone number to which calls using this token will be made."
3647
+ },
3648
+ "from": {
3649
+ "type": "string",
3650
+ "description": "E.164 formatted phone number owned by the reqeusting account from which calls using this token will be made."
3651
+ },
3652
+ "uses": {
3653
+ "type": "integer",
3654
+ "description": "number of times this token may be used for a WebRTC call",
3655
+ "minimum": 1
3656
+ }
3657
+ }
3338
3658
  }
3339
3659
  }
3340
3660
  },
@@ -3857,6 +4177,15 @@
3857
4177
  {
3858
4178
  "$ref": "#/components/parameters/Capabilities.ShortCode"
3859
4179
  },
4180
+ {
4181
+ "name": "tfn.campaignId",
4182
+ "in": "query",
4183
+ "required": false,
4184
+ "description": "Only show incoming phone number resources that have been assigned to the provided TFNCampaign ID.",
4185
+ "schema": {
4186
+ "type": "string"
4187
+ }
4188
+ },
3860
4189
  {
3861
4190
  "name": "offnet",
3862
4191
  "in": "query",
@@ -4200,6 +4529,42 @@
4200
4529
  }
4201
4530
  }
4202
4531
  },
4532
+ "/Accounts/{accountId}/Calls/WebRTC/Token": {
4533
+ "post": {
4534
+ "summary": "Make a JWT for WebRTC calling",
4535
+ "description": "Make a JWT for WebRTC calling",
4536
+ "operationId": "make-a-webrtc-jwt",
4537
+ "parameters": [
4538
+ {
4539
+ "$ref": "#/components/parameters/AccountId"
4540
+ }
4541
+ ],
4542
+ "requestBody": {
4543
+ "description": "Information needed to craft a JWT compatible with the platforms WebRTC APIs",
4544
+ "required": true,
4545
+ "content": {
4546
+ "application/json": {
4547
+ "schema": {
4548
+ "$ref": "#/components/schemas/CreateWebRTCToken"
4549
+ }
4550
+ }
4551
+ }
4552
+ },
4553
+ "responses": {
4554
+ "200": {
4555
+ "description": "The created JWT",
4556
+ "content": {
4557
+ "text/plain": {
4558
+ "schema": {
4559
+ "type": "string",
4560
+ "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEyMzQ1Njc4LCJjdXN0b20iOnsidG8iOiIrMTEyMjMzMzQ0NDQiLCJmcm9tIjoiKzE0NDQ0MzMzMjIxIiwidXNlcyI6MX19.H3UKv7poe0adLoFpilxOtC5dGsE5eb2ZxiuygDPs23E"
4561
+ }
4562
+ }
4563
+ }
4564
+ }
4565
+ }
4566
+ }
4567
+ },
4203
4568
  "/Accounts/{accountId}/Conferences": {
4204
4569
  "post": {
4205
4570
  "tags": [],
@@ -4325,15 +4690,8 @@
4325
4690
  },
4326
4691
  "deprecated": false,
4327
4692
  "responses": {
4328
- "200": {
4329
- "description": "Conference Details to Update",
4330
- "content": {
4331
- "application/json": {
4332
- "schema": {
4333
- "$ref": "#/components/schemas/ConferenceResult"
4334
- }
4335
- }
4336
- }
4693
+ "204": {
4694
+ "description": "Successful conference details update"
4337
4695
  }
4338
4696
  }
4339
4697
  },
@@ -4550,6 +4908,58 @@
4550
4908
  }
4551
4909
  }
4552
4910
  },
4911
+ "/Accounts/{accountId}/Conferences/{conferenceId}/Recordings": {
4912
+ "get": {
4913
+ "tags": [],
4914
+ "summary": "List Conference Recordings",
4915
+ "operationId": "list-conference-recordings",
4916
+ "parameters": [
4917
+ {
4918
+ "name": "callId",
4919
+ "in": "query",
4920
+ "description": "Show only Recordings made during the Call with this ID.",
4921
+ "required": false,
4922
+ "schema": {
4923
+ "type": "string"
4924
+ }
4925
+ },
4926
+ {
4927
+ "name": "conferenceId",
4928
+ "in": "query",
4929
+ "description": "Show only Recordings made during the conference with this ID.",
4930
+ "required": false,
4931
+ "schema": {
4932
+ "type": "string"
4933
+ }
4934
+ },
4935
+ {
4936
+ "name": "dateCreated",
4937
+ "in": "query",
4938
+ "description": "Only show Recordings created on this date, formatted as *YYYY-MM-DD*.",
4939
+ "required": false,
4940
+ "schema": {
4941
+ "type": "string"
4942
+ }
4943
+ },
4944
+ {
4945
+ "$ref": "#/components/parameters/AccountId"
4946
+ }
4947
+ ],
4948
+ "responses": {
4949
+ "200": {
4950
+ "description": "List of Recordings",
4951
+ "content": {
4952
+ "application/json": {
4953
+ "schema": {
4954
+ "$ref": "#/components/schemas/RecordingList"
4955
+ }
4956
+ }
4957
+ }
4958
+ }
4959
+ },
4960
+ "deprecated": false
4961
+ }
4962
+ },
4553
4963
  "/Accounts/{accountId}/Queues/{queueId}": {
4554
4964
  "post": {
4555
4965
  "tags": [],
@@ -5615,11 +6025,96 @@
5615
6025
  },
5616
6026
  "deprecated": false
5617
6027
  }
6028
+ },
6029
+ "/Accounts/{accountId}/Messages/TollFree/Campaigns": {
6030
+ "get": {
6031
+ "tags": [],
6032
+ "summary": "Get list of TollFree Campaigns",
6033
+ "operationId": "get-tollFree-sms-campaigns",
6034
+ "parameters": [
6035
+ {
6036
+ "$ref": "#/components/parameters/AccountId"
6037
+ }
6038
+ ],
6039
+ "responses": {
6040
+ "200": {
6041
+ "description": "The list toll-free campaigns",
6042
+ "content": {
6043
+ "application/json": {
6044
+ "schema": {
6045
+ "$ref": "#/components/schemas/SMSTollFreeCampaignsListResult"
6046
+ },
6047
+ "example": {
6048
+ "total": 1,
6049
+ "start": 0,
6050
+ "end": 0,
6051
+ "page": 0,
6052
+ "numPages": 1,
6053
+ "pageSize": 100,
6054
+ "nextPageUri": null,
6055
+ "tfnCampaigns": [
6056
+ {
6057
+ "accountId": "ACe39970fb7c31c747c67148900b4d9da60a41e532",
6058
+ "campaignId": "cmptfn_387ec3f6e03b340553f35f29c8f118cdf3eae08a",
6059
+ "useCase": "example use case",
6060
+ "registrationStatus": "PENDING",
6061
+ "dateCreated": 1704839615,
6062
+ "dateUpdated": 1704839615,
6063
+ "revision": 1
6064
+ }
6065
+ ]
6066
+ }
6067
+ }
6068
+ }
6069
+ }
6070
+ },
6071
+ "deprecated": false
6072
+ }
6073
+ },
6074
+ "/Accounts/{accountId}/Messages/TollFree/Campaigns/{campaignId}": {
6075
+ "get": {
6076
+ "tags": [],
6077
+ "summary": "Get a TollFree SMS Campaign",
6078
+ "operationId": "get-tollFree-sms-campaign",
6079
+ "parameters": [
6080
+ {
6081
+ "$ref": "#/components/parameters/AccountId"
6082
+ },
6083
+ {
6084
+ "name": "campaignId",
6085
+ "in": "path",
6086
+ "description": "String that uniquely identifies this TollFree Campaign resource.",
6087
+ "required": true,
6088
+ "schema": {
6089
+ "type": "string"
6090
+ }
6091
+ }
6092
+ ],
6093
+ "responses": {
6094
+ "200": {
6095
+ "description": "The specific SMS TollFree Campaign that’s been processed by FreeClimb",
6096
+ "content": {
6097
+ "application/json": {
6098
+ "schema": {
6099
+ "$ref": "#/components/schemas/SMSTollFreeCampaign"
6100
+ }
6101
+ }
6102
+ }
6103
+ }
6104
+ },
6105
+ "deprecated": false
6106
+ }
5618
6107
  }
5619
6108
  },
5620
6109
  "x-headers": [],
5621
6110
  "x-explorer-enabled": true,
5622
6111
  "x-proxy-enabled": true,
5623
6112
  "x-samples-enabled": false,
5624
- "x-samples-languages": ["curl", "node", "ruby", "javascript", "python"]
5625
- }
6113
+ "x-samples-languages": [
6114
+ "curl",
6115
+ "node",
6116
+ "ruby",
6117
+ "javascript",
6118
+ "python"
6119
+ ]
6120
+ }