twilio-ruby 5.74.0 → 7.10.1

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 (796) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +1 -1
  3. data/.github/ISSUE_TEMPLATE/bug_report.yml +69 -0
  4. data/.github/workflows/test-and-deploy.yml +20 -2
  5. data/.gitignore +4 -0
  6. data/.rubocop.yml +1 -0
  7. data/CHANGES.md +1367 -0
  8. data/CONTRIBUTING.md +11 -9
  9. data/Dockerfile +2 -1
  10. data/Gemfile +5 -0
  11. data/LICENSE +1 -1
  12. data/Makefile +6 -0
  13. data/README.md +138 -40
  14. data/UPGRADE.md +21 -0
  15. data/advanced-examples/custom-http-client.md +170 -0
  16. data/cluster/cluster_oauth_spec.rb +19 -0
  17. data/cluster/cluster_orgs_spec.rb +40 -0
  18. data/cluster/cluster_spec.rb +75 -0
  19. data/examples/public_oauth.rb +13 -0
  20. data/lib/twilio-ruby/auth_strategy/auth_strategy.rb +19 -0
  21. data/lib/twilio-ruby/auth_strategy/no_auth_strategy.rb +17 -0
  22. data/lib/twilio-ruby/auth_strategy/token_auth_strategy.rb +39 -0
  23. data/lib/twilio-ruby/base/client_base.rb +131 -0
  24. data/lib/twilio-ruby/credential/auth_type.rb +17 -0
  25. data/lib/twilio-ruby/credential/client_credential_provider.rb +28 -0
  26. data/lib/twilio-ruby/credential/credential_provider.rb +11 -0
  27. data/lib/twilio-ruby/credential/orgs_credential_provider.rb +30 -0
  28. data/lib/twilio-ruby/framework/request.rb +8 -1
  29. data/lib/twilio-ruby/framework/rest/api_v1_version.rb +22 -0
  30. data/lib/twilio-ruby/framework/rest/domain.rb +0 -1
  31. data/lib/twilio-ruby/framework/rest/error.rb +27 -12
  32. data/lib/twilio-ruby/framework/rest/page.rb +1 -0
  33. data/lib/twilio-ruby/framework/rest/page_metadata.rb +83 -0
  34. data/lib/twilio-ruby/framework/rest/resource.rb +16 -0
  35. data/lib/twilio-ruby/framework/rest/token_page.rb +73 -0
  36. data/lib/twilio-ruby/framework/rest/version.rb +91 -4
  37. data/lib/twilio-ruby/http/client_token_manager.rb +31 -0
  38. data/lib/twilio-ruby/http/http_client.rb +22 -5
  39. data/lib/twilio-ruby/http/org_token_manager.rb +31 -0
  40. data/lib/twilio-ruby/jwt/access_token.rb +0 -59
  41. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +338 -176
  42. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +231 -0
  43. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +231 -0
  44. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +644 -332
  45. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +644 -332
  46. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +185 -114
  47. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +285 -0
  48. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +336 -0
  49. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +378 -190
  50. data/lib/twilio-ruby/rest/accounts/v1.rb +69 -42
  51. data/lib/twilio-ruby/rest/accounts.rb +4 -34
  52. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +459 -365
  54. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +886 -530
  55. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +977 -586
  56. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +482 -320
  57. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +519 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +519 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +519 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +519 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +519 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +519 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +519 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +601 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +231 -118
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +289 -192
  67. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +578 -417
  68. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +556 -364
  69. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +791 -511
  70. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +1658 -663
  71. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +1658 -663
  72. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +541 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +260 -151
  74. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +409 -240
  75. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +1368 -1050
  76. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +1124 -756
  77. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +694 -458
  78. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +719 -493
  79. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +679 -407
  80. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +483 -344
  81. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +627 -416
  82. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +737 -554
  83. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +737 -553
  84. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +737 -553
  85. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +1261 -903
  86. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +567 -302
  87. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +268 -164
  88. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +540 -350
  89. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +970 -641
  90. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +246 -125
  91. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +246 -125
  92. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +577 -399
  93. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +604 -358
  94. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +553 -338
  95. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +702 -390
  96. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +343 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +572 -378
  98. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +560 -383
  99. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +558 -372
  100. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +718 -513
  101. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +644 -408
  102. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +567 -306
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +642 -359
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +667 -371
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +579 -0
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +579 -0
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +204 -0
  108. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +579 -0
  109. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +190 -0
  110. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +158 -103
  111. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +564 -331
  112. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +564 -330
  113. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +987 -641
  114. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +694 -418
  115. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +667 -372
  116. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +205 -150
  117. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +258 -139
  118. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +557 -350
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +407 -335
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +407 -335
  121. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +407 -335
  122. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +407 -335
  123. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +407 -335
  124. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +407 -335
  125. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +407 -335
  126. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +407 -335
  127. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +478 -416
  128. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +785 -484
  129. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +176 -104
  130. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +278 -150
  131. data/lib/twilio-ruby/rest/api/v2010/account.rb +1229 -943
  132. data/lib/twilio-ruby/rest/api/v2010.rb +126 -148
  133. data/lib/twilio-ruby/rest/api.rb +25 -34
  134. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  135. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +550 -0
  136. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +550 -0
  137. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +423 -0
  138. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +296 -0
  139. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +918 -0
  140. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +317 -0
  141. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +349 -0
  142. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +862 -0
  143. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +356 -0
  144. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +352 -0
  145. data/lib/twilio-ruby/rest/assistants/v1/session.rb +493 -0
  146. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +838 -0
  147. data/lib/twilio-ruby/rest/assistants/v1.rb +100 -0
  148. data/lib/twilio-ruby/rest/assistants.rb +6 -0
  149. data/lib/twilio-ruby/rest/assistants_base.rb +38 -0
  150. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +468 -279
  151. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +440 -279
  152. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +438 -248
  153. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +389 -235
  154. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +430 -216
  155. data/lib/twilio-ruby/rest/bulkexports/v1.rb +57 -55
  156. data/lib/twilio-ruby/rest/bulkexports.rb +3 -34
  157. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  158. data/lib/twilio-ruby/rest/chat/v1/credential.rb +719 -403
  159. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +613 -391
  160. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +704 -440
  161. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +722 -437
  162. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +822 -515
  163. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +672 -367
  164. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +331 -237
  165. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +750 -440
  166. data/lib/twilio-ruby/rest/chat/v1/service.rb +1287 -894
  167. data/lib/twilio-ruby/rest/chat/v1.rb +57 -55
  168. data/lib/twilio-ruby/rest/chat/v2/credential.rb +719 -401
  169. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +570 -370
  170. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +613 -386
  171. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +799 -527
  172. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +825 -533
  173. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +746 -467
  174. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +916 -605
  175. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +672 -369
  176. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +561 -381
  177. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +648 -419
  178. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +796 -491
  179. data/lib/twilio-ruby/rest/chat/v2/service.rb +1121 -778
  180. data/lib/twilio-ruby/rest/chat/v2.rb +57 -53
  181. data/lib/twilio-ruby/rest/chat/v3/channel.rb +444 -267
  182. data/lib/twilio-ruby/rest/chat/v3.rb +64 -41
  183. data/lib/twilio-ruby/rest/chat.rb +4 -48
  184. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  185. data/lib/twilio-ruby/rest/client.rb +338 -584
  186. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +280 -0
  187. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +327 -173
  188. data/lib/twilio-ruby/rest/content/v1/content.rb +1909 -334
  189. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +340 -0
  190. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +354 -0
  191. data/lib/twilio-ruby/rest/content/v1.rb +54 -38
  192. data/lib/twilio-ruby/rest/content/v2/content.rb +425 -0
  193. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +418 -0
  194. data/lib/twilio-ruby/rest/content/v2.rb +46 -0
  195. data/lib/twilio-ruby/rest/content.rb +2 -34
  196. data/lib/twilio-ruby/rest/content_base.rb +43 -0
  197. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +798 -444
  198. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +445 -227
  199. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +467 -252
  200. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +504 -344
  201. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +852 -495
  202. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +817 -495
  203. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +725 -403
  204. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +957 -552
  205. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +392 -0
  206. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +728 -409
  207. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +397 -304
  208. data/lib/twilio-ruby/rest/conversations/v1/role.rb +657 -356
  209. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +563 -373
  210. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +540 -312
  211. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +459 -258
  212. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +497 -279
  213. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +504 -363
  214. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +860 -533
  215. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +829 -530
  216. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +737 -438
  217. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +972 -588
  218. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +399 -0
  219. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +403 -317
  220. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +672 -380
  221. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +686 -455
  222. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +773 -474
  223. data/lib/twilio-ruby/rest/conversations/v1/service.rb +724 -447
  224. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +683 -435
  225. data/lib/twilio-ruby/rest/conversations/v1/user.rb +758 -441
  226. data/lib/twilio-ruby/rest/conversations/v1.rb +135 -136
  227. data/lib/twilio-ruby/rest/conversations.rb +9 -34
  228. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  229. data/lib/twilio-ruby/rest/events/v1/event_type.rb +486 -288
  230. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +468 -0
  231. data/lib/twilio-ruby/rest/events/v1/schema.rb +366 -214
  232. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +209 -100
  233. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +222 -103
  234. data/lib/twilio-ruby/rest/events/v1/sink.rb +711 -408
  235. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +638 -339
  236. data/lib/twilio-ruby/rest/events/v1/subscription.rb +685 -387
  237. data/lib/twilio-ruby/rest/events/v1.rb +87 -87
  238. data/lib/twilio-ruby/rest/events.rb +5 -34
  239. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  240. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +687 -146
  241. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +621 -330
  242. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +722 -496
  243. data/lib/twilio-ruby/rest/flex_api/v1/create_flex_instance.rb +382 -0
  244. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +928 -570
  245. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +475 -0
  246. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +321 -0
  247. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +735 -0
  248. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +598 -0
  249. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +710 -0
  250. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +457 -0
  251. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +359 -0
  252. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +251 -0
  253. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +237 -0
  254. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +338 -0
  255. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +370 -227
  256. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +560 -319
  257. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +547 -0
  258. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +637 -398
  259. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +529 -225
  260. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +621 -0
  261. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +700 -0
  262. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +390 -0
  263. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +564 -0
  264. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +599 -0
  265. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +376 -0
  266. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +539 -0
  267. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +400 -0
  268. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +327 -0
  269. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +663 -331
  270. data/lib/twilio-ruby/rest/flex_api/v1.rb +319 -113
  271. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +515 -0
  272. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +258 -125
  273. data/lib/twilio-ruby/rest/flex_api/v2.rb +70 -28
  274. data/lib/twilio-ruby/rest/flex_api.rb +9 -47
  275. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  276. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +453 -248
  277. data/lib/twilio-ruby/rest/frontline_api/v1.rb +42 -38
  278. data/lib/twilio-ruby/rest/frontline_api.rb +2 -34
  279. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  280. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +471 -0
  281. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +320 -0
  282. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +284 -0
  283. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +646 -0
  284. data/lib/twilio-ruby/rest/iam/v1/token.rb +301 -0
  285. data/lib/twilio-ruby/rest/iam/v1.rb +82 -0
  286. data/lib/twilio-ruby/rest/iam.rb +6 -0
  287. data/lib/twilio-ruby/rest/iam_base.rb +33 -0
  288. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +509 -315
  289. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +499 -0
  290. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +360 -255
  291. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +333 -224
  292. data/lib/twilio-ruby/rest/insights/v1/call.rb +403 -236
  293. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +718 -433
  294. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +665 -467
  295. data/lib/twilio-ruby/rest/insights/v1/conference.rb +683 -502
  296. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +545 -371
  297. data/lib/twilio-ruby/rest/insights/v1/room.rb +668 -489
  298. data/lib/twilio-ruby/rest/insights/v1/setting.rb +435 -205
  299. data/lib/twilio-ruby/rest/insights/v1.rb +84 -83
  300. data/lib/twilio-ruby/rest/insights.rb +6 -34
  301. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  302. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +720 -0
  303. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +525 -0
  304. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +380 -0
  305. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +337 -0
  306. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +523 -0
  307. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +525 -0
  308. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +844 -0
  309. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +359 -0
  310. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +359 -0
  311. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +373 -0
  312. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +570 -0
  313. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +354 -0
  314. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +815 -0
  315. data/lib/twilio-ruby/rest/intelligence/v2.rb +176 -0
  316. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  317. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  318. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +719 -364
  319. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +613 -359
  320. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +704 -397
  321. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +722 -409
  322. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +822 -488
  323. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +672 -347
  324. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +331 -231
  325. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +750 -418
  326. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +1287 -779
  327. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  328. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +719 -364
  329. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +570 -343
  330. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +613 -359
  331. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +799 -451
  332. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +825 -479
  333. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +746 -411
  334. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +916 -555
  335. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +672 -347
  336. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +561 -351
  337. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +637 -384
  338. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +796 -467
  339. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +1121 -689
  340. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -53
  341. data/lib/twilio-ruby/rest/ip_messaging.rb +3 -41
  342. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  343. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/chunk.rb +317 -0
  344. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +349 -0
  345. data/lib/twilio-ruby/rest/knowledge/v1/knowledge.rb +856 -0
  346. data/lib/twilio-ruby/rest/knowledge/v1.rb +49 -0
  347. data/lib/twilio-ruby/rest/knowledge.rb +6 -0
  348. data/lib/twilio-ruby/rest/knowledge_base.rb +38 -0
  349. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +399 -237
  350. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -39
  351. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +500 -0
  352. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +603 -0
  353. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +570 -328
  354. data/lib/twilio-ruby/rest/lookups/v2/query.rb +351 -0
  355. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +229 -0
  356. data/lib/twilio-ruby/rest/lookups/v2.rb +128 -38
  357. data/lib/twilio-ruby/rest/lookups.rb +2 -41
  358. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  359. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +475 -0
  360. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +501 -0
  361. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +555 -0
  362. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +252 -0
  363. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +735 -0
  364. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +342 -0
  365. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +511 -0
  366. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +235 -0
  367. data/lib/twilio-ruby/rest/marketplace/v1.rb +91 -0
  368. data/lib/twilio-ruby/rest/marketplace.rb +6 -0
  369. data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
  370. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +231 -0
  371. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +568 -346
  372. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +758 -443
  373. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +337 -0
  374. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +483 -0
  375. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +469 -259
  376. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +379 -0
  377. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +344 -0
  378. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +263 -142
  379. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +380 -0
  380. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +337 -0
  381. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +379 -0
  382. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +580 -335
  383. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +594 -0
  384. data/lib/twilio-ruby/rest/messaging/v1/service/destination_alpha_sender.rb +608 -0
  385. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +587 -341
  386. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +587 -336
  387. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +937 -521
  388. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +222 -115
  389. data/lib/twilio-ruby/rest/messaging/v1/service.rb +1149 -763
  390. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +1517 -549
  391. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +209 -103
  392. data/lib/twilio-ruby/rest/messaging/v1.rb +217 -124
  393. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +1002 -0
  394. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +386 -0
  395. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +237 -0
  396. data/lib/twilio-ruby/rest/messaging/v2.rb +70 -0
  397. data/lib/twilio-ruby/rest/messaging.rb +10 -35
  398. data/lib/twilio-ruby/rest/messaging_base.rb +43 -0
  399. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +572 -395
  400. data/lib/twilio-ruby/rest/monitor/v1/event.rb +561 -390
  401. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -53
  402. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  403. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  404. data/lib/twilio-ruby/rest/notify/v1/credential.rb +719 -408
  405. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +694 -452
  406. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +466 -362
  407. data/lib/twilio-ruby/rest/notify/v1/service.rb +971 -622
  408. data/lib/twilio-ruby/rest/notify/v1.rb +57 -55
  409. data/lib/twilio-ruby/rest/notify.rb +3 -34
  410. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  411. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +411 -0
  412. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +221 -0
  413. data/lib/twilio-ruby/rest/numbers/v1/porting_all_port_in.rb +367 -0
  414. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +616 -0
  415. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +485 -0
  416. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +405 -0
  417. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +242 -0
  418. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +301 -0
  419. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +395 -0
  420. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +252 -0
  421. data/lib/twilio-ruby/rest/numbers/v1.rb +161 -0
  422. data/lib/twilio-ruby/rest/numbers/v2/application.rb +562 -0
  423. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +440 -0
  424. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +649 -0
  425. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +442 -0
  426. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +430 -0
  427. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +915 -0
  428. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +405 -261
  429. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +524 -298
  430. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +564 -309
  431. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +294 -179
  432. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +923 -607
  433. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +667 -351
  434. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +458 -266
  435. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +521 -307
  436. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +695 -371
  437. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +458 -266
  438. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +241 -181
  439. data/lib/twilio-ruby/rest/numbers/v2.rb +108 -28
  440. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +484 -0
  441. data/lib/twilio-ruby/rest/numbers/v3.rb +40 -0
  442. data/lib/twilio-ruby/rest/numbers.rb +2 -34
  443. data/lib/twilio-ruby/rest/numbers_base.rb +48 -0
  444. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +253 -0
  445. data/lib/twilio-ruby/rest/oauth/v1/token.rb +293 -149
  446. data/lib/twilio-ruby/rest/oauth/v1.rb +39 -56
  447. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +253 -0
  448. data/lib/twilio-ruby/rest/oauth/v2/token.rb +311 -0
  449. data/lib/twilio-ruby/rest/oauth/v2.rb +46 -0
  450. data/lib/twilio-ruby/rest/oauth.rb +3 -65
  451. data/lib/twilio-ruby/rest/oauth_base.rb +43 -0
  452. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +469 -396
  453. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +724 -446
  454. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +960 -625
  455. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -55
  456. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +468 -298
  457. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +491 -309
  458. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +548 -330
  459. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +706 -398
  460. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -53
  461. data/lib/twilio-ruby/rest/preview/wireless/command.rb +616 -364
  462. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +743 -398
  463. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +382 -205
  464. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +833 -523
  465. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -69
  466. data/lib/twilio-ruby/rest/preview.rb +10 -87
  467. data/lib/twilio-ruby/rest/preview_base.rb +48 -0
  468. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +253 -0
  469. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +301 -0
  470. data/lib/twilio-ruby/rest/preview_iam/v1.rb +46 -0
  471. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/account.rb +468 -0
  472. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/role_assignment.rb +559 -0
  473. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/user.rb +768 -0
  474. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +413 -0
  475. data/lib/twilio-ruby/rest/preview_iam/versionless.rb +49 -0
  476. data/lib/twilio-ruby/rest/preview_iam.rb +9 -0
  477. data/lib/twilio-ruby/rest/preview_iam_base.rb +38 -0
  478. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +465 -275
  479. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +172 -120
  480. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +458 -268
  481. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +172 -120
  482. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +465 -275
  483. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +345 -179
  484. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +185 -135
  485. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  486. data/lib/twilio-ruby/rest/pricing/v2/country.rb +457 -270
  487. data/lib/twilio-ruby/rest/pricing/v2/number.rb +379 -215
  488. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +465 -275
  489. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +367 -200
  490. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +185 -138
  491. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -65
  492. data/lib/twilio-ruby/rest/pricing.rb +6 -41
  493. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  494. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +693 -403
  495. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +600 -418
  496. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +640 -447
  497. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +659 -440
  498. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +811 -506
  499. data/lib/twilio-ruby/rest/proxy/v1/service.rb +839 -596
  500. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -38
  501. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  502. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  503. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +444 -227
  504. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +444 -223
  505. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +444 -227
  506. data/lib/twilio-ruby/rest/routes/v2.rb +72 -69
  507. data/lib/twilio-ruby/rest/routes.rb +4 -34
  508. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  509. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +483 -323
  510. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +680 -380
  511. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +350 -208
  512. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +645 -384
  513. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +549 -338
  514. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +535 -383
  515. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +680 -396
  516. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +688 -447
  517. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +342 -210
  518. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +510 -353
  519. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +680 -380
  520. data/lib/twilio-ruby/rest/serverless/v1/service.rb +803 -493
  521. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -37
  522. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  523. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  524. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +350 -199
  525. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +342 -194
  526. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +545 -355
  527. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +659 -394
  528. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +350 -200
  529. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +342 -197
  530. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +545 -361
  531. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +748 -449
  532. data/lib/twilio-ruby/rest/studio/v1/flow.rb +572 -355
  533. data/lib/twilio-ruby/rest/studio/v1.rb +42 -37
  534. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +350 -200
  535. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +342 -197
  536. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +545 -361
  537. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +741 -442
  538. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +510 -320
  539. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +413 -0
  540. data/lib/twilio-ruby/rest/studio/v2/flow.rb +804 -472
  541. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +241 -109
  542. data/lib/twilio-ruby/rest/studio/v2.rb +48 -44
  543. data/lib/twilio-ruby/rest/studio.rb +3 -41
  544. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  545. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +611 -362
  546. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +757 -483
  547. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +624 -406
  548. data/lib/twilio-ruby/rest/supersim/v1/network.rb +474 -297
  549. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +566 -332
  550. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +624 -351
  551. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +339 -237
  552. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +311 -204
  553. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +275 -174
  554. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +725 -453
  555. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +576 -361
  556. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +410 -344
  557. data/lib/twilio-ruby/rest/supersim/v1.rb +144 -147
  558. data/lib/twilio-ruby/rest/supersim.rb +10 -34
  559. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  560. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +616 -371
  561. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +736 -423
  562. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +766 -490
  563. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +616 -370
  564. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +749 -445
  565. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +772 -495
  566. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +616 -368
  567. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +749 -444
  568. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +242 -132
  569. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +692 -400
  570. data/lib/twilio-ruby/rest/sync/v1/service.rb +878 -567
  571. data/lib/twilio-ruby/rest/sync/v1.rb +42 -37
  572. data/lib/twilio-ruby/rest/sync.rb +2 -34
  573. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  574. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +682 -395
  575. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +633 -464
  576. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +1079 -749
  577. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +985 -661
  578. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +688 -382
  579. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +258 -0
  580. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +522 -370
  581. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +430 -276
  582. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +410 -254
  583. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +358 -276
  584. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +882 -572
  585. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +1053 -732
  586. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +602 -388
  587. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +394 -239
  588. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +440 -266
  589. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +364 -193
  590. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +418 -234
  591. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +927 -637
  592. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +522 -376
  593. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +395 -241
  594. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +410 -262
  595. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +822 -510
  596. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +514 -356
  597. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +379 -205
  598. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +387 -219
  599. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +1022 -730
  600. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -37
  601. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  602. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  603. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +573 -320
  604. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +573 -317
  605. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +734 -419
  606. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +706 -451
  607. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +391 -174
  608. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +939 -630
  609. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -38
  610. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  611. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  612. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +440 -0
  613. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +656 -0
  614. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +474 -0
  615. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +595 -352
  616. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +574 -323
  617. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +540 -321
  618. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +823 -513
  619. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +659 -346
  620. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +450 -261
  621. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +443 -252
  622. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +673 -359
  623. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +450 -261
  624. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +595 -352
  625. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +574 -323
  626. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +540 -321
  627. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +823 -513
  628. data/lib/twilio-ruby/rest/trusthub/v1.rb +168 -139
  629. data/lib/twilio-ruby/rest/trusthub.rb +8 -34
  630. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  631. data/lib/twilio-ruby/rest/verify/v2/form.rb +334 -181
  632. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +423 -205
  633. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +463 -254
  634. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +402 -0
  635. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +275 -172
  636. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +768 -530
  637. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +705 -453
  638. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +386 -271
  639. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +653 -414
  640. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +652 -363
  641. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +478 -0
  642. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +387 -0
  643. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +357 -0
  644. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +680 -388
  645. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +693 -384
  646. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +655 -366
  647. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +320 -187
  648. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +741 -412
  649. data/lib/twilio-ruby/rest/verify/v2/service.rb +1360 -780
  650. data/lib/twilio-ruby/rest/verify/v2/template.rb +310 -203
  651. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +556 -387
  652. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +400 -224
  653. data/lib/twilio-ruby/rest/verify/v2.rb +99 -103
  654. data/lib/twilio-ruby/rest/verify.rb +7 -34
  655. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  656. data/lib/twilio-ruby/rest/video/v1/composition.rb +738 -507
  657. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +854 -647
  658. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +475 -261
  659. data/lib/twilio-ruby/rest/video/v1/recording.rb +631 -426
  660. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +475 -261
  661. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +403 -0
  662. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +501 -0
  663. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +316 -0
  664. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +508 -0
  665. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +714 -0
  666. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +303 -0
  667. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +624 -0
  668. data/lib/twilio-ruby/rest/video/v1/room/transcriptions.rb +648 -0
  669. data/lib/twilio-ruby/rest/video/v1/room.rb +938 -602
  670. data/lib/twilio-ruby/rest/video/v1.rb +99 -99
  671. data/lib/twilio-ruby/rest/video.rb +7 -34
  672. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  673. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +292 -174
  674. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +822 -486
  675. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +734 -434
  676. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +658 -352
  677. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +236 -121
  678. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +282 -181
  679. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +553 -397
  680. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +377 -173
  681. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +187 -122
  682. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +650 -339
  683. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +630 -319
  684. data/lib/twilio-ruby/rest/voice/v1.rb +130 -117
  685. data/lib/twilio-ruby/rest/voice.rb +7 -34
  686. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  687. data/lib/twilio-ruby/rest/wireless/v1/command.rb +663 -406
  688. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +769 -436
  689. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +387 -284
  690. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +317 -226
  691. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +925 -647
  692. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +319 -219
  693. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -76
  694. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  695. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  696. data/lib/twilio-ruby/rest.rb +1 -0
  697. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  698. data/lib/twilio-ruby/twiml/voice_response.rb +481 -26
  699. data/lib/twilio-ruby/version.rb +1 -1
  700. data/sonar-project.properties +1 -1
  701. data/twilio-ruby.gemspec +3 -2
  702. metadata +238 -105
  703. data/conf/cacert.pem +0 -3376
  704. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  705. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -500
  706. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -500
  707. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -500
  708. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -500
  709. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -500
  710. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -500
  711. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -500
  712. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -464
  713. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -301
  714. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -314
  715. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -348
  716. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +0 -348
  717. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  718. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +0 -348
  719. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  720. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -220
  721. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -214
  722. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -399
  723. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -418
  724. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -392
  725. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -469
  726. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -218
  727. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -386
  728. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -456
  729. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -255
  730. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -237
  731. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -507
  732. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -420
  733. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -650
  734. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +0 -194
  735. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -52
  736. data/lib/twilio-ruby/rest/autopilot.rb +0 -53
  737. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +0 -290
  738. data/lib/twilio-ruby/rest/flex_api/v1/good_data.rb +0 -190
  739. data/lib/twilio-ruby/rest/flex_api/v1/user_roles.rb +0 -166
  740. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -321
  741. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +0 -397
  742. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +0 -399
  743. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +0 -221
  744. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +0 -403
  745. data/lib/twilio-ruby/rest/media/v1.rb +0 -76
  746. data/lib/twilio-ruby/rest/media.rb +0 -65
  747. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +0 -164
  748. data/lib/twilio-ruby/rest/messaging/v1/domain_cert.rb +0 -257
  749. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +0 -305
  750. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +0 -339
  751. data/lib/twilio-ruby/rest/microvisor/v1.rb +0 -60
  752. data/lib/twilio-ruby/rest/microvisor.rb +0 -54
  753. data/lib/twilio-ruby/rest/oauth/v1/device_code.rb +0 -153
  754. data/lib/twilio-ruby/rest/oauth/v1/oauth.rb +0 -162
  755. data/lib/twilio-ruby/rest/oauth/v1/openid_discovery.rb +0 -242
  756. data/lib/twilio-ruby/rest/oauth/v1/user_info.rb +0 -193
  757. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +0 -382
  758. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +0 -365
  759. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +0 -425
  760. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +0 -376
  761. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +0 -469
  762. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +0 -45
  763. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -385
  764. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -406
  765. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -418
  766. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -385
  767. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -405
  768. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -415
  769. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -385
  770. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -405
  771. data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -462
  772. data/lib/twilio-ruby/rest/preview/sync.rb +0 -44
  773. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -212
  774. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -212
  775. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -206
  776. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -386
  777. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -407
  778. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -380
  779. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -437
  780. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -212
  781. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -373
  782. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -428
  783. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -241
  784. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -225
  785. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -495
  786. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -629
  787. data/lib/twilio-ruby/rest/preview/understand.rb +0 -45
  788. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +0 -377
  789. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +0 -199
  790. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -413
  791. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_anonymize.rb +0 -240
  792. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -335
  793. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -175
  794. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -340
  795. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -499
  796. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +0 -144
@@ -1,657 +1,864 @@
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
+ ##
23
+ # Initialize the CompositionHookList
24
+ # @param [Version] version Version that contains the resource
25
+ # @return [CompositionHookList] CompositionHookList
26
+ def initialize(version)
27
+ super(version)
28
+
29
+ # Path Solution
30
+ @solution = { }
31
+ @uri = "/CompositionHooks"
32
+
33
+ end
34
+ ##
35
+ # Create the CompositionHookInstance
36
+ # @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.
37
+ # @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.
38
+ # @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.
39
+ # @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`.
40
+ # @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.
41
+ # @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.
42
+ # @param [Format] format
43
+ # @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.
44
+ # @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`.
45
+ # @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.
46
+ # @return [CompositionHookInstance] Created CompositionHookInstance
47
+ def create(
48
+ friendly_name: nil,
49
+ enabled: :unset,
50
+ video_layout: :unset,
51
+ audio_sources: :unset,
52
+ audio_sources_excluded: :unset,
53
+ resolution: :unset,
54
+ format: :unset,
55
+ status_callback: :unset,
56
+ status_callback_method: :unset,
57
+ trim: :unset
58
+ )
59
+
60
+ data = Twilio::Values.of({
61
+ 'FriendlyName' => friendly_name,
62
+ 'Enabled' => enabled,
63
+ 'VideoLayout' => Twilio.serialize_object(video_layout),
64
+ 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
65
+ 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
66
+ 'Resolution' => resolution,
67
+ 'Format' => format,
68
+ 'StatusCallback' => status_callback,
69
+ 'StatusCallbackMethod' => status_callback_method,
70
+ 'Trim' => trim,
71
+ })
72
+
73
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
74
+
75
+
76
+
77
+
78
+
79
+ payload = @version.create('POST', @uri, data: data, headers: headers)
80
+ CompositionHookInstance.new(
81
+ @version,
82
+ payload,
83
+ )
84
+ end
85
+
86
+ ##
87
+ # Create the CompositionHookInstanceMetadata
88
+ # @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.
89
+ # @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.
90
+ # @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.
91
+ # @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`.
92
+ # @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.
93
+ # @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.
94
+ # @param [Format] format
95
+ # @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.
96
+ # @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`.
97
+ # @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.
98
+ # @return [CompositionHookInstance] Created CompositionHookInstance
99
+ def create_with_metadata(
100
+ friendly_name: nil,
101
+ enabled: :unset,
102
+ video_layout: :unset,
103
+ audio_sources: :unset,
104
+ audio_sources_excluded: :unset,
105
+ resolution: :unset,
106
+ format: :unset,
107
+ status_callback: :unset,
108
+ status_callback_method: :unset,
109
+ trim: :unset
110
+ )
111
+
112
+ data = Twilio::Values.of({
113
+ 'FriendlyName' => friendly_name,
114
+ 'Enabled' => enabled,
115
+ 'VideoLayout' => Twilio.serialize_object(video_layout),
116
+ 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
117
+ 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
118
+ 'Resolution' => resolution,
119
+ 'Format' => format,
120
+ 'StatusCallback' => status_callback,
121
+ 'StatusCallbackMethod' => status_callback_method,
122
+ 'Trim' => trim,
123
+ })
124
+
125
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
126
+
127
+
128
+
129
+
130
+
131
+ response = @version.create_with_metadata('POST', @uri, data: data, headers: headers)
132
+ composition_hook_instance = CompositionHookInstance.new(
133
+ @version,
134
+ response.body,
135
+ )
136
+ CompositionHookInstanceMetadata.new(
137
+ @version,
138
+ composition_hook_instance,
139
+ response.headers,
140
+ response.status_code
141
+ )
142
+ end
143
+
144
+
145
+ ##
146
+ # Lists CompositionHookInstance records from the API as a list.
147
+ # Unlike stream(), this operation is eager and will load `limit` records into
148
+ # memory before returning.
149
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
150
+ # @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.
151
+ # @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.
152
+ # @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.
153
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
154
+ # guarantees to never return more than limit. Default is no limit
155
+ # @param [Integer] page_size Number of records to fetch per request, when
156
+ # not set will use the default value of 50 records. If no page_size is defined
157
+ # but a limit is defined, stream() will attempt to read the limit with the most
158
+ # efficient page size, i.e. min(limit, 1000)
159
+ # @return [Array] Array of up to limit results
160
+ def list(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
161
+ self.stream(
162
+ enabled: enabled,
163
+ date_created_after: date_created_after,
164
+ date_created_before: date_created_before,
165
+ friendly_name: friendly_name,
166
+ limit: limit,
167
+ page_size: page_size
168
+ ).entries
169
+ end
170
+
171
+ ##
172
+ # Streams Instance records from the API as an Enumerable.
173
+ # This operation lazily loads records as efficiently as possible until the limit
174
+ # is reached.
175
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
176
+ # @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.
177
+ # @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.
178
+ # @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.
179
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
180
+ # guarantees to never return more than limit. Default is no limit
181
+ # @param [Integer] page_size Number of records to fetch per request, when
182
+ # not set will use the default value of 50 records. If no page_size is defined
183
+ # but a limit is defined, stream() will attempt to read the limit with the most
184
+ # efficient page size, i.e. min(limit, 1000)
185
+ # @return [Enumerable] Enumerable that will yield up to limit results
186
+ def stream(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
187
+ limits = @version.read_limits(limit, page_size)
188
+
189
+ page = self.page(
190
+ enabled: enabled,
191
+ date_created_after: date_created_after,
192
+ date_created_before: date_created_before,
193
+ friendly_name: friendly_name,
194
+ page_size: limits[:page_size], )
195
+
196
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
197
+ end
198
+
199
+ ##
200
+ # Lists CompositionHookPageMetadata records from the API as a list.
201
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
202
+ # @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.
203
+ # @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.
204
+ # @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.
205
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
206
+ # guarantees to never return more than limit. Default is no limit
207
+ # @param [Integer] page_size Number of records to fetch per request, when
208
+ # not set will use the default value of 50 records. If no page_size is defined
209
+ # but a limit is defined, stream() will attempt to read the limit with the most
210
+ # efficient page size, i.e. min(limit, 1000)
211
+ # @return [Array] Array of up to limit results
212
+ def list_with_metadata(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
213
+ limits = @version.read_limits(limit, page_size)
214
+ params = Twilio::Values.of({
215
+ 'Enabled' => enabled,
216
+ 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
217
+ 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
218
+ 'FriendlyName' => friendly_name,
219
+
220
+ 'PageSize' => limits[:page_size],
221
+ });
222
+ headers = Twilio::Values.of({})
223
+
224
+ response = @version.page('GET', @uri, params: params, headers: headers)
225
+
226
+ CompositionHookPageMetadata.new(@version, response, @solution, limits[:limit])
227
+ end
228
+
229
+ ##
230
+ # When passed a block, yields CompositionHookInstance records from the API.
231
+ # This operation lazily loads records as efficiently as possible until the limit
232
+ # is reached.
233
+ def each
234
+ limits = @version.read_limits
235
+
236
+ page = self.page(page_size: limits[:page_size], )
237
+
238
+ @version.stream(page,
105
239
  limit: limits[:limit],
106
240
  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
241
+ end
242
+
243
+ ##
244
+ # Retrieve a single page of CompositionHookInstance records from the API.
245
+ # Request is executed immediately.
246
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled` value that matches this parameter.
247
+ # @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.
248
+ # @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.
249
+ # @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.
250
+ # @param [String] page_token PageToken provided by the API
251
+ # @param [Integer] page_number Page Number, this value is simply for client state
252
+ # @param [Integer] page_size Number of records to return, defaults to 50
253
+ # @return [Page] Page of CompositionHookInstance
254
+ def page(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, page_token: :unset, page_number: :unset,page_size: :unset)
255
+ params = Twilio::Values.of({
256
+ 'Enabled' => enabled,
257
+ 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
258
+ 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
259
+ 'FriendlyName' => friendly_name,
260
+ 'PageToken' => page_token,
261
+ 'Page' => page_number,
262
+ 'PageSize' => page_size,
263
+ })
264
+ headers = Twilio::Values.of({})
265
+
266
+
267
+
268
+ response = @version.page('GET', @uri, params: params, headers: headers)
269
+
270
+ CompositionHookPage.new(@version, response, @solution)
271
+ end
272
+
273
+ ##
274
+ # Retrieve a single page of CompositionHookInstance records from the API.
275
+ # Request is executed immediately.
276
+ # @param [String] target_url API-generated URL for the requested results page
277
+ # @return [Page] Page of CompositionHookInstance
278
+ def get_page(target_url)
279
+ response = @version.domain.request(
280
+ 'GET',
281
+ target_url
282
+ )
283
+ CompositionHookPage.new(@version, response, @solution)
284
+ end
285
+
286
+
287
+
288
+ # Provide a user friendly representation
289
+ def to_s
290
+ '#<Twilio.Video.V1.CompositionHookList>'
291
+ end
292
+ end
293
+
294
+
295
+ class CompositionHookContext < InstanceContext
296
+ ##
297
+ # Initialize the CompositionHookContext
298
+ # @param [Version] version Version that contains the resource
299
+ # @param [String] sid The SID of the CompositionHook resource to update.
300
+ # @return [CompositionHookContext] CompositionHookContext
301
+ def initialize(version, sid)
302
+ super(version)
303
+
304
+
305
+ # Path Solution
306
+ @solution = { sid: sid, }
307
+ @uri = "/CompositionHooks/#{@solution[:sid]}"
308
+
309
+
310
+ end
311
+ ##
312
+ # Delete the CompositionHookInstance
313
+ # @return [Boolean] True if delete succeeds, false otherwise
314
+ def delete
315
+
316
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
317
+
318
+
319
+
320
+
321
+ @version.delete('DELETE', @uri, headers: headers)
322
+ end
323
+
324
+ ##
325
+ # Delete the CompositionHookInstanceMetadata
326
+ # @return [Boolean] True if delete succeeds, false otherwise
327
+ def delete_with_metadata
328
+
329
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
330
+
331
+
332
+
333
+ response = @version.delete_with_metadata('DELETE', @uri, headers: headers)
334
+ compositionHook_instance = CompositionHookInstance.new(
335
+ @version,
336
+ response.body,
337
+ account_sid: @solution[:account_sid],
338
+ sid: @solution[:sid],
339
+ )
340
+ CompositionHookInstanceMetadata.new(@version, compositionHook_instance, response.headers, response.status_code)
341
+ end
342
+
343
+ ##
344
+ # Fetch the CompositionHookInstance
345
+ # @return [CompositionHookInstance] Fetched CompositionHookInstance
346
+ def fetch
347
+
348
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
349
+
350
+
351
+
352
+
353
+
354
+ payload = @version.fetch('GET', @uri, headers: headers)
355
+ CompositionHookInstance.new(
356
+ @version,
357
+ payload,
358
+ sid: @solution[:sid],
359
+ )
360
+ end
361
+
362
+ ##
363
+ # Fetch the CompositionHookInstanceMetadata
364
+ # @return [CompositionHookInstance] Fetched CompositionHookInstance
365
+ def fetch_with_metadata
366
+
367
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
368
+
369
+
370
+
371
+
372
+
373
+ response = @version.fetch_with_metadata('GET', @uri, headers: headers)
374
+ composition_hook_instance = CompositionHookInstance.new(
375
+ @version,
376
+ response.body,
377
+ sid: @solution[:sid],
378
+ )
379
+ CompositionHookInstanceMetadata.new(
380
+ @version,
381
+ composition_hook_instance,
382
+ response.headers,
383
+ response.status_code
384
+ )
385
+ end
386
+
387
+ ##
388
+ # Update the CompositionHookInstance
389
+ # @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.
390
+ # @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.
391
+ # @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.
392
+ # @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`.
393
+ # @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.
394
+ # @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.
395
+ # @param [Format] format
396
+ # @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.
397
+ # @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.
398
+ # @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`.
399
+ # @return [CompositionHookInstance] Updated CompositionHookInstance
400
+ def update(
401
+ friendly_name: nil,
402
+ enabled: :unset,
403
+ video_layout: :unset,
404
+ audio_sources: :unset,
405
+ audio_sources_excluded: :unset,
406
+ trim: :unset,
407
+ format: :unset,
408
+ resolution: :unset,
409
+ status_callback: :unset,
410
+ status_callback_method: :unset
411
+ )
412
+
413
+ data = Twilio::Values.of({
414
+ 'FriendlyName' => friendly_name,
415
+ 'Enabled' => enabled,
416
+ 'VideoLayout' => Twilio.serialize_object(video_layout),
417
+ 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
418
+ 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
419
+ 'Trim' => trim,
420
+ 'Format' => format,
421
+ 'Resolution' => resolution,
422
+ 'StatusCallback' => status_callback,
423
+ 'StatusCallbackMethod' => status_callback_method,
424
+ })
425
+
426
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
427
+
428
+
429
+
430
+
431
+
432
+ payload = @version.update('POST', @uri, data: data, headers: headers)
433
+ CompositionHookInstance.new(
434
+ @version,
435
+ payload,
436
+ sid: @solution[:sid],
437
+ )
438
+ end
439
+
440
+ ##
441
+ # Update the CompositionHookInstanceMetadata
442
+ # @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.
443
+ # @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.
444
+ # @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.
445
+ # @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`.
446
+ # @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.
447
+ # @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.
448
+ # @param [Format] format
449
+ # @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.
450
+ # @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.
451
+ # @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`.
452
+ # @return [CompositionHookInstance] Updated CompositionHookInstance
453
+ def update_with_metadata(
454
+ friendly_name: nil,
455
+ enabled: :unset,
456
+ video_layout: :unset,
457
+ audio_sources: :unset,
458
+ audio_sources_excluded: :unset,
459
+ trim: :unset,
460
+ format: :unset,
461
+ resolution: :unset,
462
+ status_callback: :unset,
463
+ status_callback_method: :unset
464
+ )
465
+
466
+ data = Twilio::Values.of({
467
+ 'FriendlyName' => friendly_name,
468
+ 'Enabled' => enabled,
469
+ 'VideoLayout' => Twilio.serialize_object(video_layout),
470
+ 'AudioSources' => Twilio.serialize_list(audio_sources) { |e| e },
471
+ 'AudioSourcesExcluded' => Twilio.serialize_list(audio_sources_excluded) { |e| e },
472
+ 'Trim' => trim,
473
+ 'Format' => format,
474
+ 'Resolution' => resolution,
475
+ 'StatusCallback' => status_callback,
476
+ 'StatusCallbackMethod' => status_callback_method,
477
+ })
478
+
479
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
480
+
481
+
482
+
483
+
484
+
485
+ response = @version.update_with_metadata('POST', @uri, data: data, headers: headers)
486
+ composition_hook_instance = CompositionHookInstance.new(
487
+ @version,
488
+ response.body,
489
+ sid: @solution[:sid],
490
+ )
491
+ CompositionHookInstanceMetadata.new(
492
+ @version,
493
+ composition_hook_instance,
494
+ response.headers,
495
+ response.status_code
496
+ )
497
+ end
498
+
499
+
500
+ ##
501
+ # Provide a user friendly representation
502
+ def to_s
503
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
504
+ "#<Twilio.Video.V1.CompositionHookContext #{context}>"
505
+ end
506
+
507
+ ##
508
+ # Provide a detailed, user friendly representation
509
+ def inspect
510
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
511
+ "#<Twilio.Video.V1.CompositionHookContext #{context}>"
512
+ end
513
+ end
514
+
515
+ class CompositionHookInstanceMetadata < InstanceResourceMetadata
516
+ ##
517
+ # Initializes a new CompositionHookInstanceMetadata.
518
+ # @param [Version] version Version that contains the resource
519
+ # @param [}CompositionHookInstance] composition_hook_instance The instance associated with the metadata.
520
+ # @param [Hash] headers Header object with response headers.
521
+ # @param [Integer] status_code The HTTP status code of the response.
522
+ # @return [CompositionHookInstanceMetadata] The initialized instance with metadata.
523
+ def initialize(version, composition_hook_instance, headers, status_code)
524
+ super(version, headers, status_code)
525
+ @composition_hook_instance = composition_hook_instance
526
+ end
527
+
528
+ def composition_hook
529
+ @composition_hook_instance
530
+ end
531
+
532
+ def headers
533
+ @headers
534
+ end
535
+
536
+ def status_code
537
+ @status_code
538
+ end
539
+
540
+ def to_s
541
+ "<Twilio.Api.V2010.CompositionHookInstanceMetadata status=#{@status_code}>"
542
+ end
543
+ end
544
+
545
+ class CompositionHookListResponse < InstanceListResource
546
+ # @param [Array<CompositionHookInstance>] instance
547
+ # @param [Hash{String => Object}] headers
548
+ # @param [Integer] status_code
549
+ def initialize(version, payload, key)
550
+ @composition_hook_instance = payload.body[key].map do |data|
551
+ CompositionHookInstance.new(version, data)
552
+ end
553
+ @headers = payload.headers
554
+ @status_code = payload.status_code
555
+ end
556
+
557
+ def composition_hook_instance
558
+ @instance
559
+ end
560
+ end
561
+
562
+ class CompositionHookPage < Page
563
+ ##
564
+ # Initialize the CompositionHookPage
565
+ # @param [Version] version Version that contains the resource
566
+ # @param [Response] response Response from the API
567
+ # @param [Hash] solution Path solution for the resource
568
+ # @return [CompositionHookPage] CompositionHookPage
569
+ def initialize(version, response, solution)
570
+ super(version, response)
571
+
572
+
573
+ # Path Solution
574
+ @solution = solution
575
+ end
576
+
577
+ ##
578
+ # Build an instance of CompositionHookInstance
579
+ # @param [Hash] payload Payload response from the API
580
+ # @return [CompositionHookInstance] CompositionHookInstance
581
+ def get_instance(payload)
582
+ CompositionHookInstance.new(@version, payload)
583
+ end
584
+
585
+ ##
586
+ # Provide a user friendly representation
587
+ def to_s
588
+ '<Twilio.Video.V1.CompositionHookPage>'
589
+ end
590
+ end
591
+
592
+ class CompositionHookPageMetadata < PageMetadata
593
+ attr_reader :composition_hook_page
594
+
595
+ def initialize(version, response, solution, limit)
596
+ super(version, response)
597
+ @composition_hook_page = []
598
+ @limit = limit
599
+ key = get_key(response.body)
600
+ records = 0
601
+ while( limit != :unset && records < limit )
602
+ @composition_hook_page << CompositionHookListResponse.new(version, @payload, key, limit - records)
603
+ @payload = self.next_page
604
+ break unless @payload
605
+ records += @payload.body[key].size
606
+ end
607
+ # Path Solution
608
+ @solution = solution
609
+ end
610
+
611
+ def each
612
+ @composition_hook_page.each do |record|
613
+ yield record
614
+ end
615
+ end
616
+
617
+ def to_s
618
+ '<Twilio::REST::Video::V1PageMetadata>';
619
+ end
620
+ end
621
+ class CompositionHookListResponse < InstanceListResource
622
+
623
+ # @param [Array<CompositionHookInstance>] instance
624
+ # @param [Hash{String => Object}] headers
625
+ # @param [Integer] status_code
626
+ def initialize(version, payload, key, limit = :unset)
627
+ data_list = payload.body[key]
628
+ if limit != :unset
629
+ data_list = data_list[0, limit]
630
+ end
631
+ @composition_hook = data_list.map do |data|
632
+ CompositionHookInstance.new(version, data)
633
+ end
634
+ @headers = payload.headers
635
+ @status_code = payload.status_code
636
+ end
637
+
638
+ def composition_hook
639
+ @composition_hook
640
+ end
641
+
642
+ def headers
643
+ @headers
644
+ end
645
+
646
+ def status_code
647
+ @status_code
648
+ end
649
+ end
650
+
651
+ class CompositionHookInstance < InstanceResource
652
+ ##
653
+ # Initialize the CompositionHookInstance
654
+ # @param [Version] version Version that contains the resource
655
+ # @param [Hash] payload payload that contains response from Twilio
656
+ # @param [String] account_sid The SID of the
657
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this CompositionHook
658
+ # resource.
659
+ # @param [String] sid The SID of the Call resource to fetch.
660
+ # @return [CompositionHookInstance] CompositionHookInstance
661
+ def initialize(version, payload , sid: nil)
662
+ super(version)
663
+
664
+
665
+ # Marshaled Properties
666
+ @properties = {
667
+ 'account_sid' => payload['account_sid'],
668
+ 'friendly_name' => payload['friendly_name'],
669
+ 'enabled' => payload['enabled'],
670
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
671
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
672
+ 'sid' => payload['sid'],
673
+ 'audio_sources' => payload['audio_sources'],
674
+ 'audio_sources_excluded' => payload['audio_sources_excluded'],
675
+ 'video_layout' => payload['video_layout'],
676
+ 'resolution' => payload['resolution'],
677
+ 'trim' => payload['trim'],
678
+ 'format' => payload['format'],
679
+ 'status_callback' => payload['status_callback'],
680
+ 'status_callback_method' => payload['status_callback_method'],
681
+ 'url' => payload['url'],
682
+ }
683
+
684
+ # Context
685
+ @instance_context = nil
686
+ @params = { 'sid' => sid || @properties['sid'] , }
687
+ end
688
+
689
+ ##
690
+ # Generate an instance context for the instance, the context is capable of
691
+ # performing various actions. All instance actions are proxied to the context
692
+ # @return [CompositionHookContext] CallContext for this CallInstance
693
+ def context
694
+ unless @instance_context
695
+ @instance_context = CompositionHookContext.new(@version , @params['sid'])
696
+ end
697
+ @instance_context
698
+ end
699
+
700
+ ##
701
+ # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the CompositionHook resource.
702
+ def account_sid
703
+ @properties['account_sid']
704
+ end
705
+
706
+ ##
707
+ # @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.
708
+ def friendly_name
709
+ @properties['friendly_name']
710
+ end
711
+
712
+ ##
713
+ # @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.
714
+ def enabled
715
+ @properties['enabled']
716
+ end
717
+
718
+ ##
719
+ # @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.
720
+ def date_created
721
+ @properties['date_created']
722
+ end
723
+
724
+ ##
725
+ # @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.
726
+ def date_updated
727
+ @properties['date_updated']
728
+ end
729
+
730
+ ##
731
+ # @return [String] The unique string that we created to identify the CompositionHook resource.
732
+ def sid
733
+ @properties['sid']
734
+ end
735
+
736
+ ##
737
+ # @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
738
+ def audio_sources
739
+ @properties['audio_sources']
740
+ end
741
+
742
+ ##
743
+ # @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.
744
+ def audio_sources_excluded
745
+ @properties['audio_sources_excluded']
746
+ end
747
+
748
+ ##
749
+ # @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
750
+ def video_layout
751
+ @properties['video_layout']
752
+ end
753
+
754
+ ##
755
+ # @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`.
756
+ def resolution
757
+ @properties['resolution']
758
+ end
759
+
760
+ ##
761
+ # @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.
762
+ def trim
763
+ @properties['trim']
764
+ end
765
+
766
+ ##
767
+ # @return [Format]
768
+ def format
769
+ @properties['format']
770
+ end
771
+
772
+ ##
773
+ # @return [String] The URL we call using the `status_callback_method` to send status information to your application.
774
+ def status_callback
775
+ @properties['status_callback']
776
+ end
777
+
778
+ ##
779
+ # @return [String] The HTTP method we should use to call `status_callback`. Can be `POST` or `GET` and defaults to `POST`.
780
+ def status_callback_method
781
+ @properties['status_callback_method']
782
+ end
783
+
784
+ ##
785
+ # @return [String] The absolute URL of the resource.
786
+ def url
787
+ @properties['url']
788
+ end
789
+
790
+ ##
791
+ # Delete the CompositionHookInstance
792
+ # @return [Boolean] True if delete succeeds, false otherwise
793
+ def delete
794
+
795
+ context.delete
796
+ end
797
+
798
+ ##
799
+ # Fetch the CompositionHookInstance
800
+ # @return [CompositionHookInstance] Fetched CompositionHookInstance
801
+ def fetch
802
+
803
+ context.fetch
804
+ end
805
+
806
+ ##
807
+ # Update the CompositionHookInstance
808
+ # @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.
809
+ # @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.
810
+ # @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.
811
+ # @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`.
812
+ # @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.
813
+ # @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.
814
+ # @param [Format] format
815
+ # @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.
816
+ # @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.
817
+ # @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`.
818
+ # @return [CompositionHookInstance] Updated CompositionHookInstance
819
+ def update(
820
+ friendly_name: nil,
821
+ enabled: :unset,
822
+ video_layout: :unset,
823
+ audio_sources: :unset,
824
+ audio_sources_excluded: :unset,
825
+ trim: :unset,
826
+ format: :unset,
827
+ resolution: :unset,
828
+ status_callback: :unset,
829
+ status_callback_method: :unset
830
+ )
831
+
832
+ context.update(
833
+ friendly_name: friendly_name,
834
+ enabled: enabled,
835
+ video_layout: video_layout,
836
+ audio_sources: audio_sources,
837
+ audio_sources_excluded: audio_sources_excluded,
838
+ trim: trim,
839
+ format: format,
840
+ resolution: resolution,
841
+ status_callback: status_callback,
842
+ status_callback_method: status_callback_method,
843
+ )
844
+ end
845
+
846
+ ##
847
+ # Provide a user friendly representation
848
+ def to_s
849
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
850
+ "<Twilio.Video.V1.CompositionHookInstance #{values}>"
851
+ end
852
+
853
+ ##
854
+ # Provide a detailed, user friendly representation
855
+ def inspect
856
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
857
+ "<Twilio.Video.V1.CompositionHookInstance #{values}>"
858
+ end
859
+ end
408
860
 
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
861
  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
862
  end
654
- end
655
863
  end
656
- end
657
- end
864
+ end