twilio-ruby 5.61.2 → 6.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (677) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/pr-lint.yml +21 -0
  3. data/.github/workflows/test-and-deploy.yml +139 -0
  4. data/.gitignore +3 -0
  5. data/.rubocop.yml +1 -1
  6. data/.rubocop_todo.yml +84 -21
  7. data/CHANGES.md +893 -1
  8. data/CONTRIBUTING.md +11 -9
  9. data/LICENSE +1 -1
  10. data/Makefile +13 -8
  11. data/PULL_REQUEST_TEMPLATE.md +1 -1
  12. data/README.md +136 -44
  13. data/UPGRADE.md +10 -0
  14. data/advanced-examples/custom-http-client.md +170 -0
  15. data/cluster_spec.rb +77 -0
  16. data/lib/rack/twilio_webhook_authentication.rb +25 -1
  17. data/lib/twilio-ruby/base/client_base.rb +121 -0
  18. data/lib/twilio-ruby/framework/rest/error.rb +0 -12
  19. data/lib/twilio-ruby/http/http_client.rb +11 -6
  20. data/lib/twilio-ruby/jwt/access_token.rb +0 -59
  21. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +198 -178
  22. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +371 -332
  23. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +371 -332
  24. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +121 -114
  25. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +169 -0
  26. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +214 -192
  27. data/lib/twilio-ruby/rest/accounts/v1.rb +51 -42
  28. data/lib/twilio-ruby/rest/accounts.rb +4 -34
  29. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  30. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +370 -365
  31. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +551 -514
  32. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +615 -586
  33. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +313 -320
  34. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +394 -0
  35. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +394 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +394 -0
  37. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +394 -0
  38. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +394 -0
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +394 -0
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +394 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +432 -0
  42. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +136 -118
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +202 -194
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +252 -289
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -303
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +400 -417
  47. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +291 -342
  48. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +494 -511
  49. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +839 -634
  50. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +872 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +163 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +239 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +952 -972
  54. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +652 -717
  55. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +451 -458
  56. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +489 -493
  57. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +426 -407
  58. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +321 -351
  59. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +398 -418
  60. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +536 -554
  61. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +536 -553
  62. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +536 -553
  63. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +841 -903
  64. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +335 -302
  65. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +167 -166
  66. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +340 -350
  67. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +615 -612
  68. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +157 -138
  69. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +157 -138
  70. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +400 -399
  71. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +368 -358
  72. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +340 -338
  73. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +426 -390
  74. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +358 -380
  75. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +368 -385
  76. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +364 -372
  77. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +507 -486
  78. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +417 -408
  79. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +335 -306
  80. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +375 -368
  81. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +399 -373
  82. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +346 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/{auth_calls_mapping → auth_type_calls}/auth_calls_ip_access_control_list_mapping.rb +193 -195
  84. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +140 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/{auth_registrations_mapping → auth_type_registrations}/auth_registrations_credential_list_mapping.rb +193 -195
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +126 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +94 -103
  88. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +339 -339
  89. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +339 -338
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +649 -645
  91. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +412 -421
  92. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +399 -374
  93. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +141 -150
  94. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +171 -154
  95. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +364 -350
  96. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +314 -339
  97. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +314 -339
  98. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +314 -339
  99. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +314 -339
  100. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +314 -339
  101. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +314 -339
  102. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +314 -339
  103. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +314 -339
  104. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +381 -416
  105. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +485 -484
  106. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +112 -104
  107. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +172 -161
  108. data/lib/twilio-ruby/rest/api/v2010/account.rb +979 -943
  109. data/lib/twilio-ruby/rest/api/v2010.rb +126 -148
  110. data/lib/twilio-ruby/rest/api.rb +25 -34
  111. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  112. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +299 -279
  113. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +298 -279
  114. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +271 -248
  115. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +246 -235
  116. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +245 -218
  117. data/lib/twilio-ruby/rest/bulkexports/v1.rb +57 -55
  118. data/lib/twilio-ruby/rest/bulkexports.rb +3 -34
  119. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  120. data/lib/twilio-ruby/rest/chat/v1/credential.rb +419 -403
  121. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +374 -391
  122. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +422 -440
  123. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +438 -437
  124. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +534 -515
  125. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -367
  126. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -239
  127. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +465 -440
  128. data/lib/twilio-ruby/rest/chat/v1/service.rb +861 -894
  129. data/lib/twilio-ruby/rest/chat/v1.rb +57 -55
  130. data/lib/twilio-ruby/rest/chat/v2/credential.rb +419 -401
  131. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +371 -370
  132. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +374 -386
  133. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +486 -527
  134. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +513 -533
  135. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +440 -467
  136. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +606 -605
  137. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -369
  138. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +364 -381
  139. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +406 -413
  140. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +509 -491
  141. data/lib/twilio-ruby/rest/chat/v2/service.rb +764 -778
  142. data/lib/twilio-ruby/rest/chat/v2.rb +57 -53
  143. data/lib/twilio-ruby/rest/chat/v3/channel.rb +297 -0
  144. data/lib/twilio-ruby/rest/chat/v3.rb +71 -0
  145. data/lib/twilio-ruby/rest/chat.rb +10 -38
  146. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  147. data/lib/twilio-ruby/rest/client.rb +318 -561
  148. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +208 -0
  149. data/lib/twilio-ruby/rest/content/v1/content.rb +363 -0
  150. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +251 -0
  151. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +265 -0
  152. data/lib/twilio-ruby/rest/content/v1.rb +61 -0
  153. data/lib/twilio-ruby/rest/content.rb +15 -0
  154. data/lib/twilio-ruby/rest/content_base.rb +38 -0
  155. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +482 -0
  156. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -227
  157. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +279 -252
  158. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +334 -344
  159. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +537 -495
  160. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +498 -495
  161. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +425 -403
  162. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +620 -552
  163. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +425 -409
  164. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +304 -304
  165. data/lib/twilio-ruby/rest/conversations/v1/role.rb +384 -356
  166. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +364 -373
  167. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +300 -289
  168. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +246 -235
  169. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +307 -279
  170. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +341 -371
  171. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +544 -535
  172. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +507 -530
  173. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +434 -438
  174. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +632 -588
  175. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +310 -317
  176. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +396 -380
  177. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +446 -455
  178. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +484 -474
  179. data/lib/twilio-ruby/rest/conversations/v1/service.rb +476 -447
  180. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +445 -435
  181. data/lib/twilio-ruby/rest/conversations/v1/user.rb +472 -441
  182. data/lib/twilio-ruby/rest/conversations/v1.rb +129 -119
  183. data/lib/twilio-ruby/rest/conversations.rb +18 -34
  184. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  185. data/lib/twilio-ruby/rest/events/v1/event_type.rb +302 -288
  186. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +299 -0
  187. data/lib/twilio-ruby/rest/events/v1/schema.rb +227 -218
  188. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +114 -100
  189. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +120 -103
  190. data/lib/twilio-ruby/rest/events/v1/sink.rb +434 -408
  191. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +365 -339
  192. data/lib/twilio-ruby/rest/events/v1/subscription.rb +416 -387
  193. data/lib/twilio-ruby/rest/events/v1.rb +87 -87
  194. data/lib/twilio-ruby/rest/events.rb +5 -34
  195. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  196. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +448 -0
  197. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +365 -330
  198. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +510 -475
  199. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +563 -555
  200. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +327 -0
  201. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +228 -0
  202. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +442 -0
  203. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +358 -0
  204. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +443 -0
  205. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +361 -0
  206. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
  207. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +155 -0
  208. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +141 -0
  209. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
  210. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +251 -0
  211. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +339 -0
  212. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +406 -0
  213. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +267 -0
  214. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +187 -0
  215. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +378 -331
  216. data/lib/twilio-ruby/rest/flex_api/v1.rb +201 -76
  217. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +146 -0
  218. data/lib/twilio-ruby/rest/flex_api/v2.rb +40 -0
  219. data/lib/twilio-ruby/rest/flex_api.rb +33 -31
  220. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  221. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +244 -227
  222. data/lib/twilio-ruby/rest/frontline_api/v1.rb +42 -38
  223. data/lib/twilio-ruby/rest/frontline_api.rb +2 -34
  224. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  225. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +319 -0
  226. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +350 -0
  227. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +269 -255
  228. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +241 -225
  229. data/lib/twilio-ruby/rest/insights/v1/call.rb +260 -228
  230. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +485 -426
  231. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +488 -0
  232. data/lib/twilio-ruby/rest/insights/v1/conference.rb +505 -0
  233. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -371
  234. data/lib/twilio-ruby/rest/insights/v1/room.rb +490 -489
  235. data/lib/twilio-ruby/rest/insights/v1/setting.rb +254 -0
  236. data/lib/twilio-ruby/rest/insights/v1.rb +84 -60
  237. data/lib/twilio-ruby/rest/insights.rb +17 -31
  238. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  239. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +510 -0
  240. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +226 -0
  241. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +388 -0
  242. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +248 -0
  243. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +520 -0
  244. data/lib/twilio-ruby/rest/intelligence/v2.rb +64 -0
  245. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  246. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  247. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +419 -364
  248. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +374 -359
  249. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +422 -397
  250. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +438 -409
  251. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +534 -488
  252. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -347
  253. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -233
  254. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +465 -418
  255. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +861 -779
  256. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  257. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +419 -364
  258. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +371 -343
  259. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +374 -359
  260. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +486 -451
  261. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +513 -479
  262. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +440 -411
  263. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +606 -555
  264. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -347
  265. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +364 -351
  266. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +397 -384
  267. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +509 -467
  268. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +764 -689
  269. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -53
  270. data/lib/twilio-ruby/rest/ip_messaging.rb +3 -41
  271. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  272. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +243 -239
  273. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -39
  274. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +370 -0
  275. data/lib/twilio-ruby/rest/lookups/v2.rb +49 -0
  276. data/lib/twilio-ruby/rest/lookups.rb +2 -34
  277. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  278. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +410 -374
  279. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +404 -0
  280. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +245 -214
  281. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +422 -380
  282. data/lib/twilio-ruby/rest/media/v1.rb +72 -53
  283. data/lib/twilio-ruby/rest/media.rb +13 -34
  284. data/lib/twilio-ruby/rest/media_base.rb +38 -0
  285. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +136 -0
  286. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +358 -346
  287. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +487 -420
  288. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +189 -0
  289. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +280 -0
  290. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +289 -0
  291. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +238 -0
  292. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +155 -144
  293. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +214 -0
  294. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +196 -0
  295. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +351 -335
  296. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +329 -0
  297. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +358 -341
  298. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +358 -336
  299. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +506 -426
  300. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +121 -115
  301. data/lib/twilio-ruby/rest/messaging/v1/service.rb +767 -763
  302. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +777 -0
  303. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +106 -94
  304. data/lib/twilio-ruby/rest/messaging/v1.rb +187 -74
  305. data/lib/twilio-ruby/rest/messaging.rb +36 -35
  306. data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
  307. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +358 -0
  308. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +351 -0
  309. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +208 -0
  310. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +349 -0
  311. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +374 -0
  312. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +367 -0
  313. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +427 -0
  314. data/lib/twilio-ruby/rest/microvisor/v1.rb +94 -0
  315. data/lib/twilio-ruby/rest/microvisor.rb +24 -0
  316. data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
  317. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -395
  318. data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -390
  319. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -53
  320. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  321. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  322. data/lib/twilio-ruby/rest/notify/v1/credential.rb +421 -408
  323. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +437 -452
  324. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +313 -362
  325. data/lib/twilio-ruby/rest/notify/v1/service.rb +626 -622
  326. data/lib/twilio-ruby/rest/notify/v1.rb +57 -55
  327. data/lib/twilio-ruby/rest/notify.rb +3 -34
  328. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  329. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +224 -0
  330. data/lib/twilio-ruby/rest/numbers/v1/porting_bulk_portability.rb +229 -0
  331. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_fetch.rb +245 -0
  332. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +263 -0
  333. data/lib/twilio-ruby/rest/numbers/v1.rb +94 -0
  334. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +343 -0
  335. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +403 -0
  336. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +249 -0
  337. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +502 -0
  338. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +276 -179
  339. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +324 -298
  340. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +333 -309
  341. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +194 -181
  342. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +601 -550
  343. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +391 -351
  344. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +290 -266
  345. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +322 -307
  346. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +412 -364
  347. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +290 -266
  348. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +177 -181
  349. data/lib/twilio-ruby/rest/numbers/v2.rb +78 -28
  350. data/lib/twilio-ruby/rest/numbers.rb +2 -34
  351. data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
  352. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +410 -375
  353. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +394 -358
  354. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +449 -418
  355. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +407 -369
  356. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +494 -459
  357. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +42 -38
  358. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +370 -396
  359. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +446 -446
  360. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +610 -625
  361. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -55
  362. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +301 -298
  363. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +325 -309
  364. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +342 -330
  365. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +429 -398
  366. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -53
  367. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +378 -374
  368. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +442 -399
  369. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +434 -407
  370. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +378 -374
  371. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +419 -398
  372. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +437 -404
  373. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +378 -374
  374. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +419 -398
  375. data/lib/twilio-ruby/rest/preview/sync/service.rb +495 -452
  376. data/lib/twilio-ruby/rest/preview/sync.rb +42 -37
  377. data/lib/twilio-ruby/rest/preview/wireless/command.rb +387 -364
  378. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +448 -398
  379. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +232 -205
  380. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +574 -523
  381. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -69
  382. data/lib/twilio-ruby/rest/preview.rb +11 -137
  383. data/lib/twilio-ruby/rest/preview_base.rb +58 -0
  384. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +297 -275
  385. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +107 -119
  386. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +290 -268
  387. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +107 -119
  388. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +297 -275
  389. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +220 -197
  390. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +121 -135
  391. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  392. data/lib/twilio-ruby/rest/pricing/v2/country.rb +289 -270
  393. data/lib/twilio-ruby/rest/pricing/v2/number.rb +232 -217
  394. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +297 -275
  395. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +238 -220
  396. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +121 -138
  397. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -65
  398. data/lib/twilio-ruby/rest/pricing.rb +6 -41
  399. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  400. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +419 -403
  401. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +408 -418
  402. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +430 -449
  403. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +421 -455
  404. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +522 -547
  405. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +399 -370
  406. data/lib/twilio-ruby/rest/proxy/v1/service.rb +559 -596
  407. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -38
  408. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  409. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  410. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +268 -0
  411. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +268 -0
  412. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +268 -0
  413. data/lib/twilio-ruby/rest/routes/v2.rb +79 -0
  414. data/lib/twilio-ruby/rest/routes.rb +32 -0
  415. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  416. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +315 -323
  417. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +412 -380
  418. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +208 -208
  419. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +407 -384
  420. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +336 -338
  421. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +361 -383
  422. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +403 -396
  423. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +456 -447
  424. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +223 -234
  425. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +342 -353
  426. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +412 -380
  427. data/lib/twilio-ruby/rest/serverless/v1/service.rb +523 -493
  428. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -37
  429. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  430. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  431. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +206 -199
  432. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +221 -218
  433. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +361 -355
  434. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +422 -394
  435. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +206 -200
  436. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +221 -221
  437. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +361 -361
  438. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +468 -449
  439. data/lib/twilio-ruby/rest/studio/v1/flow.rb +380 -355
  440. data/lib/twilio-ruby/rest/studio/v1.rb +42 -37
  441. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +206 -200
  442. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +221 -221
  443. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +361 -361
  444. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +461 -442
  445. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +341 -320
  446. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +232 -0
  447. data/lib/twilio-ruby/rest/studio/v2/flow.rb +519 -472
  448. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +121 -99
  449. data/lib/twilio-ruby/rest/studio/v2.rb +48 -44
  450. data/lib/twilio-ruby/rest/studio.rb +3 -41
  451. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  452. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +403 -0
  453. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +472 -484
  454. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +398 -406
  455. data/lib/twilio-ruby/rest/supersim/v1/network.rb +302 -297
  456. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +337 -332
  457. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +380 -351
  458. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +256 -0
  459. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +242 -224
  460. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +207 -0
  461. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +460 -433
  462. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +358 -361
  463. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +286 -311
  464. data/lib/twilio-ruby/rest/supersim/v1.rb +144 -140
  465. data/lib/twilio-ruby/rest/supersim.rb +22 -40
  466. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  467. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +376 -371
  468. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +456 -423
  469. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +466 -490
  470. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +376 -370
  471. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +470 -445
  472. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +469 -495
  473. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +376 -368
  474. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +470 -444
  475. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +139 -132
  476. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +419 -400
  477. data/lib/twilio-ruby/rest/sync/v1/service.rb +575 -567
  478. data/lib/twilio-ruby/rest/sync/v1.rb +42 -37
  479. data/lib/twilio-ruby/rest/sync.rb +2 -34
  480. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  481. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +405 -395
  482. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +442 -464
  483. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +705 -736
  484. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +623 -661
  485. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +409 -382
  486. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +359 -365
  487. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +279 -275
  488. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -236
  489. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +239 -258
  490. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +574 -566
  491. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +687 -732
  492. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +389 -388
  493. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +235 -239
  494. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +281 -265
  495. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +215 -193
  496. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +251 -234
  497. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +623 -631
  498. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +359 -373
  499. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +245 -241
  500. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -244
  501. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +523 -510
  502. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +353 -354
  503. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +231 -206
  504. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +241 -234
  505. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +720 -730
  506. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -37
  507. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  508. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  509. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +342 -320
  510. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +342 -317
  511. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +440 -419
  512. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +475 -451
  513. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +224 -191
  514. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +623 -630
  515. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -38
  516. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  517. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  518. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +232 -0
  519. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +211 -0
  520. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +357 -352
  521. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +335 -323
  522. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +333 -321
  523. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +525 -513
  524. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +383 -346
  525. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +282 -261
  526. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +275 -252
  527. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +397 -359
  528. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +282 -261
  529. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +357 -352
  530. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +335 -323
  531. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +333 -321
  532. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +525 -513
  533. data/lib/twilio-ruby/rest/trusthub/v1.rb +153 -139
  534. data/lib/twilio-ruby/rest/trusthub.rb +8 -34
  535. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  536. data/lib/twilio-ruby/rest/verify/v2/form.rb +195 -183
  537. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +231 -0
  538. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +265 -116
  539. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +191 -198
  540. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +496 -521
  541. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +447 -454
  542. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +249 -279
  543. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +422 -422
  544. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +379 -363
  545. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +401 -388
  546. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +420 -384
  547. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +380 -359
  548. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +218 -198
  549. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +447 -420
  550. data/lib/twilio-ruby/rest/verify/v2/service.rb +782 -770
  551. data/lib/twilio-ruby/rest/verify/v2/template.rb +221 -198
  552. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +372 -319
  553. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +247 -0
  554. data/lib/twilio-ruby/rest/verify/v2.rb +99 -78
  555. data/lib/twilio-ruby/rest/verify.rb +23 -36
  556. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  557. data/lib/twilio-ruby/rest/video/v1/composition.rb +477 -486
  558. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +525 -647
  559. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +281 -261
  560. data/lib/twilio-ruby/rest/video/v1/recording.rb +426 -405
  561. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +281 -261
  562. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +259 -0
  563. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +331 -0
  564. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +181 -0
  565. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +338 -0
  566. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +498 -0
  567. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +170 -0
  568. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +423 -0
  569. data/lib/twilio-ruby/rest/video/v1/room.rb +606 -567
  570. data/lib/twilio-ruby/rest/video/v1.rb +99 -99
  571. data/lib/twilio-ruby/rest/video.rb +7 -34
  572. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  573. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +168 -0
  574. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +501 -486
  575. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +440 -434
  576. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +391 -352
  577. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +135 -121
  578. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +195 -183
  579. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +375 -397
  580. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +217 -190
  581. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +122 -121
  582. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +377 -339
  583. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +360 -319
  584. data/lib/twilio-ruby/rest/voice/v1.rb +130 -96
  585. data/lib/twilio-ruby/rest/voice.rb +12 -31
  586. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  587. data/lib/twilio-ruby/rest/wireless/v1/command.rb +408 -406
  588. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +463 -436
  589. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +298 -284
  590. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +239 -243
  591. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +634 -647
  592. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +226 -221
  593. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -76
  594. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  595. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  596. data/lib/twilio-ruby/rest.rb +1 -0
  597. data/lib/twilio-ruby/security/request_validator.rb +1 -1
  598. data/lib/twilio-ruby/twiml/voice_response.rb +209 -42
  599. data/lib/twilio-ruby/version.rb +1 -1
  600. data/lib/twilio-ruby.rb +1 -1
  601. data/sonar-project.properties +2 -2
  602. data/twilio-ruby.gemspec +2 -3
  603. metadata +155 -98
  604. data/.github/workflows/deploy.yml +0 -65
  605. data/.github/workflows/test.yml +0 -52
  606. data/conf/cacert.pem +0 -3376
  607. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  608. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -500
  609. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -500
  610. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -500
  611. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -500
  612. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -500
  613. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -500
  614. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -500
  615. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -464
  616. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -348
  617. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  618. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  619. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -220
  620. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -214
  621. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -399
  622. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -418
  623. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -392
  624. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -469
  625. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -218
  626. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -386
  627. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -456
  628. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -255
  629. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -237
  630. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -507
  631. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -420
  632. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -650
  633. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +0 -194
  634. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -52
  635. data/lib/twilio-ruby/rest/autopilot.rb +0 -53
  636. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +0 -290
  637. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -314
  638. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -536
  639. data/lib/twilio-ruby/rest/fax/v1.rb +0 -45
  640. data/lib/twilio-ruby/rest/fax.rb +0 -47
  641. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -307
  642. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +0 -164
  643. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -294
  644. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +0 -275
  645. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +0 -249
  646. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -251
  647. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -234
  648. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -62
  649. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +0 -165
  650. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +0 -225
  651. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +0 -195
  652. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +0 -186
  653. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -277
  654. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -65
  655. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -212
  656. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -212
  657. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -206
  658. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -386
  659. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -407
  660. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -380
  661. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -437
  662. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -212
  663. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -373
  664. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -428
  665. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -241
  666. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -225
  667. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -495
  668. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -629
  669. data/lib/twilio-ruby/rest/preview/understand.rb +0 -45
  670. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +0 -199
  671. data/lib/twilio-ruby/rest/supersim/v1/command.rb +0 -368
  672. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -406
  673. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -335
  674. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -175
  675. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -340
  676. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -483
  677. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +0 -144
@@ -1,577 +1,616 @@
1
1
  ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
6
  #
7
- # frozen_string_literal: true
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.
13
+ #
14
+
8
15
 
9
16
  module Twilio
10
- module REST
11
- class Video < Domain
12
- class V1 < Version
13
- class RoomList < ListResource
14
- ##
15
- # Initialize the RoomList
16
- # @param [Version] version Version that contains the resource
17
- # @return [RoomList] RoomList
18
- def initialize(version)
19
- super(version)
20
-
21
- # Path Solution
22
- @solution = {}
23
- @uri = "/Rooms"
24
- end
25
-
26
- ##
27
- # Create the RoomInstance
28
- # @param [Boolean] enable_turn Deprecated, now always considered to be true.
29
- # @param [room.RoomType] type The type of room. Can be: `go`, `peer-to-peer`,
30
- # `group-small`, or `group`. The default value is `group`.
31
- # @param [String] unique_name An application-defined string that uniquely
32
- # identifies the resource. It can be used as a `room_sid` in place of the
33
- # resource's `sid` in the URL to address the resource. This value is unique for
34
- # `in-progress` rooms. SDK clients can use this name to connect to the room. REST
35
- # API clients can use this name in place of the Room SID to interact with the room
36
- # as long as the room is `in-progress`.
37
- # @param [String] status_callback The URL we should call using the
38
- # `status_callback_method` to send status information to your application on every
39
- # room event. See {Status
40
- # Callbacks}[https://www.twilio.com/docs/video/api/status-callbacks] for more
41
- # info.
42
- # @param [String] status_callback_method The HTTP method we should use to call
43
- # `status_callback`. Can be `POST` or `GET`.
44
- # @param [String] max_participants The maximum number of concurrent Participants
45
- # allowed in the room. Peer-to-peer rooms can have up to 10 Participants. Small
46
- # Group rooms can have up to 4 Participants. Group rooms can have up to 50
47
- # Participants.
48
- # @param [Boolean] record_participants_on_connect Whether to start recording when
49
- # Participants connect. ***This feature is not available in `peer-to-peer`
50
- # rooms.***
51
- # @param [Array[room.VideoCodec]] video_codecs An array of the video codecs that
52
- # are supported when publishing a track in the room. Can be: `VP8` and `H264`.
53
- # ***This feature is not available in `peer-to-peer` rooms***
54
- # @param [String] media_region The region for the media server in Group Rooms.
55
- # Can be: one of the {available Media
56
- # Regions}[https://www.twilio.com/docs/video/ip-address-whitelisting#group-rooms-media-servers].
57
- # ***This feature is not available in `peer-to-peer` rooms.***
58
- # @param [Hash] recording_rules A collection of Recording Rules that describe how
59
- # to include or exclude matching tracks for recording
60
- # @param [Boolean] audio_only When set to true, indicates that the participants in
61
- # the room will only publish audio. No video tracks will be allowed. Group rooms
62
- # only.
63
- # @param [String] max_participant_duration The maximum number of seconds a
64
- # Participant can be connected to the room. The maximum possible value is 86400
65
- # seconds (24 hours). The default is 14400 seconds (4 hours).
66
- # @return [RoomInstance] Created RoomInstance
67
- def create(enable_turn: :unset, type: :unset, unique_name: :unset, status_callback: :unset, status_callback_method: :unset, max_participants: :unset, record_participants_on_connect: :unset, video_codecs: :unset, media_region: :unset, recording_rules: :unset, audio_only: :unset, max_participant_duration: :unset)
68
- data = Twilio::Values.of({
69
- 'EnableTurn' => enable_turn,
70
- 'Type' => type,
71
- 'UniqueName' => unique_name,
72
- 'StatusCallback' => status_callback,
73
- 'StatusCallbackMethod' => status_callback_method,
74
- 'MaxParticipants' => max_participants,
75
- 'RecordParticipantsOnConnect' => record_participants_on_connect,
76
- 'VideoCodecs' => Twilio.serialize_list(video_codecs) { |e| e },
77
- 'MediaRegion' => media_region,
78
- 'RecordingRules' => Twilio.serialize_object(recording_rules),
79
- 'AudioOnly' => audio_only,
80
- 'MaxParticipantDuration' => max_participant_duration,
81
- })
82
-
83
- payload = @version.create('POST', @uri, data: data)
84
-
85
- RoomInstance.new(@version, payload, )
86
- end
87
-
88
- ##
89
- # Lists RoomInstance records from the API as a list.
90
- # Unlike stream(), this operation is eager and will load `limit` records into
91
- # memory before returning.
92
- # @param [room.RoomStatus] status Read only the rooms with this status. Can be:
93
- # `in-progress` (default) or `completed`
94
- # @param [String] unique_name Read only rooms with the this `unique_name`.
95
- # @param [Time] date_created_after Read only rooms that started on or after this
96
- # date, given as `YYYY-MM-DD`.
97
- # @param [Time] date_created_before Read only rooms that started before this date,
98
- # given as `YYYY-MM-DD`.
99
- # @param [Integer] limit Upper limit for the number of records to return. stream()
100
- # guarantees to never return more than limit. Default is no limit
101
- # @param [Integer] page_size Number of records to fetch per request, when
102
- # not set will use the default value of 50 records. If no page_size is defined
103
- # but a limit is defined, stream() will attempt to read the limit with the most
104
- # efficient page size, i.e. min(limit, 1000)
105
- # @return [Array] Array of up to limit results
106
- def list(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
107
- self.stream(
108
- status: status,
109
- unique_name: unique_name,
110
- date_created_after: date_created_after,
111
- date_created_before: date_created_before,
112
- limit: limit,
113
- page_size: page_size
114
- ).entries
115
- end
116
-
117
- ##
118
- # Streams RoomInstance records from the API as an Enumerable.
119
- # This operation lazily loads records as efficiently as possible until the limit
120
- # is reached.
121
- # @param [room.RoomStatus] status Read only the rooms with this status. Can be:
122
- # `in-progress` (default) or `completed`
123
- # @param [String] unique_name Read only rooms with the this `unique_name`.
124
- # @param [Time] date_created_after Read only rooms that started on or after this
125
- # date, given as `YYYY-MM-DD`.
126
- # @param [Time] date_created_before Read only rooms that started before this date,
127
- # given as `YYYY-MM-DD`.
128
- # @param [Integer] limit Upper limit for the number of records to return. stream()
129
- # guarantees to never return more than limit. Default is no limit.
130
- # @param [Integer] page_size Number of records to fetch per request, when
131
- # not set will use the default value of 50 records. If no page_size is defined
132
- # but a limit is defined, stream() will attempt to read the limit with the most
133
- # efficient page size, i.e. min(limit, 1000)
134
- # @return [Enumerable] Enumerable that will yield up to limit results
135
- def stream(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
136
- limits = @version.read_limits(limit, page_size)
137
-
138
- page = self.page(
139
- status: status,
140
- unique_name: unique_name,
141
- date_created_after: date_created_after,
142
- date_created_before: date_created_before,
143
- page_size: limits[:page_size],
144
- )
145
-
146
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
147
- end
148
-
149
- ##
150
- # When passed a block, yields RoomInstance records from the API.
151
- # This operation lazily loads records as efficiently as possible until the limit
152
- # is reached.
153
- def each
154
- limits = @version.read_limits
155
-
156
- page = self.page(page_size: limits[:page_size], )
157
-
158
- @version.stream(page,
17
+ module REST
18
+ class Video < VideoBase
19
+ class V1 < Version
20
+ class RoomList < ListResource
21
+ ##
22
+ # Initialize the RoomList
23
+ # @param [Version] version Version that contains the resource
24
+ # @return [RoomList] RoomList
25
+ def initialize(version)
26
+ super(version)
27
+ # Path Solution
28
+ @solution = { }
29
+ @uri = "/Rooms"
30
+
31
+ end
32
+ ##
33
+ # Create the RoomInstance
34
+ # @param [Boolean] enable_turn Deprecated, now always considered to be true.
35
+ # @param [RoomType] type
36
+ # @param [String] unique_name An application-defined string that uniquely identifies the resource. It can be used as a `room_sid` in place of the resource's `sid` in the URL to address the resource, assuming it does not contain any [reserved characters](https://tools.ietf.org/html/rfc3986#section-2.2) that would need to be URL encoded. This value is unique for `in-progress` rooms. SDK clients can use this name to connect to the room. REST API clients can use this name in place of the Room SID to interact with the room as long as the room is `in-progress`.
37
+ # @param [String] status_callback The URL we should call using the `status_callback_method` to send status information to your application on every room event. See [Status Callbacks](https://www.twilio.com/docs/video/api/status-callbacks) for more info.
38
+ # @param [String] status_callback_method The HTTP method we should use to call `status_callback`. Can be `POST` or `GET`.
39
+ # @param [String] max_participants The maximum number of concurrent Participants allowed in the room. Peer-to-peer rooms can have up to 10 Participants. Small Group rooms can have up to 4 Participants. Group rooms can have up to 50 Participants.
40
+ # @param [Boolean] record_participants_on_connect Whether to start recording when Participants connect. ***This feature is not available in `peer-to-peer` rooms.***
41
+ # @param [Array[VideoCodec]] video_codecs An array of the video codecs that are supported when publishing a track in the room. Can be: `VP8` and `H264`. ***This feature is not available in `peer-to-peer` rooms***
42
+ # @param [String] media_region The region for the media server in Group Rooms. Can be: one of the [available Media Regions](https://www.twilio.com/docs/video/ip-addresses#group-rooms-media-servers). ***This feature is not available in `peer-to-peer` rooms.***
43
+ # @param [Object] recording_rules A collection of Recording Rules that describe how to include or exclude matching tracks for recording
44
+ # @param [Boolean] audio_only When set to true, indicates that the participants in the room will only publish audio. No video tracks will be allowed. Group rooms only.
45
+ # @param [String] max_participant_duration The maximum number of seconds a Participant can be connected to the room. The maximum possible value is 86400 seconds (24 hours). The default is 14400 seconds (4 hours).
46
+ # @param [String] empty_room_timeout Configures how long (in minutes) a room will remain active after last participant leaves. Valid values range from 1 to 60 minutes (no fractions).
47
+ # @param [String] unused_room_timeout Configures how long (in minutes) a room will remain active if no one joins. Valid values range from 1 to 60 minutes (no fractions).
48
+ # @param [Boolean] large_room When set to true, indicated that this is the large room.
49
+ # @return [RoomInstance] Created RoomInstance
50
+ def create(
51
+ enable_turn: :unset,
52
+ type: :unset,
53
+ unique_name: :unset,
54
+ status_callback: :unset,
55
+ status_callback_method: :unset,
56
+ max_participants: :unset,
57
+ record_participants_on_connect: :unset,
58
+ video_codecs: :unset,
59
+ media_region: :unset,
60
+ recording_rules: :unset,
61
+ audio_only: :unset,
62
+ max_participant_duration: :unset,
63
+ empty_room_timeout: :unset,
64
+ unused_room_timeout: :unset,
65
+ large_room: :unset
66
+ )
67
+
68
+ data = Twilio::Values.of({
69
+ 'EnableTurn' => enable_turn,
70
+ 'Type' => type,
71
+ 'UniqueName' => unique_name,
72
+ 'StatusCallback' => status_callback,
73
+ 'StatusCallbackMethod' => status_callback_method,
74
+ 'MaxParticipants' => max_participants,
75
+ 'RecordParticipantsOnConnect' => record_participants_on_connect,
76
+ 'VideoCodecs' => Twilio.serialize_list(video_codecs) { |e| e },
77
+ 'MediaRegion' => media_region,
78
+ 'RecordingRules' => Twilio.serialize_object(recording_rules),
79
+ 'AudioOnly' => audio_only,
80
+ 'MaxParticipantDuration' => max_participant_duration,
81
+ 'EmptyRoomTimeout' => empty_room_timeout,
82
+ 'UnusedRoomTimeout' => unused_room_timeout,
83
+ 'LargeRoom' => large_room,
84
+ })
85
+
86
+ payload = @version.create('POST', @uri, data: data)
87
+ RoomInstance.new(
88
+ @version,
89
+ payload,
90
+ )
91
+ end
92
+
93
+
94
+ ##
95
+ # Lists RoomInstance records from the API as a list.
96
+ # Unlike stream(), this operation is eager and will load `limit` records into
97
+ # memory before returning.
98
+ # @param [RoomStatus] status Read only the rooms with this status. Can be: `in-progress` (default) or `completed`
99
+ # @param [String] unique_name Read only rooms with the this `unique_name`.
100
+ # @param [Time] date_created_after Read only rooms that started on or after this date, given as `YYYY-MM-DD`.
101
+ # @param [Time] date_created_before Read only rooms that started before this date, given as `YYYY-MM-DD`.
102
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
103
+ # guarantees to never return more than limit. Default is no limit
104
+ # @param [Integer] page_size Number of records to fetch per request, when
105
+ # not set will use the default value of 50 records. If no page_size is defined
106
+ # but a limit is defined, stream() will attempt to read the limit with the most
107
+ # efficient page size, i.e. min(limit, 1000)
108
+ # @return [Array] Array of up to limit results
109
+ def list(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
110
+ self.stream(
111
+ status: status,
112
+ unique_name: unique_name,
113
+ date_created_after: date_created_after,
114
+ date_created_before: date_created_before,
115
+ limit: limit,
116
+ page_size: page_size
117
+ ).entries
118
+ end
119
+
120
+ ##
121
+ # Streams Instance records from the API as an Enumerable.
122
+ # This operation lazily loads records as efficiently as possible until the limit
123
+ # is reached.
124
+ # @param [RoomStatus] status Read only the rooms with this status. Can be: `in-progress` (default) or `completed`
125
+ # @param [String] unique_name Read only rooms with the this `unique_name`.
126
+ # @param [Time] date_created_after Read only rooms that started on or after this date, given as `YYYY-MM-DD`.
127
+ # @param [Time] date_created_before Read only rooms that started before this date, given as `YYYY-MM-DD`.
128
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
129
+ # guarantees to never return more than limit. Default is no limit
130
+ # @param [Integer] page_size Number of records to fetch per request, when
131
+ # not set will use the default value of 50 records. If no page_size is defined
132
+ # but a limit is defined, stream() will attempt to read the limit with the most
133
+ # efficient page size, i.e. min(limit, 1000)
134
+ # @return [Enumerable] Enumerable that will yield up to limit results
135
+ def stream(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
136
+ limits = @version.read_limits(limit, page_size)
137
+
138
+ page = self.page(
139
+ status: status,
140
+ unique_name: unique_name,
141
+ date_created_after: date_created_after,
142
+ date_created_before: date_created_before,
143
+ page_size: limits[:page_size], )
144
+
145
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
146
+ end
147
+
148
+ ##
149
+ # When passed a block, yields RoomInstance records from the API.
150
+ # This operation lazily loads records as efficiently as possible until the limit
151
+ # is reached.
152
+ def each
153
+ limits = @version.read_limits
154
+
155
+ page = self.page(page_size: limits[:page_size], )
156
+
157
+ @version.stream(page,
159
158
  limit: limits[:limit],
160
159
  page_limit: limits[:page_limit]).each {|x| yield x}
161
- end
162
-
163
- ##
164
- # Retrieve a single page of RoomInstance records from the API.
165
- # Request is executed immediately.
166
- # @param [room.RoomStatus] status Read only the rooms with this status. Can be:
167
- # `in-progress` (default) or `completed`
168
- # @param [String] unique_name Read only rooms with the this `unique_name`.
169
- # @param [Time] date_created_after Read only rooms that started on or after this
170
- # date, given as `YYYY-MM-DD`.
171
- # @param [Time] date_created_before Read only rooms that started before this date,
172
- # given as `YYYY-MM-DD`.
173
- # @param [String] page_token PageToken provided by the API
174
- # @param [Integer] page_number Page Number, this value is simply for client state
175
- # @param [Integer] page_size Number of records to return, defaults to 50
176
- # @return [Page] Page of RoomInstance
177
- def page(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
178
- params = Twilio::Values.of({
179
- 'Status' => status,
180
- 'UniqueName' => unique_name,
181
- 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
182
- 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
183
- 'PageToken' => page_token,
184
- 'Page' => page_number,
185
- 'PageSize' => page_size,
186
- })
187
-
188
- response = @version.page('GET', @uri, params: params)
189
-
190
- RoomPage.new(@version, response, @solution)
191
- end
192
-
193
- ##
194
- # Retrieve a single page of RoomInstance records from the API.
195
- # Request is executed immediately.
196
- # @param [String] target_url API-generated URL for the requested results page
197
- # @return [Page] Page of RoomInstance
198
- def get_page(target_url)
199
- response = @version.domain.request(
200
- 'GET',
201
- target_url
202
- )
203
- RoomPage.new(@version, response, @solution)
204
- end
205
-
206
- ##
207
- # Provide a user friendly representation
208
- def to_s
209
- '#<Twilio.Video.V1.RoomList>'
210
- end
211
- end
212
-
213
- class RoomPage < Page
214
- ##
215
- # Initialize the RoomPage
216
- # @param [Version] version Version that contains the resource
217
- # @param [Response] response Response from the API
218
- # @param [Hash] solution Path solution for the resource
219
- # @return [RoomPage] RoomPage
220
- def initialize(version, response, solution)
221
- super(version, response)
222
-
223
- # Path Solution
224
- @solution = solution
225
- end
226
-
227
- ##
228
- # Build an instance of RoomInstance
229
- # @param [Hash] payload Payload response from the API
230
- # @return [RoomInstance] RoomInstance
231
- def get_instance(payload)
232
- RoomInstance.new(@version, payload, )
233
- end
234
-
235
- ##
236
- # Provide a user friendly representation
237
- def to_s
238
- '<Twilio.Video.V1.RoomPage>'
239
- end
240
- end
241
-
242
- class RoomContext < InstanceContext
243
- ##
244
- # Initialize the RoomContext
245
- # @param [Version] version Version that contains the resource
246
- # @param [String] sid The SID of the Room resource to fetch.
247
- # @return [RoomContext] RoomContext
248
- def initialize(version, sid)
249
- super(version)
250
-
251
- # Path Solution
252
- @solution = {sid: sid, }
253
- @uri = "/Rooms/#{@solution[:sid]}"
254
-
255
- # Dependents
256
- @recordings = nil
257
- @participants = nil
258
- @recording_rules = nil
259
- end
260
-
261
- ##
262
- # Fetch the RoomInstance
263
- # @return [RoomInstance] Fetched RoomInstance
264
- def fetch
265
- payload = @version.fetch('GET', @uri)
266
-
267
- RoomInstance.new(@version, payload, sid: @solution[:sid], )
268
- end
269
-
270
- ##
271
- # Update the RoomInstance
272
- # @param [room.RoomStatus] status The new status of the resource. Set to
273
- # `completed` to end the room.
274
- # @return [RoomInstance] Updated RoomInstance
275
- def update(status: nil)
276
- data = Twilio::Values.of({'Status' => status, })
277
-
278
- payload = @version.update('POST', @uri, data: data)
279
-
280
- RoomInstance.new(@version, payload, sid: @solution[:sid], )
281
- end
282
-
283
- ##
284
- # Access the recordings
285
- # @return [RoomRecordingList]
286
- # @return [RoomRecordingContext] if sid was passed.
287
- def recordings(sid=:unset)
288
- raise ArgumentError, 'sid cannot be nil' if sid.nil?
289
-
290
- if sid != :unset
291
- return RoomRecordingContext.new(@version, @solution[:sid], sid, )
292
- end
293
-
294
- unless @recordings
295
- @recordings = RoomRecordingList.new(@version, room_sid: @solution[:sid], )
296
- end
297
-
298
- @recordings
299
- end
300
-
301
- ##
302
- # Access the participants
303
- # @return [ParticipantList]
304
- # @return [ParticipantContext] if sid was passed.
305
- def participants(sid=:unset)
306
- raise ArgumentError, 'sid cannot be nil' if sid.nil?
307
-
308
- if sid != :unset
309
- return ParticipantContext.new(@version, @solution[:sid], sid, )
310
- end
311
-
312
- unless @participants
313
- @participants = ParticipantList.new(@version, room_sid: @solution[:sid], )
314
- end
315
-
316
- @participants
317
- end
318
-
319
- ##
320
- # Access the recording_rules
321
- # @return [RecordingRulesList]
322
- # @return [RecordingRulesContext]
323
- def recording_rules
324
- unless @recording_rules
325
- @recording_rules = RecordingRulesList.new(@version, room_sid: @solution[:sid], )
326
- end
327
-
328
- @recording_rules
329
- end
330
-
331
- ##
332
- # Provide a user friendly representation
333
- def to_s
334
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
335
- "#<Twilio.Video.V1.RoomContext #{context}>"
336
- end
337
-
338
- ##
339
- # Provide a detailed, user friendly representation
340
- def inspect
341
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
342
- "#<Twilio.Video.V1.RoomContext #{context}>"
343
- end
344
- end
160
+ end
161
+
162
+ ##
163
+ # Retrieve a single page of RoomInstance records from the API.
164
+ # Request is executed immediately.
165
+ # @param [RoomStatus] status Read only the rooms with this status. Can be: `in-progress` (default) or `completed`
166
+ # @param [String] unique_name Read only rooms with the this `unique_name`.
167
+ # @param [Time] date_created_after Read only rooms that started on or after this date, given as `YYYY-MM-DD`.
168
+ # @param [Time] date_created_before Read only rooms that started before this date, given as `YYYY-MM-DD`.
169
+ # @param [String] page_token PageToken provided by the API
170
+ # @param [Integer] page_number Page Number, this value is simply for client state
171
+ # @param [Integer] page_size Number of records to return, defaults to 50
172
+ # @return [Page] Page of RoomInstance
173
+ def page(status: :unset, unique_name: :unset, date_created_after: :unset, date_created_before: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
174
+ params = Twilio::Values.of({
175
+ 'Status' => status,
176
+ 'UniqueName' => unique_name,
177
+ 'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
178
+ 'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
179
+ 'PageToken' => page_token,
180
+ 'Page' => page_number,
181
+ 'PageSize' => page_size,
182
+ })
183
+
184
+ response = @version.page('GET', @uri, params: params)
185
+
186
+ RoomPage.new(@version, response, @solution)
187
+ end
188
+
189
+ ##
190
+ # Retrieve a single page of RoomInstance records from the API.
191
+ # Request is executed immediately.
192
+ # @param [String] target_url API-generated URL for the requested results page
193
+ # @return [Page] Page of RoomInstance
194
+ def get_page(target_url)
195
+ response = @version.domain.request(
196
+ 'GET',
197
+ target_url
198
+ )
199
+ RoomPage.new(@version, response, @solution)
200
+ end
201
+
202
+
203
+
204
+ # Provide a user friendly representation
205
+ def to_s
206
+ '#<Twilio.Video.V1.RoomList>'
207
+ end
208
+ end
209
+
210
+
211
+ class RoomContext < InstanceContext
212
+ ##
213
+ # Initialize the RoomContext
214
+ # @param [Version] version Version that contains the resource
215
+ # @param [String] sid The SID of the Room resource to update.
216
+ # @return [RoomContext] RoomContext
217
+ def initialize(version, sid)
218
+ super(version)
219
+
220
+ # Path Solution
221
+ @solution = { sid: sid, }
222
+ @uri = "/Rooms/#{@solution[:sid]}"
223
+
224
+ # Dependents
225
+ @recording_rules = nil
226
+ @participants = nil
227
+ @recordings = nil
228
+ end
229
+ ##
230
+ # Fetch the RoomInstance
231
+ # @return [RoomInstance] Fetched RoomInstance
232
+ def fetch
233
+
234
+ payload = @version.fetch('GET', @uri)
235
+ RoomInstance.new(
236
+ @version,
237
+ payload,
238
+ sid: @solution[:sid],
239
+ )
240
+ end
241
+
242
+ ##
243
+ # Update the RoomInstance
244
+ # @param [RoomStatus] status
245
+ # @return [RoomInstance] Updated RoomInstance
246
+ def update(
247
+ status: nil
248
+ )
249
+
250
+ data = Twilio::Values.of({
251
+ 'Status' => status,
252
+ })
253
+
254
+ payload = @version.update('POST', @uri, data: data)
255
+ RoomInstance.new(
256
+ @version,
257
+ payload,
258
+ sid: @solution[:sid],
259
+ )
260
+ end
261
+
262
+ ##
263
+ # Access the recording_rules
264
+ # @return [RecordingRulesList]
265
+ # @return [RecordingRulesContext]
266
+ def recording_rules
267
+ unless @recording_rules
268
+ @recording_rules = RecordingRulesList.new(
269
+ @version, room_sid: @solution[:sid], )
270
+ end
271
+ @recording_rules
272
+ end
273
+ ##
274
+ # Access the participants
275
+ # @return [ParticipantList]
276
+ # @return [ParticipantContext] if sid was passed.
277
+ def participants(sid=:unset)
278
+
279
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
280
+
281
+ if sid != :unset
282
+ return ParticipantContext.new(@version, @solution[:sid],sid )
283
+ end
284
+
285
+ unless @participants
286
+ @participants = ParticipantList.new(
287
+ @version, room_sid: @solution[:sid], )
288
+ end
289
+
290
+ @participants
291
+ end
292
+ ##
293
+ # Access the recordings
294
+ # @return [RoomRecordingList]
295
+ # @return [RoomRecordingContext] if sid was passed.
296
+ def recordings(sid=:unset)
297
+
298
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
299
+
300
+ if sid != :unset
301
+ return RoomRecordingContext.new(@version, @solution[:sid],sid )
302
+ end
303
+
304
+ unless @recordings
305
+ @recordings = RoomRecordingList.new(
306
+ @version, room_sid: @solution[:sid], )
307
+ end
308
+
309
+ @recordings
310
+ end
311
+
312
+ ##
313
+ # Provide a user friendly representation
314
+ def to_s
315
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
316
+ "#<Twilio.Video.V1.RoomContext #{context}>"
317
+ end
318
+
319
+ ##
320
+ # Provide a detailed, user friendly representation
321
+ def inspect
322
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
323
+ "#<Twilio.Video.V1.RoomContext #{context}>"
324
+ end
325
+ end
326
+
327
+ class RoomPage < Page
328
+ ##
329
+ # Initialize the RoomPage
330
+ # @param [Version] version Version that contains the resource
331
+ # @param [Response] response Response from the API
332
+ # @param [Hash] solution Path solution for the resource
333
+ # @return [RoomPage] RoomPage
334
+ def initialize(version, response, solution)
335
+ super(version, response)
336
+
337
+ # Path Solution
338
+ @solution = solution
339
+ end
340
+
341
+ ##
342
+ # Build an instance of RoomInstance
343
+ # @param [Hash] payload Payload response from the API
344
+ # @return [RoomInstance] RoomInstance
345
+ def get_instance(payload)
346
+ RoomInstance.new(@version, payload)
347
+ end
348
+
349
+ ##
350
+ # Provide a user friendly representation
351
+ def to_s
352
+ '<Twilio.Video.V1.RoomPage>'
353
+ end
354
+ end
355
+ class RoomInstance < InstanceResource
356
+ ##
357
+ # Initialize the RoomInstance
358
+ # @param [Version] version Version that contains the resource
359
+ # @param [Hash] payload payload that contains response from Twilio
360
+ # @param [String] account_sid The SID of the
361
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this Room
362
+ # resource.
363
+ # @param [String] sid The SID of the Call resource to fetch.
364
+ # @return [RoomInstance] RoomInstance
365
+ def initialize(version, payload , sid: nil)
366
+ super(version)
367
+
368
+ # Marshaled Properties
369
+ @properties = {
370
+ 'sid' => payload['sid'],
371
+ 'status' => payload['status'],
372
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
373
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
374
+ 'account_sid' => payload['account_sid'],
375
+ 'enable_turn' => payload['enable_turn'],
376
+ 'unique_name' => payload['unique_name'],
377
+ 'status_callback' => payload['status_callback'],
378
+ 'status_callback_method' => payload['status_callback_method'],
379
+ 'end_time' => Twilio.deserialize_iso8601_datetime(payload['end_time']),
380
+ 'duration' => payload['duration'] == nil ? payload['duration'] : payload['duration'].to_i,
381
+ 'type' => payload['type'],
382
+ 'max_participants' => payload['max_participants'] == nil ? payload['max_participants'] : payload['max_participants'].to_i,
383
+ 'max_participant_duration' => payload['max_participant_duration'] == nil ? payload['max_participant_duration'] : payload['max_participant_duration'].to_i,
384
+ 'max_concurrent_published_tracks' => payload['max_concurrent_published_tracks'] == nil ? payload['max_concurrent_published_tracks'] : payload['max_concurrent_published_tracks'].to_i,
385
+ 'record_participants_on_connect' => payload['record_participants_on_connect'],
386
+ 'video_codecs' => payload['video_codecs'],
387
+ 'media_region' => payload['media_region'],
388
+ 'audio_only' => payload['audio_only'],
389
+ 'empty_room_timeout' => payload['empty_room_timeout'] == nil ? payload['empty_room_timeout'] : payload['empty_room_timeout'].to_i,
390
+ 'unused_room_timeout' => payload['unused_room_timeout'] == nil ? payload['unused_room_timeout'] : payload['unused_room_timeout'].to_i,
391
+ 'large_room' => payload['large_room'],
392
+ 'url' => payload['url'],
393
+ 'links' => payload['links'],
394
+ }
395
+
396
+ # Context
397
+ @instance_context = nil
398
+ @params = { 'sid' => sid || @properties['sid'] , }
399
+ end
400
+
401
+ ##
402
+ # Generate an instance context for the instance, the context is capable of
403
+ # performing various actions. All instance actions are proxied to the context
404
+ # @return [RoomContext] CallContext for this CallInstance
405
+ def context
406
+ unless @instance_context
407
+ @instance_context = RoomContext.new(@version , @params['sid'])
408
+ end
409
+ @instance_context
410
+ end
411
+
412
+ ##
413
+ # @return [String] The unique string that we created to identify the Room resource.
414
+ def sid
415
+ @properties['sid']
416
+ end
417
+
418
+ ##
419
+ # @return [RoomStatus]
420
+ def status
421
+ @properties['status']
422
+ end
423
+
424
+ ##
425
+ # @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.
426
+ def date_created
427
+ @properties['date_created']
428
+ end
429
+
430
+ ##
431
+ # @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.
432
+ def date_updated
433
+ @properties['date_updated']
434
+ end
435
+
436
+ ##
437
+ # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Room resource.
438
+ def account_sid
439
+ @properties['account_sid']
440
+ end
441
+
442
+ ##
443
+ # @return [Boolean] Deprecated, now always considered to be true.
444
+ def enable_turn
445
+ @properties['enable_turn']
446
+ end
447
+
448
+ ##
449
+ # @return [String] An application-defined string that uniquely identifies the resource. It can be used as a `room_sid` in place of the resource's `sid` in the URL to address the resource, assuming it does not contain any [reserved characters](https://tools.ietf.org/html/rfc3986#section-2.2) that would need to be URL encoded. This value is unique for `in-progress` rooms. SDK clients can use this name to connect to the room. REST API clients can use this name in place of the Room SID to interact with the room as long as the room is `in-progress`.
450
+ def unique_name
451
+ @properties['unique_name']
452
+ end
453
+
454
+ ##
455
+ # @return [String] The URL we call using the `status_callback_method` to send status information to your application on every room event. See [Status Callbacks](https://www.twilio.com/docs/video/api/status-callbacks) for more info.
456
+ def status_callback
457
+ @properties['status_callback']
458
+ end
459
+
460
+ ##
461
+ # @return [String] The HTTP method we use to call `status_callback`. Can be `POST` or `GET` and defaults to `POST`.
462
+ def status_callback_method
463
+ @properties['status_callback_method']
464
+ end
465
+
466
+ ##
467
+ # @return [Time] The UTC end time of the room in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format.
468
+ def end_time
469
+ @properties['end_time']
470
+ end
471
+
472
+ ##
473
+ # @return [String] The duration of the room in seconds.
474
+ def duration
475
+ @properties['duration']
476
+ end
477
+
478
+ ##
479
+ # @return [RoomType]
480
+ def type
481
+ @properties['type']
482
+ end
483
+
484
+ ##
485
+ # @return [String] The maximum number of concurrent Participants allowed in the room.
486
+ def max_participants
487
+ @properties['max_participants']
488
+ end
489
+
490
+ ##
491
+ # @return [String] The maximum number of seconds a Participant can be connected to the room. The maximum possible value is 86400 seconds (24 hours). The default is 14400 seconds (4 hours).
492
+ def max_participant_duration
493
+ @properties['max_participant_duration']
494
+ end
495
+
496
+ ##
497
+ # @return [String] The maximum number of published audio, video, and data tracks all participants combined are allowed to publish in the room at the same time. Check [Programmable Video Limits](https://www.twilio.com/docs/video/programmable-video-limits) for more details. If it is set to 0 it means unconstrained.
498
+ def max_concurrent_published_tracks
499
+ @properties['max_concurrent_published_tracks']
500
+ end
501
+
502
+ ##
503
+ # @return [Boolean] Whether to start recording when Participants connect. ***This feature is not available in `peer-to-peer` rooms.***
504
+ def record_participants_on_connect
505
+ @properties['record_participants_on_connect']
506
+ end
507
+
508
+ ##
509
+ # @return [Array<VideoCodec>] An array of the video codecs that are supported when publishing a track in the room. Can be: `VP8` and `H264`. ***This feature is not available in `peer-to-peer` rooms***
510
+ def video_codecs
511
+ @properties['video_codecs']
512
+ end
513
+
514
+ ##
515
+ # @return [String] The region for the media server in Group Rooms. Can be: one of the [available Media Regions](https://www.twilio.com/docs/video/ip-addresses#media-servers). ***This feature is not available in `peer-to-peer` rooms.***
516
+ def media_region
517
+ @properties['media_region']
518
+ end
519
+
520
+ ##
521
+ # @return [Boolean] When set to true, indicates that the participants in the room will only publish audio. No video tracks will be allowed. Group rooms only.
522
+ def audio_only
523
+ @properties['audio_only']
524
+ end
525
+
526
+ ##
527
+ # @return [String] Specifies how long (in minutes) a room will remain active after last participant leaves. Can be configured when creating a room via REST API. For Ad-Hoc rooms this value cannot be changed.
528
+ def empty_room_timeout
529
+ @properties['empty_room_timeout']
530
+ end
531
+
532
+ ##
533
+ # @return [String] Specifies how long (in minutes) a room will remain active if no one joins. Can be configured when creating a room via REST API. For Ad-Hoc rooms this value cannot be changed.
534
+ def unused_room_timeout
535
+ @properties['unused_room_timeout']
536
+ end
537
+
538
+ ##
539
+ # @return [Boolean] Indicates if this is a large room.
540
+ def large_room
541
+ @properties['large_room']
542
+ end
543
+
544
+ ##
545
+ # @return [String] The absolute URL of the resource.
546
+ def url
547
+ @properties['url']
548
+ end
549
+
550
+ ##
551
+ # @return [Hash] The URLs of related resources.
552
+ def links
553
+ @properties['links']
554
+ end
555
+
556
+ ##
557
+ # Fetch the RoomInstance
558
+ # @return [RoomInstance] Fetched RoomInstance
559
+ def fetch
560
+
561
+ context.fetch
562
+ end
563
+
564
+ ##
565
+ # Update the RoomInstance
566
+ # @param [RoomStatus] status
567
+ # @return [RoomInstance] Updated RoomInstance
568
+ def update(
569
+ status: nil
570
+ )
571
+
572
+ context.update(
573
+ status: status,
574
+ )
575
+ end
576
+
577
+ ##
578
+ # Access the recording_rules
579
+ # @return [recording_rules] recording_rules
580
+ def recording_rules
581
+ context.recording_rules
582
+ end
583
+
584
+ ##
585
+ # Access the participants
586
+ # @return [participants] participants
587
+ def participants
588
+ context.participants
589
+ end
590
+
591
+ ##
592
+ # Access the recordings
593
+ # @return [recordings] recordings
594
+ def recordings
595
+ context.recordings
596
+ end
597
+
598
+ ##
599
+ # Provide a user friendly representation
600
+ def to_s
601
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
602
+ "<Twilio.Video.V1.RoomInstance #{values}>"
603
+ end
604
+
605
+ ##
606
+ # Provide a detailed, user friendly representation
607
+ def inspect
608
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
609
+ "<Twilio.Video.V1.RoomInstance #{values}>"
610
+ end
611
+ end
345
612
 
346
- class RoomInstance < InstanceResource
347
- ##
348
- # Initialize the RoomInstance
349
- # @param [Version] version Version that contains the resource
350
- # @param [Hash] payload payload that contains response from Twilio
351
- # @param [String] sid The SID of the Room resource to fetch.
352
- # @return [RoomInstance] RoomInstance
353
- def initialize(version, payload, sid: nil)
354
- super(version)
355
-
356
- # Marshaled Properties
357
- @properties = {
358
- 'sid' => payload['sid'],
359
- 'status' => payload['status'],
360
- 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
361
- 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
362
- 'account_sid' => payload['account_sid'],
363
- 'enable_turn' => payload['enable_turn'],
364
- 'unique_name' => payload['unique_name'],
365
- 'status_callback' => payload['status_callback'],
366
- 'status_callback_method' => payload['status_callback_method'],
367
- 'end_time' => Twilio.deserialize_iso8601_datetime(payload['end_time']),
368
- 'duration' => payload['duration'] == nil ? payload['duration'] : payload['duration'].to_i,
369
- 'type' => payload['type'],
370
- 'max_participants' => payload['max_participants'].to_i,
371
- 'max_participant_duration' => payload['max_participant_duration'].to_i,
372
- 'max_concurrent_published_tracks' => payload['max_concurrent_published_tracks'] == nil ? payload['max_concurrent_published_tracks'] : payload['max_concurrent_published_tracks'].to_i,
373
- 'record_participants_on_connect' => payload['record_participants_on_connect'],
374
- 'video_codecs' => payload['video_codecs'],
375
- 'media_region' => payload['media_region'],
376
- 'audio_only' => payload['audio_only'],
377
- 'url' => payload['url'],
378
- 'links' => payload['links'],
379
- }
380
-
381
- # Context
382
- @instance_context = nil
383
- @params = {'sid' => sid || @properties['sid'], }
384
- end
385
-
386
- ##
387
- # Generate an instance context for the instance, the context is capable of
388
- # performing various actions. All instance actions are proxied to the context
389
- # @return [RoomContext] RoomContext for this RoomInstance
390
- def context
391
- unless @instance_context
392
- @instance_context = RoomContext.new(@version, @params['sid'], )
393
613
  end
394
- @instance_context
395
- end
396
-
397
- ##
398
- # @return [String] The unique string that identifies the resource
399
- def sid
400
- @properties['sid']
401
- end
402
-
403
- ##
404
- # @return [room.RoomStatus] The status of the room
405
- def status
406
- @properties['status']
407
- end
408
-
409
- ##
410
- # @return [Time] The ISO 8601 date and time in GMT when the resource was created
411
- def date_created
412
- @properties['date_created']
413
- end
414
-
415
- ##
416
- # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
417
- def date_updated
418
- @properties['date_updated']
419
- end
420
-
421
- ##
422
- # @return [String] The SID of the Account that created the resource
423
- def account_sid
424
- @properties['account_sid']
425
- end
426
-
427
- ##
428
- # @return [Boolean] Enable Twilio's Network Traversal TURN service
429
- def enable_turn
430
- @properties['enable_turn']
431
- end
432
-
433
- ##
434
- # @return [String] An application-defined string that uniquely identifies the resource
435
- def unique_name
436
- @properties['unique_name']
437
- end
438
-
439
- ##
440
- # @return [String] The URL to send status information to your application
441
- def status_callback
442
- @properties['status_callback']
443
- end
444
-
445
- ##
446
- # @return [String] The HTTP method we use to call status_callback
447
- def status_callback_method
448
- @properties['status_callback_method']
449
- end
450
-
451
- ##
452
- # @return [Time] The UTC end time of the room in UTC ISO 8601 format
453
- def end_time
454
- @properties['end_time']
455
- end
456
-
457
- ##
458
- # @return [String] The duration of the room in seconds
459
- def duration
460
- @properties['duration']
461
- end
462
-
463
- ##
464
- # @return [room.RoomType] The type of room
465
- def type
466
- @properties['type']
467
- end
468
-
469
- ##
470
- # @return [String] The maximum number of concurrent Participants allowed in the room
471
- def max_participants
472
- @properties['max_participants']
473
- end
474
-
475
- ##
476
- # @return [String] The maximum number of seconds a Participant can be connected to the room
477
- def max_participant_duration
478
- @properties['max_participant_duration']
479
- end
480
-
481
- ##
482
- # @return [String] The maximum number of published tracks allowed in the room at the same time
483
- def max_concurrent_published_tracks
484
- @properties['max_concurrent_published_tracks']
485
- end
486
-
487
- ##
488
- # @return [Boolean] Whether to start recording when Participants connect
489
- def record_participants_on_connect
490
- @properties['record_participants_on_connect']
491
- end
492
-
493
- ##
494
- # @return [Array[room.VideoCodec]] An array of the video codecs that are supported when publishing a track in the room
495
- def video_codecs
496
- @properties['video_codecs']
497
- end
498
-
499
- ##
500
- # @return [String] The region for the media server in Group Rooms
501
- def media_region
502
- @properties['media_region']
503
- end
504
-
505
- ##
506
- # @return [Boolean] Indicates whether the room will only contain audio track participants for group rooms.
507
- def audio_only
508
- @properties['audio_only']
509
- end
510
-
511
- ##
512
- # @return [String] The absolute URL of the resource
513
- def url
514
- @properties['url']
515
- end
516
-
517
- ##
518
- # @return [String] The URLs of related resources
519
- def links
520
- @properties['links']
521
- end
522
-
523
- ##
524
- # Fetch the RoomInstance
525
- # @return [RoomInstance] Fetched RoomInstance
526
- def fetch
527
- context.fetch
528
- end
529
-
530
- ##
531
- # Update the RoomInstance
532
- # @param [room.RoomStatus] status The new status of the resource. Set to
533
- # `completed` to end the room.
534
- # @return [RoomInstance] Updated RoomInstance
535
- def update(status: nil)
536
- context.update(status: status, )
537
- end
538
-
539
- ##
540
- # Access the recordings
541
- # @return [recordings] recordings
542
- def recordings
543
- context.recordings
544
- end
545
-
546
- ##
547
- # Access the participants
548
- # @return [participants] participants
549
- def participants
550
- context.participants
551
- end
552
-
553
- ##
554
- # Access the recording_rules
555
- # @return [recording_rules] recording_rules
556
- def recording_rules
557
- context.recording_rules
558
- end
559
-
560
- ##
561
- # Provide a user friendly representation
562
- def to_s
563
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
564
- "<Twilio.Video.V1.RoomInstance #{values}>"
565
- end
566
-
567
- ##
568
- # Provide a detailed, user friendly representation
569
- def inspect
570
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
571
- "<Twilio.Video.V1.RoomInstance #{values}>"
572
- end
573
614
  end
574
- end
575
615
  end
576
- end
577
- end
616
+ end