twilio-ruby 5.72.0 → 6.0.2

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 (654) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/pr-lint.yml +8 -2
  3. data/.github/workflows/test-and-deploy.yml +14 -4
  4. data/.gitignore +3 -0
  5. data/CHANGES.md +281 -1
  6. data/CONTRIBUTING.md +10 -8
  7. data/LICENSE +1 -1
  8. data/Makefile +3 -0
  9. data/README.md +133 -40
  10. data/UPGRADE.md +10 -0
  11. data/advanced-examples/custom-http-client.md +170 -0
  12. data/cluster_spec.rb +77 -0
  13. data/lib/twilio-ruby/base/client_base.rb +124 -0
  14. data/lib/twilio-ruby/framework/rest/error.rb +0 -12
  15. data/lib/twilio-ruby/jwt/access_token.rb +0 -59
  16. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +198 -178
  17. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +372 -332
  18. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +372 -332
  19. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +121 -114
  20. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +214 -192
  21. data/lib/twilio-ruby/rest/accounts/v1.rb +45 -42
  22. data/lib/twilio-ruby/rest/accounts.rb +4 -34
  23. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  24. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +371 -365
  25. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +555 -514
  26. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +617 -586
  27. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +328 -320
  28. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +413 -0
  29. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +413 -0
  30. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +413 -0
  31. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +413 -0
  32. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +413 -0
  33. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +413 -0
  34. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +413 -0
  35. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +433 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +136 -118
  37. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +203 -194
  38. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +252 -289
  39. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -303
  40. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +405 -417
  41. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +291 -342
  42. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +498 -511
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +839 -641
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +839 -641
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +163 -0
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +239 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +963 -991
  48. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +653 -717
  49. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +455 -458
  50. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +498 -493
  51. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +427 -407
  52. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +322 -351
  53. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +399 -418
  54. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +541 -554
  55. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +541 -553
  56. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +541 -553
  57. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +846 -903
  58. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +336 -302
  59. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +167 -166
  60. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +344 -350
  61. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +618 -625
  62. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +157 -138
  63. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +157 -138
  64. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +405 -399
  65. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +371 -358
  66. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +341 -338
  67. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +427 -390
  68. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +359 -380
  69. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +369 -385
  70. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +365 -372
  71. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +514 -513
  72. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +420 -408
  73. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +336 -306
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +376 -368
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +400 -373
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +347 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/{auth_calls_mapping → auth_type_calls}/auth_calls_ip_access_control_list_mapping.rb +194 -195
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +140 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/{auth_registrations_mapping → auth_type_registrations}/auth_registrations_credential_list_mapping.rb +194 -195
  80. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +126 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +94 -103
  82. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +340 -339
  83. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +340 -338
  84. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +650 -645
  85. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +413 -421
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +400 -374
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +141 -150
  88. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +171 -154
  89. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +365 -350
  90. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +319 -339
  91. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +319 -339
  92. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +319 -339
  93. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +319 -339
  94. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +319 -339
  95. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +319 -339
  96. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +319 -339
  97. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +319 -339
  98. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +386 -416
  99. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +489 -484
  100. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +112 -104
  101. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +172 -161
  102. data/lib/twilio-ruby/rest/api/v2010/account.rb +982 -943
  103. data/lib/twilio-ruby/rest/api/v2010.rb +126 -148
  104. data/lib/twilio-ruby/rest/api.rb +25 -34
  105. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  106. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +234 -213
  107. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +210 -207
  108. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +380 -388
  109. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +429 -411
  110. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +403 -385
  111. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +471 -462
  112. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +234 -211
  113. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +363 -375
  114. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +427 -445
  115. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +242 -244
  116. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +215 -226
  117. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +519 -500
  118. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +427 -413
  119. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +674 -640
  120. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +201 -188
  121. data/lib/twilio-ruby/rest/autopilot/v1.rb +48 -45
  122. data/lib/twilio-ruby/rest/autopilot.rb +3 -34
  123. data/lib/twilio-ruby/rest/autopilot_base.rb +38 -0
  124. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +300 -279
  125. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +299 -279
  126. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +271 -248
  127. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +246 -235
  128. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +245 -218
  129. data/lib/twilio-ruby/rest/bulkexports/v1.rb +57 -55
  130. data/lib/twilio-ruby/rest/bulkexports.rb +3 -34
  131. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  132. data/lib/twilio-ruby/rest/chat/v1/credential.rb +420 -403
  133. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +375 -391
  134. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +423 -440
  135. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +440 -437
  136. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +535 -515
  137. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +397 -367
  138. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +245 -239
  139. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +466 -440
  140. data/lib/twilio-ruby/rest/chat/v1/service.rb +862 -894
  141. data/lib/twilio-ruby/rest/chat/v1.rb +57 -55
  142. data/lib/twilio-ruby/rest/chat/v2/credential.rb +420 -401
  143. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +372 -370
  144. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +375 -386
  145. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +487 -527
  146. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +515 -533
  147. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +441 -467
  148. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +607 -605
  149. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +397 -369
  150. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +365 -381
  151. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +407 -419
  152. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +510 -491
  153. data/lib/twilio-ruby/rest/chat/v2/service.rb +765 -778
  154. data/lib/twilio-ruby/rest/chat/v2.rb +57 -53
  155. data/lib/twilio-ruby/rest/chat/v3/channel.rb +289 -267
  156. data/lib/twilio-ruby/rest/chat/v3.rb +64 -41
  157. data/lib/twilio-ruby/rest/chat.rb +4 -48
  158. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  159. data/lib/twilio-ruby/rest/client.rb +328 -570
  160. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +208 -0
  161. data/lib/twilio-ruby/rest/content/v1/content.rb +364 -0
  162. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +252 -0
  163. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +266 -0
  164. data/lib/twilio-ruby/rest/content/v1.rb +61 -0
  165. data/lib/twilio-ruby/rest/content.rb +15 -0
  166. data/lib/twilio-ruby/rest/content_base.rb +38 -0
  167. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +474 -444
  168. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -227
  169. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +279 -252
  170. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +335 -344
  171. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +530 -495
  172. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +499 -495
  173. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +426 -403
  174. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +606 -552
  175. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +426 -409
  176. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +307 -304
  177. data/lib/twilio-ruby/rest/conversations/v1/role.rb +385 -356
  178. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +365 -373
  179. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +300 -289
  180. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +246 -235
  181. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +307 -279
  182. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +342 -371
  183. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +537 -535
  184. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +508 -530
  185. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +435 -438
  186. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +618 -588
  187. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +313 -317
  188. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +397 -380
  189. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +447 -455
  190. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +485 -474
  191. data/lib/twilio-ruby/rest/conversations/v1/service.rb +477 -447
  192. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +446 -435
  193. data/lib/twilio-ruby/rest/conversations/v1/user.rb +473 -441
  194. data/lib/twilio-ruby/rest/conversations/v1.rb +129 -136
  195. data/lib/twilio-ruby/rest/conversations.rb +9 -34
  196. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  197. data/lib/twilio-ruby/rest/events/v1/event_type.rb +306 -288
  198. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +302 -0
  199. data/lib/twilio-ruby/rest/events/v1/schema.rb +229 -218
  200. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +114 -100
  201. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +120 -103
  202. data/lib/twilio-ruby/rest/events/v1/sink.rb +439 -408
  203. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +368 -339
  204. data/lib/twilio-ruby/rest/events/v1/subscription.rb +420 -387
  205. data/lib/twilio-ruby/rest/events/v1.rb +87 -87
  206. data/lib/twilio-ruby/rest/events.rb +5 -34
  207. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  208. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +451 -0
  209. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +366 -330
  210. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +489 -496
  211. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +565 -570
  212. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +331 -0
  213. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +231 -0
  214. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +445 -0
  215. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +360 -0
  216. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +445 -0
  217. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +364 -0
  218. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
  219. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +155 -0
  220. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +141 -0
  221. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
  222. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +245 -229
  223. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +329 -319
  224. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +400 -398
  225. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +249 -225
  226. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +379 -331
  227. data/lib/twilio-ruby/rest/flex_api/v1.rb +195 -92
  228. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +146 -0
  229. data/lib/twilio-ruby/rest/flex_api/v2.rb +40 -0
  230. data/lib/twilio-ruby/rest/flex_api.rb +24 -31
  231. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  232. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +244 -227
  233. data/lib/twilio-ruby/rest/frontline_api/v1.rb +42 -38
  234. data/lib/twilio-ruby/rest/frontline_api.rb +2 -34
  235. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  236. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +312 -315
  237. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +350 -0
  238. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +271 -255
  239. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +244 -225
  240. data/lib/twilio-ruby/rest/insights/v1/call.rb +260 -236
  241. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +496 -426
  242. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +485 -467
  243. data/lib/twilio-ruby/rest/insights/v1/conference.rb +506 -502
  244. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +379 -371
  245. data/lib/twilio-ruby/rest/insights/v1/room.rb +494 -489
  246. data/lib/twilio-ruby/rest/insights/v1/setting.rb +246 -207
  247. data/lib/twilio-ruby/rest/insights/v1.rb +84 -83
  248. data/lib/twilio-ruby/rest/insights.rb +6 -34
  249. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  250. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +511 -0
  251. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +226 -0
  252. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +383 -0
  253. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +250 -0
  254. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +540 -0
  255. data/lib/twilio-ruby/rest/intelligence/v2.rb +64 -0
  256. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  257. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  258. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +420 -364
  259. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +375 -359
  260. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +423 -397
  261. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +440 -409
  262. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +535 -488
  263. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +397 -347
  264. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +245 -233
  265. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +466 -418
  266. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +862 -779
  267. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  268. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +420 -364
  269. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +372 -343
  270. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +375 -359
  271. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +487 -451
  272. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +515 -479
  273. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +441 -411
  274. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +607 -555
  275. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +397 -347
  276. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +365 -351
  277. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +398 -384
  278. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +510 -467
  279. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +765 -689
  280. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -53
  281. data/lib/twilio-ruby/rest/ip_messaging.rb +3 -41
  282. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  283. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +243 -239
  284. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -39
  285. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +342 -253
  286. data/lib/twilio-ruby/rest/lookups/v2.rb +42 -38
  287. data/lib/twilio-ruby/rest/lookups.rb +2 -41
  288. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  289. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +413 -387
  290. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +399 -389
  291. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +245 -214
  292. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +425 -393
  293. data/lib/twilio-ruby/rest/media/v1.rb +72 -69
  294. data/lib/twilio-ruby/rest/media.rb +4 -34
  295. data/lib/twilio-ruby/rest/media_base.rb +38 -0
  296. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +136 -0
  297. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +360 -346
  298. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +488 -443
  299. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +189 -0
  300. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +280 -0
  301. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +289 -0
  302. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +238 -0
  303. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +155 -144
  304. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +214 -0
  305. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +196 -0
  306. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +352 -335
  307. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +359 -341
  308. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +359 -336
  309. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +507 -426
  310. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +121 -115
  311. data/lib/twilio-ruby/rest/messaging/v1/service.rb +741 -763
  312. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +106 -94
  313. data/lib/twilio-ruby/rest/messaging/v1.rb +172 -90
  314. data/lib/twilio-ruby/rest/messaging.rb +28 -35
  315. data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
  316. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +359 -0
  317. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +352 -0
  318. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +208 -0
  319. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +340 -295
  320. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +375 -0
  321. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +368 -0
  322. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +412 -322
  323. data/lib/twilio-ruby/rest/microvisor/v1.rb +87 -53
  324. data/lib/twilio-ruby/rest/microvisor.rb +4 -34
  325. data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
  326. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +402 -395
  327. data/lib/twilio-ruby/rest/monitor/v1/event.rb +388 -390
  328. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -53
  329. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  330. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  331. data/lib/twilio-ruby/rest/notify/v1/credential.rb +422 -408
  332. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +440 -452
  333. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +313 -362
  334. data/lib/twilio-ruby/rest/notify/v1/service.rb +628 -622
  335. data/lib/twilio-ruby/rest/notify/v1.rb +57 -55
  336. data/lib/twilio-ruby/rest/notify.rb +3 -34
  337. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  338. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +224 -0
  339. data/lib/twilio-ruby/rest/numbers/v1.rb +49 -0
  340. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +279 -261
  341. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +325 -298
  342. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +334 -309
  343. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +194 -181
  344. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +613 -607
  345. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +392 -351
  346. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +291 -266
  347. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +326 -307
  348. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +413 -371
  349. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +291 -266
  350. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +177 -181
  351. data/lib/twilio-ruby/rest/numbers/v2.rb +33 -28
  352. data/lib/twilio-ruby/rest/numbers.rb +2 -34
  353. data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
  354. data/lib/twilio-ruby/rest/oauth/v1/device_code.rb +171 -0
  355. data/lib/twilio-ruby/rest/oauth/v1/oauth.rb +185 -0
  356. data/lib/twilio-ruby/rest/oauth/v1/openid_discovery.rb +262 -0
  357. data/lib/twilio-ruby/rest/oauth/v1/token.rb +179 -0
  358. data/lib/twilio-ruby/rest/oauth/v1/user_info.rb +213 -0
  359. data/lib/twilio-ruby/rest/oauth/v1.rb +64 -0
  360. data/lib/twilio-ruby/rest/oauth.rb +33 -0
  361. data/lib/twilio-ruby/rest/oauth_base.rb +38 -0
  362. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +412 -375
  363. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +395 -358
  364. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +451 -418
  365. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +409 -369
  366. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +495 -459
  367. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +42 -38
  368. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +376 -396
  369. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +449 -446
  370. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +616 -625
  371. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -55
  372. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +302 -298
  373. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +326 -309
  374. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +343 -330
  375. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +430 -398
  376. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -53
  377. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +379 -374
  378. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +443 -399
  379. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +438 -407
  380. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +379 -374
  381. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +420 -398
  382. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +441 -404
  383. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +379 -374
  384. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +420 -398
  385. data/lib/twilio-ruby/rest/preview/sync/service.rb +496 -452
  386. data/lib/twilio-ruby/rest/preview/sync.rb +42 -37
  387. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +234 -205
  388. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +234 -205
  389. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +210 -199
  390. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +380 -375
  391. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +429 -400
  392. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +403 -373
  393. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +460 -430
  394. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +234 -205
  395. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +363 -362
  396. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +427 -417
  397. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +242 -230
  398. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +215 -214
  399. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +519 -488
  400. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +654 -619
  401. data/lib/twilio-ruby/rest/preview/understand.rb +42 -38
  402. data/lib/twilio-ruby/rest/preview/wireless/command.rb +392 -364
  403. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +449 -398
  404. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +232 -205
  405. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +580 -523
  406. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -69
  407. data/lib/twilio-ruby/rest/preview.rb +11 -102
  408. data/lib/twilio-ruby/rest/preview_base.rb +63 -0
  409. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +298 -275
  410. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +107 -119
  411. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +291 -268
  412. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +107 -119
  413. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +298 -275
  414. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +220 -197
  415. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +121 -135
  416. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  417. data/lib/twilio-ruby/rest/pricing/v2/country.rb +290 -270
  418. data/lib/twilio-ruby/rest/pricing/v2/number.rb +232 -217
  419. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +298 -275
  420. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +238 -220
  421. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +121 -138
  422. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -65
  423. data/lib/twilio-ruby/rest/pricing.rb +6 -41
  424. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  425. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +420 -403
  426. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +409 -418
  427. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +431 -449
  428. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +422 -455
  429. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +523 -547
  430. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +400 -370
  431. data/lib/twilio-ruby/rest/proxy/v1/service.rb +560 -596
  432. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -38
  433. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  434. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  435. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +260 -227
  436. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +260 -223
  437. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +260 -227
  438. data/lib/twilio-ruby/rest/routes/v2.rb +72 -69
  439. data/lib/twilio-ruby/rest/routes.rb +4 -34
  440. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  441. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +316 -323
  442. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +413 -380
  443. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +208 -208
  444. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +408 -384
  445. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +337 -338
  446. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +365 -383
  447. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +404 -396
  448. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +457 -447
  449. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +223 -234
  450. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +343 -353
  451. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +413 -380
  452. data/lib/twilio-ruby/rest/serverless/v1/service.rb +524 -493
  453. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -37
  454. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  455. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  456. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +206 -199
  457. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +221 -218
  458. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +362 -355
  459. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +423 -394
  460. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +206 -200
  461. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +221 -221
  462. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +362 -361
  463. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +471 -449
  464. data/lib/twilio-ruby/rest/studio/v1/flow.rb +381 -355
  465. data/lib/twilio-ruby/rest/studio/v1.rb +42 -37
  466. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +206 -200
  467. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +221 -221
  468. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +362 -361
  469. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +464 -442
  470. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +342 -320
  471. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +232 -0
  472. data/lib/twilio-ruby/rest/studio/v2/flow.rb +520 -472
  473. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +121 -99
  474. data/lib/twilio-ruby/rest/studio/v2.rb +48 -44
  475. data/lib/twilio-ruby/rest/studio.rb +3 -41
  476. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  477. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +397 -362
  478. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +474 -483
  479. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +403 -406
  480. data/lib/twilio-ruby/rest/supersim/v1/network.rb +306 -297
  481. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +338 -332
  482. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +381 -351
  483. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +259 -0
  484. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +243 -224
  485. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +201 -188
  486. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +464 -453
  487. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +362 -361
  488. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +314 -344
  489. data/lib/twilio-ruby/rest/supersim/v1.rb +144 -140
  490. data/lib/twilio-ruby/rest/supersim.rb +16 -34
  491. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  492. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +377 -371
  493. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +457 -423
  494. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +470 -490
  495. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +377 -370
  496. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +471 -445
  497. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +473 -495
  498. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +377 -368
  499. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +471 -444
  500. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +139 -132
  501. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +420 -400
  502. data/lib/twilio-ruby/rest/sync/v1/service.rb +576 -567
  503. data/lib/twilio-ruby/rest/sync/v1.rb +42 -37
  504. data/lib/twilio-ruby/rest/sync.rb +2 -34
  505. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  506. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +408 -395
  507. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +454 -464
  508. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +702 -736
  509. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +616 -661
  510. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +410 -382
  511. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +359 -369
  512. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +279 -275
  513. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -236
  514. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +246 -258
  515. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +571 -566
  516. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +683 -732
  517. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +390 -388
  518. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +235 -239
  519. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +281 -265
  520. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +215 -193
  521. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +251 -234
  522. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +632 -631
  523. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +359 -375
  524. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +245 -241
  525. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -244
  526. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +525 -510
  527. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +353 -356
  528. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +231 -206
  529. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +241 -234
  530. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +722 -730
  531. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -37
  532. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  533. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  534. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +343 -320
  535. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +343 -317
  536. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +441 -419
  537. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +476 -451
  538. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +224 -191
  539. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +624 -630
  540. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -38
  541. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  542. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  543. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +360 -352
  544. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +336 -323
  545. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +334 -321
  546. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +529 -513
  547. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +384 -346
  548. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +283 -261
  549. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +276 -252
  550. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +398 -359
  551. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +283 -261
  552. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +360 -352
  553. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +336 -323
  554. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +334 -321
  555. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +529 -513
  556. data/lib/twilio-ruby/rest/trusthub/v1.rb +132 -139
  557. data/lib/twilio-ruby/rest/trusthub.rb +8 -34
  558. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  559. data/lib/twilio-ruby/rest/verify/v2/form.rb +195 -183
  560. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +223 -207
  561. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +272 -262
  562. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +191 -198
  563. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +500 -539
  564. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +448 -461
  565. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +249 -289
  566. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +423 -422
  567. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +380 -363
  568. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +402 -388
  569. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +421 -384
  570. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +374 -366
  571. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +218 -205
  572. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +448 -420
  573. data/lib/twilio-ruby/rest/verify/v2/service.rb +767 -780
  574. data/lib/twilio-ruby/rest/verify/v2/template.rb +223 -198
  575. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +381 -387
  576. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +239 -226
  577. data/lib/twilio-ruby/rest/verify/v2.rb +99 -103
  578. data/lib/twilio-ruby/rest/verify.rb +7 -34
  579. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  580. data/lib/twilio-ruby/rest/video/v1/composition.rb +482 -507
  581. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +530 -647
  582. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +281 -261
  583. data/lib/twilio-ruby/rest/video/v1/recording.rb +432 -426
  584. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +281 -261
  585. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +259 -0
  586. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +332 -0
  587. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +181 -0
  588. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +339 -0
  589. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +503 -0
  590. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +170 -0
  591. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +428 -0
  592. data/lib/twilio-ruby/rest/video/v1/room.rb +611 -602
  593. data/lib/twilio-ruby/rest/video/v1.rb +99 -99
  594. data/lib/twilio-ruby/rest/video.rb +7 -34
  595. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  596. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +160 -176
  597. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +502 -486
  598. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -434
  599. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +392 -352
  600. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +135 -121
  601. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +196 -183
  602. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +382 -397
  603. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +217 -190
  604. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +122 -121
  605. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +378 -339
  606. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +361 -319
  607. data/lib/twilio-ruby/rest/voice/v1.rb +130 -117
  608. data/lib/twilio-ruby/rest/voice.rb +7 -34
  609. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  610. data/lib/twilio-ruby/rest/wireless/v1/command.rb +413 -406
  611. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +464 -436
  612. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +299 -284
  613. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +243 -243
  614. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +640 -647
  615. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +230 -221
  616. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -76
  617. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  618. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  619. data/lib/twilio-ruby/rest.rb +1 -0
  620. data/lib/twilio-ruby/twiml/voice_response.rb +132 -33
  621. data/lib/twilio-ruby/version.rb +1 -1
  622. data/sonar-project.properties +1 -1
  623. data/twilio-ruby.gemspec +1 -1
  624. metadata +118 -38
  625. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  626. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -500
  627. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -500
  628. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -500
  629. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -500
  630. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -500
  631. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -500
  632. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -500
  633. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -464
  634. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -348
  635. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  636. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  637. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +0 -290
  638. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -314
  639. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +0 -164
  640. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +0 -559
  641. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +0 -165
  642. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +0 -225
  643. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +0 -195
  644. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +0 -186
  645. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -277
  646. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -65
  647. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +0 -199
  648. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -413
  649. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_anonymize.rb +0 -240
  650. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -335
  651. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -175
  652. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -340
  653. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -499
  654. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +0 -144
@@ -1,657 +1,540 @@
1
1
  ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
+ #
7
+ # Twilio - Video
8
+ # This is the public Twilio REST API.
9
+ #
10
+ # NOTE: This class is auto generated by OpenAPI Generator.
11
+ # https://openapi-generator.tech
12
+ # Do not edit the class manually.
6
13
  #
7
- # frozen_string_literal: true
14
+
8
15
 
9
16
  module Twilio
10
- module REST
11
- class Video < Domain
12
- class V1 < Version
13
- class CompositionHookList < ListResource
14
- ##
15
- # Initialize the CompositionHookList
16
- # @param [Version] version Version that contains the resource
17
- # @return [CompositionHookList] CompositionHookList
18
- def initialize(version)
19
- super(version)
20
-
21
- # Path Solution
22
- @solution = {}
23
- @uri = "/CompositionHooks"
24
- end
25
-
26
- ##
27
- # Lists CompositionHookInstance records from the API as a list.
28
- # Unlike stream(), this operation is eager and will load `limit` records into
29
- # memory before returning.
30
- # @param [Boolean] enabled Read only CompositionHook resources with an `enabled`
31
- # value that matches this parameter.
32
- # @param [Time] date_created_after Read only CompositionHook resources created on
33
- # or after this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
34
- # time zone.
35
- # @param [Time] date_created_before Read only CompositionHook resources created
36
- # before this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
37
- # time zone.
38
- # @param [String] friendly_name Read only CompositionHook resources with friendly
39
- # names that match this string. The match is not case sensitive and can include
40
- # asterisk `*` characters as wildcard match.
41
- # @param [Integer] limit Upper limit for the number of records to return. stream()
42
- # guarantees to never return more than limit. Default is no limit
43
- # @param [Integer] page_size Number of records to fetch per request, when
44
- # not set will use the default value of 50 records. If no page_size is defined
45
- # but a limit is defined, stream() will attempt to read the limit with the most
46
- # efficient page size, i.e. min(limit, 1000)
47
- # @return [Array] Array of up to limit results
48
- def list(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
49
- self.stream(
50
- enabled: enabled,
51
- date_created_after: date_created_after,
52
- date_created_before: date_created_before,
53
- friendly_name: friendly_name,
54
- limit: limit,
55
- page_size: page_size
56
- ).entries
57
- end
58
-
59
- ##
60
- # Streams CompositionHookInstance records from the API as an Enumerable.
61
- # This operation lazily loads records as efficiently as possible until the limit
62
- # is reached.
63
- # @param [Boolean] enabled Read only CompositionHook resources with an `enabled`
64
- # value that matches this parameter.
65
- # @param [Time] date_created_after Read only CompositionHook resources created on
66
- # or after this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
67
- # time zone.
68
- # @param [Time] date_created_before Read only CompositionHook resources created
69
- # before this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
70
- # time zone.
71
- # @param [String] friendly_name Read only CompositionHook resources with friendly
72
- # names that match this string. The match is not case sensitive and can include
73
- # asterisk `*` characters as wildcard match.
74
- # @param [Integer] limit Upper limit for the number of records to return. stream()
75
- # guarantees to never return more than limit. Default is no limit.
76
- # @param [Integer] page_size Number of records to fetch per request, when
77
- # not set will use the default value of 50 records. If no page_size is defined
78
- # but a limit is defined, stream() will attempt to read the limit with the most
79
- # efficient page size, i.e. min(limit, 1000)
80
- # @return [Enumerable] Enumerable that will yield up to limit results
81
- def stream(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
82
- limits = @version.read_limits(limit, page_size)
83
-
84
- page = self.page(
85
- enabled: enabled,
86
- date_created_after: date_created_after,
87
- date_created_before: date_created_before,
88
- friendly_name: friendly_name,
89
- page_size: limits[:page_size],
90
- )
91
-
92
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
93
- end
94
-
95
- ##
96
- # When passed a block, yields CompositionHookInstance records from the API.
97
- # This operation lazily loads records as efficiently as possible until the limit
98
- # is reached.
99
- def each
100
- limits = @version.read_limits
101
-
102
- page = self.page(page_size: limits[:page_size], )
103
-
104
- @version.stream(page,
17
+ module REST
18
+ class Video < VideoBase
19
+ class V1 < Version
20
+ class CompositionHookList < ListResource
21
+ ##
22
+ # Initialize the CompositionHookList
23
+ # @param [Version] version Version that contains the resource
24
+ # @return [CompositionHookList] CompositionHookList
25
+ def initialize(version)
26
+ super(version)
27
+ # Path Solution
28
+ @solution = { }
29
+ @uri = "/CompositionHooks"
30
+
31
+ end
32
+ ##
33
+ # Create the CompositionHookInstance
34
+ # @param [String] friendly_name A descriptive string that you create to describe the resource. It can be up to 100 characters long and it must be unique within the account.
35
+ # @param [Boolean] enabled Whether the composition hook is active. When `true`, the composition hook will be triggered for every completed Group Room in the account. When `false`, the composition hook will never be triggered.
36
+ # @param [Object] video_layout An object that describes the video layout of the composition hook in terms of regions. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
37
+ # @param [Array[String]] audio_sources An array of track names from the same group room to merge into the compositions created by the composition hook. Can include zero or more track names. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except those specified in `audio_sources_excluded`. The track names in this parameter can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` includes tracks named `student` as well as `studentTeam`.
38
+ # @param [Array[String]] audio_sources_excluded An array of track names to exclude. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except for those specified in `audio_sources_excluded`. The track names in this parameter can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` excludes `student` as well as `studentTeam`. This parameter can also be empty.
39
+ # @param [String] resolution A string that describes the columns (width) and rows (height) of the generated composed video in pixels. Defaults to `640x480`. The string's format is `{width}x{height}` where: * 16 <= `{width}` <= 1280 * 16 <= `{height}` <= 1280 * `{width}` * `{height}` <= 921,600 Typical values are: * HD = `1280x720` * PAL = `1024x576` * VGA = `640x480` * CIF = `320x240` Note that the `resolution` imposes an aspect ratio to the resulting composition. When the original video tracks are constrained by the aspect ratio, they are scaled to fit. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
40
+ # @param [Format] format
41
+ # @param [String] status_callback The URL we should call using the `status_callback_method` to send status information to your application on every composition event. If not provided, status callback events will not be dispatched.
42
+ # @param [String] status_callback_method The HTTP method we should use to call `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
43
+ # @param [Boolean] trim Whether to clip the intervals where there is no active media in the Compositions triggered by the composition hook. The default is `true`. Compositions with `trim` enabled are shorter when the Room is created and no Participant joins for a while as well as if all the Participants leave the room and join later, because those gaps will be removed. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
44
+ # @return [CompositionHookInstance] Created CompositionHookInstance
45
+ def create(
46
+ friendly_name: nil,
47
+ enabled: :unset,
48
+ video_layout: :unset,
49
+ audio_sources: :unset,
50
+ audio_sources_excluded: :unset,
51
+ resolution: :unset,
52
+ format: :unset,
53
+ status_callback: :unset,
54
+ status_callback_method: :unset,
55
+ trim: :unset
56
+ )
57
+
58
+ data = Twilio::Values.of({
59
+ 'FriendlyName' => friendly_name,
60
+ 'Enabled' => enabled,
61
+ 'VideoLayout' => Twilio.serialize_object(video_layout),
62
+ 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
63
+ 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
64
+ 'Resolution' => resolution,
65
+ 'Format' => format,
66
+ 'StatusCallback' => status_callback,
67
+ 'StatusCallbackMethod' => status_callback_method,
68
+ 'Trim' => trim,
69
+ })
70
+
71
+ payload = @version.create('POST', @uri, data: data)
72
+ CompositionHookInstance.new(
73
+ @version,
74
+ payload,
75
+ )
76
+ end
77
+
78
+
79
+ ##
80
+ # Lists CompositionHookInstance records from the API as a list.
81
+ # Unlike stream(), this operation is eager and will load `limit` records into
82
+ # memory before returning.
83
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
84
+ # @param [Time] date_created_after Read only CompositionHook resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
85
+ # @param [Time] date_created_before Read only CompositionHook resources created before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
86
+ # @param [String] friendly_name Read only CompositionHook resources with friendly names that match this string. The match is not case sensitive and can include asterisk `*` characters as wildcard match.
87
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
88
+ # guarantees to never return more than limit. Default is no limit
89
+ # @param [Integer] page_size Number of records to fetch per request, when
90
+ # not set will use the default value of 50 records. If no page_size is defined
91
+ # but a limit is defined, stream() will attempt to read the limit with the most
92
+ # efficient page size, i.e. min(limit, 1000)
93
+ # @return [Array] Array of up to limit results
94
+ def list(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
95
+ self.stream(
96
+ enabled: enabled,
97
+ date_created_after: date_created_after,
98
+ date_created_before: date_created_before,
99
+ friendly_name: friendly_name,
100
+ limit: limit,
101
+ page_size: page_size
102
+ ).entries
103
+ end
104
+
105
+ ##
106
+ # Streams Instance records from the API as an Enumerable.
107
+ # This operation lazily loads records as efficiently as possible until the limit
108
+ # is reached.
109
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
110
+ # @param [Time] date_created_after Read only CompositionHook resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
111
+ # @param [Time] date_created_before Read only CompositionHook resources created before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
112
+ # @param [String] friendly_name Read only CompositionHook resources with friendly names that match this string. The match is not case sensitive and can include asterisk `*` characters as wildcard match.
113
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
114
+ # guarantees to never return more than limit. Default is no limit
115
+ # @param [Integer] page_size Number of records to fetch per request, when
116
+ # not set will use the default value of 50 records. If no page_size is defined
117
+ # but a limit is defined, stream() will attempt to read the limit with the most
118
+ # efficient page size, i.e. min(limit, 1000)
119
+ # @return [Enumerable] Enumerable that will yield up to limit results
120
+ def stream(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
121
+ limits = @version.read_limits(limit, page_size)
122
+
123
+ page = self.page(
124
+ enabled: enabled,
125
+ date_created_after: date_created_after,
126
+ date_created_before: date_created_before,
127
+ friendly_name: friendly_name,
128
+ page_size: limits[:page_size], )
129
+
130
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
131
+ end
132
+
133
+ ##
134
+ # When passed a block, yields CompositionHookInstance records from the API.
135
+ # This operation lazily loads records as efficiently as possible until the limit
136
+ # is reached.
137
+ def each
138
+ limits = @version.read_limits
139
+
140
+ page = self.page(page_size: limits[:page_size], )
141
+
142
+ @version.stream(page,
105
143
  limit: limits[:limit],
106
144
  page_limit: limits[:page_limit]).each {|x| yield x}
107
- end
108
-
109
- ##
110
- # Retrieve a single page of CompositionHookInstance records from the API.
111
- # Request is executed immediately.
112
- # @param [Boolean] enabled Read only CompositionHook resources with an `enabled`
113
- # value that matches this parameter.
114
- # @param [Time] date_created_after Read only CompositionHook resources created on
115
- # or after this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
116
- # time zone.
117
- # @param [Time] date_created_before Read only CompositionHook resources created
118
- # before this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
119
- # time zone.
120
- # @param [String] friendly_name Read only CompositionHook resources with friendly
121
- # names that match this string. The match is not case sensitive and can include
122
- # asterisk `*` characters as wildcard match.
123
- # @param [String] page_token PageToken provided by the API
124
- # @param [Integer] page_number Page Number, this value is simply for client state
125
- # @param [Integer] page_size Number of records to return, defaults to 50
126
- # @return [Page] Page of CompositionHookInstance
127
- def page(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
128
- params = Twilio::Values.of({
129
- 'Enabled' => enabled,
130
- 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
131
- 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
132
- 'FriendlyName' => friendly_name,
133
- 'PageToken' => page_token,
134
- 'Page' => page_number,
135
- 'PageSize' => page_size,
136
- })
137
-
138
- response = @version.page('GET', @uri, params: params)
139
-
140
- CompositionHookPage.new(@version, response, @solution)
141
- end
142
-
143
- ##
144
- # Retrieve a single page of CompositionHookInstance records from the API.
145
- # Request is executed immediately.
146
- # @param [String] target_url API-generated URL for the requested results page
147
- # @return [Page] Page of CompositionHookInstance
148
- def get_page(target_url)
149
- response = @version.domain.request(
150
- 'GET',
151
- target_url
152
- )
153
- CompositionHookPage.new(@version, response, @solution)
154
- end
155
-
156
- ##
157
- # Create the CompositionHookInstance
158
- # @param [String] friendly_name A descriptive string that you create to describe
159
- # the resource. It can be up to 100 characters long and it must be unique within
160
- # the account.
161
- # @param [Boolean] enabled Whether the composition hook is active. When `true`,
162
- # the composition hook will be triggered for every completed Group Room in the
163
- # account. When `false`, the composition hook will never be triggered.
164
- # @param [Hash] video_layout An object that describes the video layout of the
165
- # composition hook in terms of regions. See {Specifying Video
166
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
167
- # for more info.
168
- # @param [Array[String]] audio_sources An array of track names from the same group
169
- # room to merge into the compositions created by the composition hook. Can include
170
- # zero or more track names. A composition triggered by the composition hook
171
- # includes all audio sources specified in `audio_sources` except those specified
172
- # in `audio_sources_excluded`. The track names in this parameter can include an
173
- # asterisk as a wild card character, which matches zero or more characters in a
174
- # track name. For example, `student*` includes tracks named `student` as well as
175
- # `studentTeam`.
176
- # @param [Array[String]] audio_sources_excluded An array of track names to
177
- # exclude. A composition triggered by the composition hook includes all audio
178
- # sources specified in `audio_sources` except for those specified in
179
- # `audio_sources_excluded`. The track names in this parameter can include an
180
- # asterisk as a wild card character, which matches zero or more characters in a
181
- # track name. For example, `student*` excludes `student` as well as `studentTeam`.
182
- # This parameter can also be empty.
183
- # @param [String] resolution A string that describes the columns (width) and rows
184
- # (height) of the generated composed video in pixels. Defaults to `640x480`.
185
- # The string's format is `{width}x{height}` where:
186
- #
187
- # * 16 <= `{width}` <= 1280
188
- # * 16 <= `{height}` <= 1280
189
- # * `{width}` * `{height}` <= 921,600
190
- #
191
- # Typical values are:
192
- #
193
- # * HD = `1280x720`
194
- # * PAL = `1024x576`
195
- # * VGA = `640x480`
196
- # * CIF = `320x240`
197
- #
198
- # Note that the `resolution` imposes an aspect ratio to the resulting composition.
199
- # When the original video tracks are constrained by the aspect ratio, they are
200
- # scaled to fit. See {Specifying Video
201
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
202
- # for more info.
203
- # @param [composition_hook.Format] format The container format of the media files
204
- # used by the compositions created by the composition hook. Can be: `mp4` or
205
- # `webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources` must have
206
- # one or more tracks and/or a `video_layout` element must contain a valid
207
- # `video_sources` list, otherwise an error occurs.
208
- # @param [String] status_callback The URL we should call using the
209
- # `status_callback_method` to send status information to your application on every
210
- # composition event. If not provided, status callback events will not be
211
- # dispatched.
212
- # @param [String] status_callback_method The HTTP method we should use to call
213
- # `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
214
- # @param [Boolean] trim Whether to clip the intervals where there is no active
215
- # media in the Compositions triggered by the composition hook. The default is
216
- # `true`. Compositions with `trim` enabled are shorter when the Room is created
217
- # and no Participant joins for a while as well as if all the Participants leave
218
- # the room and join later, because those gaps will be removed. See {Specifying
219
- # Video
220
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
221
- # for more info.
222
- # @return [CompositionHookInstance] Created CompositionHookInstance
223
- def create(friendly_name: nil, enabled: :unset, video_layout: :unset, audio_sources: :unset, audio_sources_excluded: :unset, resolution: :unset, format: :unset, status_callback: :unset, status_callback_method: :unset, trim: :unset)
224
- data = Twilio::Values.of({
225
- 'FriendlyName' => friendly_name,
226
- 'Enabled' => enabled,
227
- 'VideoLayout' => Twilio.serialize_object(video_layout),
228
- 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
229
- 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
230
- 'Resolution' => resolution,
231
- 'Format' => format,
232
- 'StatusCallback' => status_callback,
233
- 'StatusCallbackMethod' => status_callback_method,
234
- 'Trim' => trim,
235
- })
236
-
237
- payload = @version.create('POST', @uri, data: data)
238
-
239
- CompositionHookInstance.new(@version, payload, )
240
- end
241
-
242
- ##
243
- # Provide a user friendly representation
244
- def to_s
245
- '#<Twilio.Video.V1.CompositionHookList>'
246
- end
247
- end
248
-
249
- class CompositionHookPage < Page
250
- ##
251
- # Initialize the CompositionHookPage
252
- # @param [Version] version Version that contains the resource
253
- # @param [Response] response Response from the API
254
- # @param [Hash] solution Path solution for the resource
255
- # @return [CompositionHookPage] CompositionHookPage
256
- def initialize(version, response, solution)
257
- super(version, response)
258
-
259
- # Path Solution
260
- @solution = solution
261
- end
262
-
263
- ##
264
- # Build an instance of CompositionHookInstance
265
- # @param [Hash] payload Payload response from the API
266
- # @return [CompositionHookInstance] CompositionHookInstance
267
- def get_instance(payload)
268
- CompositionHookInstance.new(@version, payload, )
269
- end
270
-
271
- ##
272
- # Provide a user friendly representation
273
- def to_s
274
- '<Twilio.Video.V1.CompositionHookPage>'
275
- end
276
- end
277
-
278
- class CompositionHookContext < InstanceContext
279
- ##
280
- # Initialize the CompositionHookContext
281
- # @param [Version] version Version that contains the resource
282
- # @param [String] sid The SID of the CompositionHook resource to fetch.
283
- # @return [CompositionHookContext] CompositionHookContext
284
- def initialize(version, sid)
285
- super(version)
286
-
287
- # Path Solution
288
- @solution = {sid: sid, }
289
- @uri = "/CompositionHooks/#{@solution[:sid]}"
290
- end
291
-
292
- ##
293
- # Fetch the CompositionHookInstance
294
- # @return [CompositionHookInstance] Fetched CompositionHookInstance
295
- def fetch
296
- payload = @version.fetch('GET', @uri)
297
-
298
- CompositionHookInstance.new(@version, payload, sid: @solution[:sid], )
299
- end
300
-
301
- ##
302
- # Delete the CompositionHookInstance
303
- # @return [Boolean] true if delete succeeds, false otherwise
304
- def delete
305
- @version.delete('DELETE', @uri)
306
- end
307
-
308
- ##
309
- # Update the CompositionHookInstance
310
- # @param [String] friendly_name A descriptive string that you create to describe
311
- # the resource. It can be up to 100 characters long and it must be unique within
312
- # the account.
313
- # @param [Boolean] enabled Whether the composition hook is active. When `true`,
314
- # the composition hook will be triggered for every completed Group Room in the
315
- # account. When `false`, the composition hook never triggers.
316
- # @param [Hash] video_layout A JSON object that describes the video layout of the
317
- # composition hook in terms of regions. See {Specifying Video
318
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
319
- # for more info.
320
- # @param [Array[String]] audio_sources An array of track names from the same group
321
- # room to merge into the compositions created by the composition hook. Can include
322
- # zero or more track names. A composition triggered by the composition hook
323
- # includes all audio sources specified in `audio_sources` except those specified
324
- # in `audio_sources_excluded`. The track names in this parameter can include an
325
- # asterisk as a wild card character, which matches zero or more characters in a
326
- # track name. For example, `student*` includes tracks named `student` as well as
327
- # `studentTeam`.
328
- # @param [Array[String]] audio_sources_excluded An array of track names to
329
- # exclude. A composition triggered by the composition hook includes all audio
330
- # sources specified in `audio_sources` except for those specified in
331
- # `audio_sources_excluded`. The track names in this parameter can include an
332
- # asterisk as a wild card character, which matches zero or more characters in a
333
- # track name. For example, `student*` excludes `student` as well as `studentTeam`.
334
- # This parameter can also be empty.
335
- # @param [Boolean] trim Whether to clip the intervals where there is no active
336
- # media in the compositions triggered by the composition hook. The default is
337
- # `true`. Compositions with `trim` enabled are shorter when the Room is created
338
- # and no Participant joins for a while as well as if all the Participants leave
339
- # the room and join later, because those gaps will be removed. See {Specifying
340
- # Video
341
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
342
- # for more info.
343
- # @param [composition_hook.Format] format The container format of the media files
344
- # used by the compositions created by the composition hook. Can be: `mp4` or
345
- # `webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources` must have
346
- # one or more tracks and/or a `video_layout` element must contain a valid
347
- # `video_sources` list, otherwise an error occurs.
348
- # @param [String] resolution A string that describes the columns (width) and rows
349
- # (height) of the generated composed video in pixels. Defaults to `640x480`.
350
- # The string's format is `{width}x{height}` where:
351
- #
352
- # * 16 <= `{width}` <= 1280
353
- # * 16 <= `{height}` <= 1280
354
- # * `{width}` * `{height}` <= 921,600
355
- #
356
- # Typical values are:
357
- #
358
- # * HD = `1280x720`
359
- # * PAL = `1024x576`
360
- # * VGA = `640x480`
361
- # * CIF = `320x240`
362
- #
363
- # Note that the `resolution` imposes an aspect ratio to the resulting composition.
364
- # When the original video tracks are constrained by the aspect ratio, they are
365
- # scaled to fit. See {Specifying Video
366
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
367
- # for more info.
368
- # @param [String] status_callback The URL we should call using the
369
- # `status_callback_method` to send status information to your application on every
370
- # composition event. If not provided, status callback events will not be
371
- # dispatched.
372
- # @param [String] status_callback_method The HTTP method we should use to call
373
- # `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
374
- # @return [CompositionHookInstance] Updated CompositionHookInstance
375
- def update(friendly_name: nil, enabled: :unset, video_layout: :unset, audio_sources: :unset, audio_sources_excluded: :unset, trim: :unset, format: :unset, resolution: :unset, status_callback: :unset, status_callback_method: :unset)
376
- data = Twilio::Values.of({
377
- 'FriendlyName' => friendly_name,
378
- 'Enabled' => enabled,
379
- 'VideoLayout' => Twilio.serialize_object(video_layout),
380
- 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
381
- 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
382
- 'Trim' => trim,
383
- 'Format' => format,
384
- 'Resolution' => resolution,
385
- 'StatusCallback' => status_callback,
386
- 'StatusCallbackMethod' => status_callback_method,
387
- })
388
-
389
- payload = @version.update('POST', @uri, data: data)
390
-
391
- CompositionHookInstance.new(@version, payload, sid: @solution[:sid], )
392
- end
393
-
394
- ##
395
- # Provide a user friendly representation
396
- def to_s
397
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
398
- "#<Twilio.Video.V1.CompositionHookContext #{context}>"
399
- end
400
-
401
- ##
402
- # Provide a detailed, user friendly representation
403
- def inspect
404
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
405
- "#<Twilio.Video.V1.CompositionHookContext #{context}>"
406
- end
407
- end
145
+ end
146
+
147
+ ##
148
+ # Retrieve a single page of CompositionHookInstance records from the API.
149
+ # Request is executed immediately.
150
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
151
+ # @param [Time] date_created_after Read only CompositionHook resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
152
+ # @param [Time] date_created_before Read only CompositionHook resources created before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
153
+ # @param [String] friendly_name Read only CompositionHook resources with friendly names that match this string. The match is not case sensitive and can include asterisk `*` characters as wildcard match.
154
+ # @param [String] page_token PageToken provided by the API
155
+ # @param [Integer] page_number Page Number, this value is simply for client state
156
+ # @param [Integer] page_size Number of records to return, defaults to 50
157
+ # @return [Page] Page of CompositionHookInstance
158
+ def page(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
159
+ params = Twilio::Values.of({
160
+
161
+ 'Enabled' => enabled,
162
+
163
+ 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
164
+
165
+ 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
166
+
167
+ 'FriendlyName' => friendly_name,
168
+
169
+ 'PageToken' => page_token,
170
+ 'Page' => page_number,
171
+ 'PageSize' => page_size,
172
+ })
173
+
174
+ response = @version.page('GET', @uri, params: params)
175
+
176
+ CompositionHookPage.new(@version, response, @solution)
177
+ end
178
+
179
+ ##
180
+ # Retrieve a single page of CompositionHookInstance records from the API.
181
+ # Request is executed immediately.
182
+ # @param [String] target_url API-generated URL for the requested results page
183
+ # @return [Page] Page of CompositionHookInstance
184
+ def get_page(target_url)
185
+ response = @version.domain.request(
186
+ 'GET',
187
+ target_url
188
+ )
189
+ CompositionHookPage.new(@version, response, @solution)
190
+ end
191
+
192
+
193
+
194
+ # Provide a user friendly representation
195
+ def to_s
196
+ '#<Twilio.Video.V1.CompositionHookList>'
197
+ end
198
+ end
199
+
200
+
201
+ class CompositionHookContext < InstanceContext
202
+ ##
203
+ # Initialize the CompositionHookContext
204
+ # @param [Version] version Version that contains the resource
205
+ # @param [String] sid The SID of the CompositionHook resource to update.
206
+ # @return [CompositionHookContext] CompositionHookContext
207
+ def initialize(version, sid)
208
+ super(version)
209
+
210
+ # Path Solution
211
+ @solution = { sid: sid, }
212
+ @uri = "/CompositionHooks/#{@solution[:sid]}"
213
+
214
+
215
+ end
216
+ ##
217
+ # Delete the CompositionHookInstance
218
+ # @return [Boolean] True if delete succeeds, false otherwise
219
+ def delete
220
+
221
+ @version.delete('DELETE', @uri)
222
+ end
223
+
224
+ ##
225
+ # Fetch the CompositionHookInstance
226
+ # @return [CompositionHookInstance] Fetched CompositionHookInstance
227
+ def fetch
228
+
229
+ payload = @version.fetch('GET', @uri)
230
+ CompositionHookInstance.new(
231
+ @version,
232
+ payload,
233
+ sid: @solution[:sid],
234
+ )
235
+ end
236
+
237
+ ##
238
+ # Update the CompositionHookInstance
239
+ # @param [String] friendly_name A descriptive string that you create to describe the resource. It can be up to 100 characters long and it must be unique within the account.
240
+ # @param [Boolean] enabled Whether the composition hook is active. When `true`, the composition hook will be triggered for every completed Group Room in the account. When `false`, the composition hook never triggers.
241
+ # @param [Object] video_layout A JSON object that describes the video layout of the composition hook in terms of regions. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
242
+ # @param [Array[String]] audio_sources An array of track names from the same group room to merge into the compositions created by the composition hook. Can include zero or more track names. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except those specified in `audio_sources_excluded`. The track names in this parameter can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` includes tracks named `student` as well as `studentTeam`.
243
+ # @param [Array[String]] audio_sources_excluded An array of track names to exclude. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except for those specified in `audio_sources_excluded`. The track names in this parameter can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` excludes `student` as well as `studentTeam`. This parameter can also be empty.
244
+ # @param [Boolean] trim Whether to clip the intervals where there is no active media in the compositions triggered by the composition hook. The default is `true`. Compositions with `trim` enabled are shorter when the Room is created and no Participant joins for a while as well as if all the Participants leave the room and join later, because those gaps will be removed. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
245
+ # @param [Format] format
246
+ # @param [String] resolution A string that describes the columns (width) and rows (height) of the generated composed video in pixels. Defaults to `640x480`. The string's format is `{width}x{height}` where: * 16 <= `{width}` <= 1280 * 16 <= `{height}` <= 1280 * `{width}` * `{height}` <= 921,600 Typical values are: * HD = `1280x720` * PAL = `1024x576` * VGA = `640x480` * CIF = `320x240` Note that the `resolution` imposes an aspect ratio to the resulting composition. When the original video tracks are constrained by the aspect ratio, they are scaled to fit. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
247
+ # @param [String] status_callback The URL we should call using the `status_callback_method` to send status information to your application on every composition event. If not provided, status callback events will not be dispatched.
248
+ # @param [String] status_callback_method The HTTP method we should use to call `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
249
+ # @return [CompositionHookInstance] Updated CompositionHookInstance
250
+ def update(
251
+ friendly_name: nil,
252
+ enabled: :unset,
253
+ video_layout: :unset,
254
+ audio_sources: :unset,
255
+ audio_sources_excluded: :unset,
256
+ trim: :unset,
257
+ format: :unset,
258
+ resolution: :unset,
259
+ status_callback: :unset,
260
+ status_callback_method: :unset
261
+ )
262
+
263
+ data = Twilio::Values.of({
264
+ 'FriendlyName' => friendly_name,
265
+ 'Enabled' => enabled,
266
+ 'VideoLayout' => Twilio.serialize_object(video_layout),
267
+ 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
268
+ 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
269
+ 'Trim' => trim,
270
+ 'Format' => format,
271
+ 'Resolution' => resolution,
272
+ 'StatusCallback' => status_callback,
273
+ 'StatusCallbackMethod' => status_callback_method,
274
+ })
275
+
276
+ payload = @version.update('POST', @uri, data: data)
277
+ CompositionHookInstance.new(
278
+ @version,
279
+ payload,
280
+ sid: @solution[:sid],
281
+ )
282
+ end
283
+
284
+
285
+ ##
286
+ # Provide a user friendly representation
287
+ def to_s
288
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
289
+ "#<Twilio.Video.V1.CompositionHookContext #{context}>"
290
+ end
291
+
292
+ ##
293
+ # Provide a detailed, user friendly representation
294
+ def inspect
295
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
296
+ "#<Twilio.Video.V1.CompositionHookContext #{context}>"
297
+ end
298
+ end
299
+
300
+ class CompositionHookPage < Page
301
+ ##
302
+ # Initialize the CompositionHookPage
303
+ # @param [Version] version Version that contains the resource
304
+ # @param [Response] response Response from the API
305
+ # @param [Hash] solution Path solution for the resource
306
+ # @return [CompositionHookPage] CompositionHookPage
307
+ def initialize(version, response, solution)
308
+ super(version, response)
309
+
310
+ # Path Solution
311
+ @solution = solution
312
+ end
313
+
314
+ ##
315
+ # Build an instance of CompositionHookInstance
316
+ # @param [Hash] payload Payload response from the API
317
+ # @return [CompositionHookInstance] CompositionHookInstance
318
+ def get_instance(payload)
319
+ CompositionHookInstance.new(@version, payload)
320
+ end
321
+
322
+ ##
323
+ # Provide a user friendly representation
324
+ def to_s
325
+ '<Twilio.Video.V1.CompositionHookPage>'
326
+ end
327
+ end
328
+ class CompositionHookInstance < InstanceResource
329
+ ##
330
+ # Initialize the CompositionHookInstance
331
+ # @param [Version] version Version that contains the resource
332
+ # @param [Hash] payload payload that contains response from Twilio
333
+ # @param [String] account_sid The SID of the
334
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this CompositionHook
335
+ # resource.
336
+ # @param [String] sid The SID of the Call resource to fetch.
337
+ # @return [CompositionHookInstance] CompositionHookInstance
338
+ def initialize(version, payload , sid: nil)
339
+ super(version)
340
+
341
+ # Marshaled Properties
342
+ @properties = {
343
+ 'account_sid' => payload['account_sid'],
344
+ 'friendly_name' => payload['friendly_name'],
345
+ 'enabled' => payload['enabled'],
346
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
347
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
348
+ 'sid' => payload['sid'],
349
+ 'audio_sources' => payload['audio_sources'],
350
+ 'audio_sources_excluded' => payload['audio_sources_excluded'],
351
+ 'video_layout' => payload['video_layout'],
352
+ 'resolution' => payload['resolution'],
353
+ 'trim' => payload['trim'],
354
+ 'format' => payload['format'],
355
+ 'status_callback' => payload['status_callback'],
356
+ 'status_callback_method' => payload['status_callback_method'],
357
+ 'url' => payload['url'],
358
+ }
359
+
360
+ # Context
361
+ @instance_context = nil
362
+ @params = { 'sid' => sid || @properties['sid'] , }
363
+ end
364
+
365
+ ##
366
+ # Generate an instance context for the instance, the context is capable of
367
+ # performing various actions. All instance actions are proxied to the context
368
+ # @return [CompositionHookContext] CallContext for this CallInstance
369
+ def context
370
+ unless @instance_context
371
+ @instance_context = CompositionHookContext.new(@version , @params['sid'])
372
+ end
373
+ @instance_context
374
+ end
375
+
376
+ ##
377
+ # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the CompositionHook resource.
378
+ def account_sid
379
+ @properties['account_sid']
380
+ end
381
+
382
+ ##
383
+ # @return [String] The string that you assigned to describe the resource. Can be up to 100 characters long and must be unique within the account.
384
+ def friendly_name
385
+ @properties['friendly_name']
386
+ end
387
+
388
+ ##
389
+ # @return [Boolean] Whether the CompositionHook is active. When `true`, the CompositionHook is triggered for every completed Group Room on the account. When `false`, the CompositionHook is never triggered.
390
+ def enabled
391
+ @properties['enabled']
392
+ end
393
+
394
+ ##
395
+ # @return [Time] The date and time in GMT when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
396
+ def date_created
397
+ @properties['date_created']
398
+ end
399
+
400
+ ##
401
+ # @return [Time] The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
402
+ def date_updated
403
+ @properties['date_updated']
404
+ end
405
+
406
+ ##
407
+ # @return [String] The unique string that we created to identify the CompositionHook resource.
408
+ def sid
409
+ @properties['sid']
410
+ end
411
+
412
+ ##
413
+ # @return [Array<String>] The array of track names to include in the compositions created by the composition hook. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except those specified in `audio_sources_excluded`. The track names in this property can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` includes tracks named `student` as well as `studentTeam`. Please, be aware that either video_layout or audio_sources have to be provided to get a valid creation request
414
+ def audio_sources
415
+ @properties['audio_sources']
416
+ end
417
+
418
+ ##
419
+ # @return [Array<String>] The array of track names to exclude from the compositions created by the composition hook. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except for those specified in `audio_sources_excluded`. The track names in this property can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` excludes `student` as well as `studentTeam`. This parameter can also be empty.
420
+ def audio_sources_excluded
421
+ @properties['audio_sources_excluded']
422
+ end
423
+
424
+ ##
425
+ # @return [Hash] A JSON object that describes the video layout of the composition in terms of regions as specified in the HTTP POST request that created the CompositionHook resource. See [POST Parameters](https://www.twilio.com/docs/video/api/compositions-resource#http-post-parameters) for more information. Please, be aware that either video_layout or audio_sources have to be provided to get a valid creation request
426
+ def video_layout
427
+ @properties['video_layout']
428
+ end
429
+
430
+ ##
431
+ # @return [String] The dimensions of the video image in pixels expressed as columns (width) and rows (height). The string's format is `{width}x{height}`, such as `640x480`.
432
+ def resolution
433
+ @properties['resolution']
434
+ end
435
+
436
+ ##
437
+ # @return [Boolean] Whether intervals with no media are clipped, as specified in the POST request that created the CompositionHook resource. Compositions with `trim` enabled are shorter when the Room is created and no Participant joins for a while as well as if all the Participants leave the room and join later, because those gaps will be removed. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
438
+ def trim
439
+ @properties['trim']
440
+ end
441
+
442
+ ##
443
+ # @return [Format]
444
+ def format
445
+ @properties['format']
446
+ end
447
+
448
+ ##
449
+ # @return [String] The URL we call using the `status_callback_method` to send status information to your application.
450
+ def status_callback
451
+ @properties['status_callback']
452
+ end
453
+
454
+ ##
455
+ # @return [String] The HTTP method we should use to call `status_callback`. Can be `POST` or `GET` and defaults to `POST`.
456
+ def status_callback_method
457
+ @properties['status_callback_method']
458
+ end
459
+
460
+ ##
461
+ # @return [String] The absolute URL of the resource.
462
+ def url
463
+ @properties['url']
464
+ end
465
+
466
+ ##
467
+ # Delete the CompositionHookInstance
468
+ # @return [Boolean] True if delete succeeds, false otherwise
469
+ def delete
470
+
471
+ context.delete
472
+ end
473
+
474
+ ##
475
+ # Fetch the CompositionHookInstance
476
+ # @return [CompositionHookInstance] Fetched CompositionHookInstance
477
+ def fetch
478
+
479
+ context.fetch
480
+ end
481
+
482
+ ##
483
+ # Update the CompositionHookInstance
484
+ # @param [String] friendly_name A descriptive string that you create to describe the resource. It can be up to 100 characters long and it must be unique within the account.
485
+ # @param [Boolean] enabled Whether the composition hook is active. When `true`, the composition hook will be triggered for every completed Group Room in the account. When `false`, the composition hook never triggers.
486
+ # @param [Object] video_layout A JSON object that describes the video layout of the composition hook in terms of regions. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
487
+ # @param [Array[String]] audio_sources An array of track names from the same group room to merge into the compositions created by the composition hook. Can include zero or more track names. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except those specified in `audio_sources_excluded`. The track names in this parameter can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` includes tracks named `student` as well as `studentTeam`.
488
+ # @param [Array[String]] audio_sources_excluded An array of track names to exclude. A composition triggered by the composition hook includes all audio sources specified in `audio_sources` except for those specified in `audio_sources_excluded`. The track names in this parameter can include an asterisk as a wild card character, which matches zero or more characters in a track name. For example, `student*` excludes `student` as well as `studentTeam`. This parameter can also be empty.
489
+ # @param [Boolean] trim Whether to clip the intervals where there is no active media in the compositions triggered by the composition hook. The default is `true`. Compositions with `trim` enabled are shorter when the Room is created and no Participant joins for a while as well as if all the Participants leave the room and join later, because those gaps will be removed. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
490
+ # @param [Format] format
491
+ # @param [String] resolution A string that describes the columns (width) and rows (height) of the generated composed video in pixels. Defaults to `640x480`. The string's format is `{width}x{height}` where: * 16 <= `{width}` <= 1280 * 16 <= `{height}` <= 1280 * `{width}` * `{height}` <= 921,600 Typical values are: * HD = `1280x720` * PAL = `1024x576` * VGA = `640x480` * CIF = `320x240` Note that the `resolution` imposes an aspect ratio to the resulting composition. When the original video tracks are constrained by the aspect ratio, they are scaled to fit. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts) for more info.
492
+ # @param [String] status_callback The URL we should call using the `status_callback_method` to send status information to your application on every composition event. If not provided, status callback events will not be dispatched.
493
+ # @param [String] status_callback_method The HTTP method we should use to call `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
494
+ # @return [CompositionHookInstance] Updated CompositionHookInstance
495
+ def update(
496
+ friendly_name: nil,
497
+ enabled: :unset,
498
+ video_layout: :unset,
499
+ audio_sources: :unset,
500
+ audio_sources_excluded: :unset,
501
+ trim: :unset,
502
+ format: :unset,
503
+ resolution: :unset,
504
+ status_callback: :unset,
505
+ status_callback_method: :unset
506
+ )
507
+
508
+ context.update(
509
+ friendly_name: friendly_name,
510
+ enabled: enabled,
511
+ video_layout: video_layout,
512
+ audio_sources: audio_sources,
513
+ audio_sources_excluded: audio_sources_excluded,
514
+ trim: trim,
515
+ format: format,
516
+ resolution: resolution,
517
+ status_callback: status_callback,
518
+ status_callback_method: status_callback_method,
519
+ )
520
+ end
521
+
522
+ ##
523
+ # Provide a user friendly representation
524
+ def to_s
525
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
526
+ "<Twilio.Video.V1.CompositionHookInstance #{values}>"
527
+ end
528
+
529
+ ##
530
+ # Provide a detailed, user friendly representation
531
+ def inspect
532
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
533
+ "<Twilio.Video.V1.CompositionHookInstance #{values}>"
534
+ end
535
+ end
408
536
 
409
- class CompositionHookInstance < InstanceResource
410
- ##
411
- # Initialize the CompositionHookInstance
412
- # @param [Version] version Version that contains the resource
413
- # @param [Hash] payload payload that contains response from Twilio
414
- # @param [String] sid The SID of the CompositionHook resource to fetch.
415
- # @return [CompositionHookInstance] CompositionHookInstance
416
- def initialize(version, payload, sid: nil)
417
- super(version)
418
-
419
- # Marshaled Properties
420
- @properties = {
421
- 'account_sid' => payload['account_sid'],
422
- 'friendly_name' => payload['friendly_name'],
423
- 'enabled' => payload['enabled'],
424
- 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
425
- 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
426
- 'sid' => payload['sid'],
427
- 'audio_sources' => payload['audio_sources'],
428
- 'audio_sources_excluded' => payload['audio_sources_excluded'],
429
- 'video_layout' => payload['video_layout'],
430
- 'resolution' => payload['resolution'],
431
- 'trim' => payload['trim'],
432
- 'format' => payload['format'],
433
- 'status_callback' => payload['status_callback'],
434
- 'status_callback_method' => payload['status_callback_method'],
435
- 'url' => payload['url'],
436
- }
437
-
438
- # Context
439
- @instance_context = nil
440
- @params = {'sid' => sid || @properties['sid'], }
441
- end
442
-
443
- ##
444
- # Generate an instance context for the instance, the context is capable of
445
- # performing various actions. All instance actions are proxied to the context
446
- # @return [CompositionHookContext] CompositionHookContext for this CompositionHookInstance
447
- def context
448
- unless @instance_context
449
- @instance_context = CompositionHookContext.new(@version, @params['sid'], )
450
537
  end
451
- @instance_context
452
- end
453
-
454
- ##
455
- # @return [String] The SID of the Account that created the resource
456
- def account_sid
457
- @properties['account_sid']
458
- end
459
-
460
- ##
461
- # @return [String] The string that you assigned to describe the resource
462
- def friendly_name
463
- @properties['friendly_name']
464
- end
465
-
466
- ##
467
- # @return [Boolean] Whether the CompositionHook is active
468
- def enabled
469
- @properties['enabled']
470
- end
471
-
472
- ##
473
- # @return [Time] The ISO 8601 date and time in GMT when the resource was created
474
- def date_created
475
- @properties['date_created']
476
- end
477
-
478
- ##
479
- # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
480
- def date_updated
481
- @properties['date_updated']
482
- end
483
-
484
- ##
485
- # @return [String] The unique string that identifies the resource
486
- def sid
487
- @properties['sid']
488
- end
489
-
490
- ##
491
- # @return [Array[String]] The array of track names to include in the compositions created by the composition hook
492
- def audio_sources
493
- @properties['audio_sources']
494
- end
495
-
496
- ##
497
- # @return [Array[String]] The array of track names to exclude from the compositions created by the composition hook
498
- def audio_sources_excluded
499
- @properties['audio_sources_excluded']
500
- end
501
-
502
- ##
503
- # @return [Hash] A JSON object that describes the video layout of the Composition
504
- def video_layout
505
- @properties['video_layout']
506
- end
507
-
508
- ##
509
- # @return [String] The dimensions of the video image in pixels expressed as columns (width) and rows (height)
510
- def resolution
511
- @properties['resolution']
512
- end
513
-
514
- ##
515
- # @return [Boolean] Whether intervals with no media are clipped
516
- def trim
517
- @properties['trim']
518
- end
519
-
520
- ##
521
- # @return [composition_hook.Format] The container format of the media files used by the compositions created by the composition hook
522
- def format
523
- @properties['format']
524
- end
525
-
526
- ##
527
- # @return [String] The URL to send status information to your application
528
- def status_callback
529
- @properties['status_callback']
530
- end
531
-
532
- ##
533
- # @return [String] The HTTP method we should use to call status_callback
534
- def status_callback_method
535
- @properties['status_callback_method']
536
- end
537
-
538
- ##
539
- # @return [String] The absolute URL of the resource
540
- def url
541
- @properties['url']
542
- end
543
-
544
- ##
545
- # Fetch the CompositionHookInstance
546
- # @return [CompositionHookInstance] Fetched CompositionHookInstance
547
- def fetch
548
- context.fetch
549
- end
550
-
551
- ##
552
- # Delete the CompositionHookInstance
553
- # @return [Boolean] true if delete succeeds, false otherwise
554
- def delete
555
- context.delete
556
- end
557
-
558
- ##
559
- # Update the CompositionHookInstance
560
- # @param [String] friendly_name A descriptive string that you create to describe
561
- # the resource. It can be up to 100 characters long and it must be unique within
562
- # the account.
563
- # @param [Boolean] enabled Whether the composition hook is active. When `true`,
564
- # the composition hook will be triggered for every completed Group Room in the
565
- # account. When `false`, the composition hook never triggers.
566
- # @param [Hash] video_layout A JSON object that describes the video layout of the
567
- # composition hook in terms of regions. See {Specifying Video
568
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
569
- # for more info.
570
- # @param [Array[String]] audio_sources An array of track names from the same group
571
- # room to merge into the compositions created by the composition hook. Can include
572
- # zero or more track names. A composition triggered by the composition hook
573
- # includes all audio sources specified in `audio_sources` except those specified
574
- # in `audio_sources_excluded`. The track names in this parameter can include an
575
- # asterisk as a wild card character, which matches zero or more characters in a
576
- # track name. For example, `student*` includes tracks named `student` as well as
577
- # `studentTeam`.
578
- # @param [Array[String]] audio_sources_excluded An array of track names to
579
- # exclude. A composition triggered by the composition hook includes all audio
580
- # sources specified in `audio_sources` except for those specified in
581
- # `audio_sources_excluded`. The track names in this parameter can include an
582
- # asterisk as a wild card character, which matches zero or more characters in a
583
- # track name. For example, `student*` excludes `student` as well as `studentTeam`.
584
- # This parameter can also be empty.
585
- # @param [Boolean] trim Whether to clip the intervals where there is no active
586
- # media in the compositions triggered by the composition hook. The default is
587
- # `true`. Compositions with `trim` enabled are shorter when the Room is created
588
- # and no Participant joins for a while as well as if all the Participants leave
589
- # the room and join later, because those gaps will be removed. See {Specifying
590
- # Video
591
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
592
- # for more info.
593
- # @param [composition_hook.Format] format The container format of the media files
594
- # used by the compositions created by the composition hook. Can be: `mp4` or
595
- # `webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources` must have
596
- # one or more tracks and/or a `video_layout` element must contain a valid
597
- # `video_sources` list, otherwise an error occurs.
598
- # @param [String] resolution A string that describes the columns (width) and rows
599
- # (height) of the generated composed video in pixels. Defaults to `640x480`.
600
- # The string's format is `{width}x{height}` where:
601
- #
602
- # * 16 <= `{width}` <= 1280
603
- # * 16 <= `{height}` <= 1280
604
- # * `{width}` * `{height}` <= 921,600
605
- #
606
- # Typical values are:
607
- #
608
- # * HD = `1280x720`
609
- # * PAL = `1024x576`
610
- # * VGA = `640x480`
611
- # * CIF = `320x240`
612
- #
613
- # Note that the `resolution` imposes an aspect ratio to the resulting composition.
614
- # When the original video tracks are constrained by the aspect ratio, they are
615
- # scaled to fit. See {Specifying Video
616
- # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
617
- # for more info.
618
- # @param [String] status_callback The URL we should call using the
619
- # `status_callback_method` to send status information to your application on every
620
- # composition event. If not provided, status callback events will not be
621
- # dispatched.
622
- # @param [String] status_callback_method The HTTP method we should use to call
623
- # `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
624
- # @return [CompositionHookInstance] Updated CompositionHookInstance
625
- def update(friendly_name: nil, enabled: :unset, video_layout: :unset, audio_sources: :unset, audio_sources_excluded: :unset, trim: :unset, format: :unset, resolution: :unset, status_callback: :unset, status_callback_method: :unset)
626
- context.update(
627
- friendly_name: friendly_name,
628
- enabled: enabled,
629
- video_layout: video_layout,
630
- audio_sources: audio_sources,
631
- audio_sources_excluded: audio_sources_excluded,
632
- trim: trim,
633
- format: format,
634
- resolution: resolution,
635
- status_callback: status_callback,
636
- status_callback_method: status_callback_method,
637
- )
638
- end
639
-
640
- ##
641
- # Provide a user friendly representation
642
- def to_s
643
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
644
- "<Twilio.Video.V1.CompositionHookInstance #{values}>"
645
- end
646
-
647
- ##
648
- # Provide a detailed, user friendly representation
649
- def inspect
650
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
651
- "<Twilio.Video.V1.CompositionHookInstance #{values}>"
652
- end
653
538
  end
654
- end
655
539
  end
656
- end
657
- end
540
+ end