twilio-ruby 5.74.0 → 7.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (796) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +1 -1
  3. data/.github/ISSUE_TEMPLATE/bug_report.yml +69 -0
  4. data/.github/workflows/test-and-deploy.yml +20 -2
  5. data/.gitignore +4 -0
  6. data/.rubocop.yml +1 -0
  7. data/CHANGES.md +1367 -0
  8. data/CONTRIBUTING.md +11 -9
  9. data/Dockerfile +2 -1
  10. data/Gemfile +5 -0
  11. data/LICENSE +1 -1
  12. data/Makefile +6 -0
  13. data/README.md +138 -40
  14. data/UPGRADE.md +21 -0
  15. data/advanced-examples/custom-http-client.md +170 -0
  16. data/cluster/cluster_oauth_spec.rb +19 -0
  17. data/cluster/cluster_orgs_spec.rb +40 -0
  18. data/cluster/cluster_spec.rb +75 -0
  19. data/examples/public_oauth.rb +13 -0
  20. data/lib/twilio-ruby/auth_strategy/auth_strategy.rb +19 -0
  21. data/lib/twilio-ruby/auth_strategy/no_auth_strategy.rb +17 -0
  22. data/lib/twilio-ruby/auth_strategy/token_auth_strategy.rb +39 -0
  23. data/lib/twilio-ruby/base/client_base.rb +131 -0
  24. data/lib/twilio-ruby/credential/auth_type.rb +17 -0
  25. data/lib/twilio-ruby/credential/client_credential_provider.rb +28 -0
  26. data/lib/twilio-ruby/credential/credential_provider.rb +11 -0
  27. data/lib/twilio-ruby/credential/orgs_credential_provider.rb +30 -0
  28. data/lib/twilio-ruby/framework/request.rb +8 -1
  29. data/lib/twilio-ruby/framework/rest/api_v1_version.rb +22 -0
  30. data/lib/twilio-ruby/framework/rest/domain.rb +0 -1
  31. data/lib/twilio-ruby/framework/rest/error.rb +27 -12
  32. data/lib/twilio-ruby/framework/rest/page.rb +1 -0
  33. data/lib/twilio-ruby/framework/rest/page_metadata.rb +83 -0
  34. data/lib/twilio-ruby/framework/rest/resource.rb +16 -0
  35. data/lib/twilio-ruby/framework/rest/token_page.rb +73 -0
  36. data/lib/twilio-ruby/framework/rest/version.rb +91 -4
  37. data/lib/twilio-ruby/http/client_token_manager.rb +31 -0
  38. data/lib/twilio-ruby/http/http_client.rb +22 -5
  39. data/lib/twilio-ruby/http/org_token_manager.rb +31 -0
  40. data/lib/twilio-ruby/jwt/access_token.rb +0 -59
  41. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +338 -176
  42. data/lib/twilio-ruby/rest/accounts/v1/bulk_consents.rb +231 -0
  43. data/lib/twilio-ruby/rest/accounts/v1/bulk_contacts.rb +231 -0
  44. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +644 -332
  45. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +644 -332
  46. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +185 -114
  47. data/lib/twilio-ruby/rest/accounts/v1/messaging_geopermissions.rb +285 -0
  48. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +336 -0
  49. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +378 -190
  50. data/lib/twilio-ruby/rest/accounts/v1.rb +69 -42
  51. data/lib/twilio-ruby/rest/accounts.rb +4 -34
  52. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +459 -365
  54. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +886 -530
  55. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +977 -586
  56. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +482 -320
  57. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +519 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +519 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +519 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +519 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +519 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +519 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +519 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +601 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +231 -118
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +289 -192
  67. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +578 -417
  68. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +556 -364
  69. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +791 -511
  70. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +1658 -663
  71. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +1658 -663
  72. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +541 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +260 -151
  74. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +409 -240
  75. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +1368 -1050
  76. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +1124 -756
  77. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +694 -458
  78. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +719 -493
  79. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +679 -407
  80. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +483 -344
  81. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +627 -416
  82. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +737 -554
  83. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +737 -553
  84. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +737 -553
  85. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +1261 -903
  86. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +567 -302
  87. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +268 -164
  88. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +540 -350
  89. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +970 -641
  90. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +246 -125
  91. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +246 -125
  92. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +577 -399
  93. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +604 -358
  94. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +553 -338
  95. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +702 -390
  96. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +343 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +572 -378
  98. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +560 -383
  99. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +558 -372
  100. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +718 -513
  101. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +644 -408
  102. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +567 -306
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +642 -359
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +667 -371
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +579 -0
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_ip_access_control_list_mapping.rb +579 -0
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +204 -0
  108. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations/auth_registrations_credential_list_mapping.rb +579 -0
  109. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +190 -0
  110. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +158 -103
  111. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +564 -331
  112. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +564 -330
  113. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +987 -641
  114. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +694 -418
  115. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +667 -372
  116. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +205 -150
  117. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +258 -139
  118. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +557 -350
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +407 -335
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +407 -335
  121. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +407 -335
  122. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +407 -335
  123. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +407 -335
  124. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +407 -335
  125. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +407 -335
  126. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +407 -335
  127. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +478 -416
  128. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +785 -484
  129. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +176 -104
  130. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +278 -150
  131. data/lib/twilio-ruby/rest/api/v2010/account.rb +1229 -943
  132. data/lib/twilio-ruby/rest/api/v2010.rb +126 -148
  133. data/lib/twilio-ruby/rest/api.rb +25 -34
  134. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  135. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_knowledge.rb +550 -0
  136. data/lib/twilio-ruby/rest/assistants/v1/assistant/assistants_tool.rb +550 -0
  137. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +423 -0
  138. data/lib/twilio-ruby/rest/assistants/v1/assistant/message.rb +296 -0
  139. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +918 -0
  140. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +317 -0
  141. data/lib/twilio-ruby/rest/assistants/v1/knowledge/knowledge_status.rb +349 -0
  142. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +862 -0
  143. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +356 -0
  144. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +352 -0
  145. data/lib/twilio-ruby/rest/assistants/v1/session.rb +493 -0
  146. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +838 -0
  147. data/lib/twilio-ruby/rest/assistants/v1.rb +100 -0
  148. data/lib/twilio-ruby/rest/assistants.rb +6 -0
  149. data/lib/twilio-ruby/rest/assistants_base.rb +38 -0
  150. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +468 -279
  151. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +440 -279
  152. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +438 -248
  153. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +389 -235
  154. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +430 -216
  155. data/lib/twilio-ruby/rest/bulkexports/v1.rb +57 -55
  156. data/lib/twilio-ruby/rest/bulkexports.rb +3 -34
  157. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  158. data/lib/twilio-ruby/rest/chat/v1/credential.rb +719 -403
  159. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +613 -391
  160. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +704 -440
  161. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +722 -437
  162. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +822 -515
  163. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +672 -367
  164. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +331 -237
  165. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +750 -440
  166. data/lib/twilio-ruby/rest/chat/v1/service.rb +1287 -894
  167. data/lib/twilio-ruby/rest/chat/v1.rb +57 -55
  168. data/lib/twilio-ruby/rest/chat/v2/credential.rb +719 -401
  169. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +570 -370
  170. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +613 -386
  171. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +799 -527
  172. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +825 -533
  173. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +746 -467
  174. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +916 -605
  175. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +672 -369
  176. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +561 -381
  177. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +648 -419
  178. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +796 -491
  179. data/lib/twilio-ruby/rest/chat/v2/service.rb +1121 -778
  180. data/lib/twilio-ruby/rest/chat/v2.rb +57 -53
  181. data/lib/twilio-ruby/rest/chat/v3/channel.rb +444 -267
  182. data/lib/twilio-ruby/rest/chat/v3.rb +64 -41
  183. data/lib/twilio-ruby/rest/chat.rb +4 -48
  184. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  185. data/lib/twilio-ruby/rest/client.rb +338 -584
  186. data/lib/twilio-ruby/rest/content/v1/content/approval_create.rb +280 -0
  187. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +327 -173
  188. data/lib/twilio-ruby/rest/content/v1/content.rb +1909 -334
  189. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +340 -0
  190. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +354 -0
  191. data/lib/twilio-ruby/rest/content/v1.rb +54 -38
  192. data/lib/twilio-ruby/rest/content/v2/content.rb +425 -0
  193. data/lib/twilio-ruby/rest/content/v2/content_and_approvals.rb +418 -0
  194. data/lib/twilio-ruby/rest/content/v2.rb +46 -0
  195. data/lib/twilio-ruby/rest/content.rb +2 -34
  196. data/lib/twilio-ruby/rest/content_base.rb +43 -0
  197. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +798 -444
  198. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +445 -227
  199. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +467 -252
  200. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +504 -344
  201. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +852 -495
  202. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +817 -495
  203. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +725 -403
  204. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +957 -552
  205. data/lib/twilio-ruby/rest/conversations/v1/conversation_with_participants.rb +392 -0
  206. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +728 -409
  207. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +397 -304
  208. data/lib/twilio-ruby/rest/conversations/v1/role.rb +657 -356
  209. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +563 -373
  210. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +540 -312
  211. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +459 -258
  212. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +497 -279
  213. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +504 -363
  214. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +860 -533
  215. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +829 -530
  216. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +737 -438
  217. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +972 -588
  218. data/lib/twilio-ruby/rest/conversations/v1/service/conversation_with_participants.rb +399 -0
  219. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +403 -317
  220. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +672 -380
  221. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +686 -455
  222. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +773 -474
  223. data/lib/twilio-ruby/rest/conversations/v1/service.rb +724 -447
  224. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +683 -435
  225. data/lib/twilio-ruby/rest/conversations/v1/user.rb +758 -441
  226. data/lib/twilio-ruby/rest/conversations/v1.rb +135 -136
  227. data/lib/twilio-ruby/rest/conversations.rb +9 -34
  228. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  229. data/lib/twilio-ruby/rest/events/v1/event_type.rb +486 -288
  230. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +468 -0
  231. data/lib/twilio-ruby/rest/events/v1/schema.rb +366 -214
  232. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +209 -100
  233. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +222 -103
  234. data/lib/twilio-ruby/rest/events/v1/sink.rb +711 -408
  235. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +638 -339
  236. data/lib/twilio-ruby/rest/events/v1/subscription.rb +685 -387
  237. data/lib/twilio-ruby/rest/events/v1.rb +87 -87
  238. data/lib/twilio-ruby/rest/events.rb +5 -34
  239. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  240. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +687 -146
  241. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +621 -330
  242. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +722 -496
  243. data/lib/twilio-ruby/rest/flex_api/v1/create_flex_instance.rb +382 -0
  244. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +928 -570
  245. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +475 -0
  246. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +321 -0
  247. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +735 -0
  248. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +598 -0
  249. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +710 -0
  250. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +457 -0
  251. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +359 -0
  252. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +251 -0
  253. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +237 -0
  254. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +338 -0
  255. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +370 -227
  256. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +560 -319
  257. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_transfer.rb +547 -0
  258. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +637 -398
  259. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +529 -225
  260. data/lib/twilio-ruby/rest/flex_api/v1/plugin/plugin_versions.rb +621 -0
  261. data/lib/twilio-ruby/rest/flex_api/v1/plugin.rb +700 -0
  262. data/lib/twilio-ruby/rest/flex_api/v1/plugin_archive.rb +390 -0
  263. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration/configured_plugin.rb +564 -0
  264. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration.rb +599 -0
  265. data/lib/twilio-ruby/rest/flex_api/v1/plugin_configuration_archive.rb +376 -0
  266. data/lib/twilio-ruby/rest/flex_api/v1/plugin_release.rb +539 -0
  267. data/lib/twilio-ruby/rest/flex_api/v1/plugin_version_archive.rb +400 -0
  268. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +327 -0
  269. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +663 -331
  270. data/lib/twilio-ruby/rest/flex_api/v1.rb +319 -113
  271. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +515 -0
  272. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +258 -125
  273. data/lib/twilio-ruby/rest/flex_api/v2.rb +70 -28
  274. data/lib/twilio-ruby/rest/flex_api.rb +9 -47
  275. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  276. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +453 -248
  277. data/lib/twilio-ruby/rest/frontline_api/v1.rb +42 -38
  278. data/lib/twilio-ruby/rest/frontline_api.rb +2 -34
  279. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  280. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +471 -0
  281. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +320 -0
  282. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +284 -0
  283. data/lib/twilio-ruby/rest/iam/v1/o_auth_app.rb +646 -0
  284. data/lib/twilio-ruby/rest/iam/v1/token.rb +301 -0
  285. data/lib/twilio-ruby/rest/iam/v1.rb +82 -0
  286. data/lib/twilio-ruby/rest/iam.rb +6 -0
  287. data/lib/twilio-ruby/rest/iam_base.rb +33 -0
  288. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +509 -315
  289. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +499 -0
  290. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +360 -255
  291. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +333 -224
  292. data/lib/twilio-ruby/rest/insights/v1/call.rb +403 -236
  293. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +718 -433
  294. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +665 -467
  295. data/lib/twilio-ruby/rest/insights/v1/conference.rb +683 -502
  296. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +545 -371
  297. data/lib/twilio-ruby/rest/insights/v1/room.rb +668 -489
  298. data/lib/twilio-ruby/rest/insights/v1/setting.rb +435 -205
  299. data/lib/twilio-ruby/rest/insights/v1.rb +84 -83
  300. data/lib/twilio-ruby/rest/insights.rb +6 -34
  301. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  302. data/lib/twilio-ruby/rest/intelligence/v2/custom_operator.rb +720 -0
  303. data/lib/twilio-ruby/rest/intelligence/v2/operator.rb +525 -0
  304. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachment.rb +380 -0
  305. data/lib/twilio-ruby/rest/intelligence/v2/operator_attachments.rb +337 -0
  306. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +523 -0
  307. data/lib/twilio-ruby/rest/intelligence/v2/prebuilt_operator.rb +525 -0
  308. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +844 -0
  309. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_operator_results.rb +359 -0
  310. data/lib/twilio-ruby/rest/intelligence/v2/transcript/encrypted_sentences.rb +359 -0
  311. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +373 -0
  312. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +570 -0
  313. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +354 -0
  314. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +815 -0
  315. data/lib/twilio-ruby/rest/intelligence/v2.rb +176 -0
  316. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  317. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  318. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +719 -364
  319. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +613 -359
  320. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +704 -397
  321. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +722 -409
  322. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +822 -488
  323. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +672 -347
  324. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +331 -231
  325. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +750 -418
  326. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +1287 -779
  327. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  328. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +719 -364
  329. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +570 -343
  330. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +613 -359
  331. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +799 -451
  332. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +825 -479
  333. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +746 -411
  334. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +916 -555
  335. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +672 -347
  336. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +561 -351
  337. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +637 -384
  338. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +796 -467
  339. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +1121 -689
  340. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -53
  341. data/lib/twilio-ruby/rest/ip_messaging.rb +3 -41
  342. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  343. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/chunk.rb +317 -0
  344. data/lib/twilio-ruby/rest/knowledge/v1/knowledge/knowledge_status.rb +349 -0
  345. data/lib/twilio-ruby/rest/knowledge/v1/knowledge.rb +856 -0
  346. data/lib/twilio-ruby/rest/knowledge/v1.rb +49 -0
  347. data/lib/twilio-ruby/rest/knowledge.rb +6 -0
  348. data/lib/twilio-ruby/rest/knowledge_base.rb +38 -0
  349. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +399 -237
  350. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -39
  351. data/lib/twilio-ruby/rest/lookups/v2/bucket.rb +500 -0
  352. data/lib/twilio-ruby/rest/lookups/v2/lookup_override.rb +603 -0
  353. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +570 -328
  354. data/lib/twilio-ruby/rest/lookups/v2/query.rb +351 -0
  355. data/lib/twilio-ruby/rest/lookups/v2/rate_limit.rb +229 -0
  356. data/lib/twilio-ruby/rest/lookups/v2.rb +128 -38
  357. data/lib/twilio-ruby/rest/lookups.rb +2 -41
  358. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  359. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on/available_add_on_extension.rb +475 -0
  360. data/lib/twilio-ruby/rest/marketplace/v1/available_add_on.rb +501 -0
  361. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_extension.rb +555 -0
  362. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +252 -0
  363. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on.rb +735 -0
  364. data/lib/twilio-ruby/rest/marketplace/v1/module_data.rb +342 -0
  365. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +511 -0
  366. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +235 -0
  367. data/lib/twilio-ruby/rest/marketplace/v1.rb +91 -0
  368. data/lib/twilio-ruby/rest/marketplace.rb +6 -0
  369. data/lib/twilio-ruby/rest/marketplace_base.rb +38 -0
  370. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +231 -0
  371. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +568 -346
  372. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +758 -443
  373. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +337 -0
  374. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +483 -0
  375. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +469 -259
  376. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +379 -0
  377. data/lib/twilio-ruby/rest/messaging/v1/domain_validate_dn.rb +344 -0
  378. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +263 -142
  379. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +380 -0
  380. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +337 -0
  381. data/lib/twilio-ruby/rest/messaging/v1/request_managed_cert.rb +379 -0
  382. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +580 -335
  383. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +594 -0
  384. data/lib/twilio-ruby/rest/messaging/v1/service/destination_alpha_sender.rb +608 -0
  385. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +587 -341
  386. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +587 -336
  387. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +937 -521
  388. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +222 -115
  389. data/lib/twilio-ruby/rest/messaging/v1/service.rb +1149 -763
  390. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +1517 -549
  391. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +209 -103
  392. data/lib/twilio-ruby/rest/messaging/v1.rb +217 -124
  393. data/lib/twilio-ruby/rest/messaging/v2/channels_sender.rb +1002 -0
  394. data/lib/twilio-ruby/rest/messaging/v2/domain_certs.rb +386 -0
  395. data/lib/twilio-ruby/rest/messaging/v2/typing_indicator.rb +237 -0
  396. data/lib/twilio-ruby/rest/messaging/v2.rb +70 -0
  397. data/lib/twilio-ruby/rest/messaging.rb +10 -35
  398. data/lib/twilio-ruby/rest/messaging_base.rb +43 -0
  399. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +572 -395
  400. data/lib/twilio-ruby/rest/monitor/v1/event.rb +561 -390
  401. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -53
  402. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  403. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  404. data/lib/twilio-ruby/rest/notify/v1/credential.rb +719 -408
  405. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +694 -452
  406. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +466 -362
  407. data/lib/twilio-ruby/rest/notify/v1/service.rb +971 -622
  408. data/lib/twilio-ruby/rest/notify/v1.rb +57 -55
  409. data/lib/twilio-ruby/rest/notify.rb +3 -34
  410. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  411. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +411 -0
  412. data/lib/twilio-ruby/rest/numbers/v1/eligibility.rb +221 -0
  413. data/lib/twilio-ruby/rest/numbers/v1/porting_all_port_in.rb +367 -0
  414. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +616 -0
  415. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +485 -0
  416. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +405 -0
  417. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +242 -0
  418. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +301 -0
  419. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +395 -0
  420. data/lib/twilio-ruby/rest/numbers/v1/webhook.rb +252 -0
  421. data/lib/twilio-ruby/rest/numbers/v1.rb +161 -0
  422. data/lib/twilio-ruby/rest/numbers/v2/application.rb +562 -0
  423. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +440 -0
  424. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +649 -0
  425. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +442 -0
  426. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +430 -0
  427. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +915 -0
  428. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +405 -261
  429. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +524 -298
  430. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +564 -309
  431. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +294 -179
  432. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +923 -607
  433. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +667 -351
  434. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +458 -266
  435. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +521 -307
  436. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +695 -371
  437. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +458 -266
  438. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +241 -181
  439. data/lib/twilio-ruby/rest/numbers/v2.rb +108 -28
  440. data/lib/twilio-ruby/rest/numbers/v3/hosted_number_order.rb +484 -0
  441. data/lib/twilio-ruby/rest/numbers/v3.rb +40 -0
  442. data/lib/twilio-ruby/rest/numbers.rb +2 -34
  443. data/lib/twilio-ruby/rest/numbers_base.rb +48 -0
  444. data/lib/twilio-ruby/rest/oauth/v1/authorize.rb +253 -0
  445. data/lib/twilio-ruby/rest/oauth/v1/token.rb +293 -149
  446. data/lib/twilio-ruby/rest/oauth/v1.rb +39 -56
  447. data/lib/twilio-ruby/rest/oauth/v2/authorize.rb +253 -0
  448. data/lib/twilio-ruby/rest/oauth/v2/token.rb +311 -0
  449. data/lib/twilio-ruby/rest/oauth/v2.rb +46 -0
  450. data/lib/twilio-ruby/rest/oauth.rb +3 -65
  451. data/lib/twilio-ruby/rest/oauth_base.rb +43 -0
  452. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +469 -396
  453. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +724 -446
  454. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +960 -625
  455. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -55
  456. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +468 -298
  457. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +491 -309
  458. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +548 -330
  459. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +706 -398
  460. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -53
  461. data/lib/twilio-ruby/rest/preview/wireless/command.rb +616 -364
  462. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +743 -398
  463. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +382 -205
  464. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +833 -523
  465. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -69
  466. data/lib/twilio-ruby/rest/preview.rb +10 -87
  467. data/lib/twilio-ruby/rest/preview_base.rb +48 -0
  468. data/lib/twilio-ruby/rest/preview_iam/v1/authorize.rb +253 -0
  469. data/lib/twilio-ruby/rest/preview_iam/v1/token.rb +301 -0
  470. data/lib/twilio-ruby/rest/preview_iam/v1.rb +46 -0
  471. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/account.rb +468 -0
  472. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/role_assignment.rb +559 -0
  473. data/lib/twilio-ruby/rest/preview_iam/versionless/organization/user.rb +768 -0
  474. data/lib/twilio-ruby/rest/preview_iam/versionless/organization.rb +413 -0
  475. data/lib/twilio-ruby/rest/preview_iam/versionless.rb +49 -0
  476. data/lib/twilio-ruby/rest/preview_iam.rb +9 -0
  477. data/lib/twilio-ruby/rest/preview_iam_base.rb +38 -0
  478. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +465 -275
  479. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +172 -120
  480. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +458 -268
  481. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +172 -120
  482. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +465 -275
  483. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +345 -179
  484. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +185 -135
  485. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  486. data/lib/twilio-ruby/rest/pricing/v2/country.rb +457 -270
  487. data/lib/twilio-ruby/rest/pricing/v2/number.rb +379 -215
  488. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +465 -275
  489. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +367 -200
  490. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +185 -138
  491. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -65
  492. data/lib/twilio-ruby/rest/pricing.rb +6 -41
  493. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  494. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +693 -403
  495. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +600 -418
  496. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +640 -447
  497. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +659 -440
  498. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +811 -506
  499. data/lib/twilio-ruby/rest/proxy/v1/service.rb +839 -596
  500. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -38
  501. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  502. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  503. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +444 -227
  504. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +444 -223
  505. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +444 -227
  506. data/lib/twilio-ruby/rest/routes/v2.rb +72 -69
  507. data/lib/twilio-ruby/rest/routes.rb +4 -34
  508. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  509. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +483 -323
  510. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +680 -380
  511. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +350 -208
  512. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +645 -384
  513. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +549 -338
  514. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +535 -383
  515. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +680 -396
  516. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +688 -447
  517. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +342 -210
  518. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +510 -353
  519. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +680 -380
  520. data/lib/twilio-ruby/rest/serverless/v1/service.rb +803 -493
  521. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -37
  522. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  523. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  524. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +350 -199
  525. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +342 -194
  526. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +545 -355
  527. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +659 -394
  528. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +350 -200
  529. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +342 -197
  530. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +545 -361
  531. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +748 -449
  532. data/lib/twilio-ruby/rest/studio/v1/flow.rb +572 -355
  533. data/lib/twilio-ruby/rest/studio/v1.rb +42 -37
  534. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +350 -200
  535. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +342 -197
  536. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +545 -361
  537. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +741 -442
  538. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +510 -320
  539. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +413 -0
  540. data/lib/twilio-ruby/rest/studio/v2/flow.rb +804 -472
  541. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +241 -109
  542. data/lib/twilio-ruby/rest/studio/v2.rb +48 -44
  543. data/lib/twilio-ruby/rest/studio.rb +3 -41
  544. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  545. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +611 -362
  546. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +757 -483
  547. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +624 -406
  548. data/lib/twilio-ruby/rest/supersim/v1/network.rb +474 -297
  549. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +566 -332
  550. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +624 -351
  551. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +339 -237
  552. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +311 -204
  553. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +275 -174
  554. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +725 -453
  555. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +576 -361
  556. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +410 -344
  557. data/lib/twilio-ruby/rest/supersim/v1.rb +144 -147
  558. data/lib/twilio-ruby/rest/supersim.rb +10 -34
  559. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  560. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +616 -371
  561. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +736 -423
  562. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +766 -490
  563. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +616 -370
  564. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +749 -445
  565. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +772 -495
  566. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +616 -368
  567. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +749 -444
  568. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +242 -132
  569. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +692 -400
  570. data/lib/twilio-ruby/rest/sync/v1/service.rb +878 -567
  571. data/lib/twilio-ruby/rest/sync/v1.rb +42 -37
  572. data/lib/twilio-ruby/rest/sync.rb +2 -34
  573. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  574. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +682 -395
  575. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +633 -464
  576. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +1079 -749
  577. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +985 -661
  578. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +688 -382
  579. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_bulk_real_time_statistics.rb +258 -0
  580. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +522 -370
  581. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +430 -276
  582. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +410 -254
  583. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +358 -276
  584. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +882 -572
  585. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +1053 -732
  586. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +602 -388
  587. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +394 -239
  588. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +440 -266
  589. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +364 -193
  590. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +418 -234
  591. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +927 -637
  592. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +522 -376
  593. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +395 -241
  594. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +410 -262
  595. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +822 -510
  596. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +514 -356
  597. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +379 -205
  598. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +387 -219
  599. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +1022 -730
  600. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -37
  601. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  602. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  603. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +573 -320
  604. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +573 -317
  605. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +734 -419
  606. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +706 -451
  607. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +391 -174
  608. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +939 -630
  609. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -38
  610. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  611. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  612. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +440 -0
  613. data/lib/twilio-ruby/rest/trusthub/v1/compliance_registration_inquiries.rb +656 -0
  614. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +474 -0
  615. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +595 -352
  616. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +574 -323
  617. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +540 -321
  618. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +823 -513
  619. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +659 -346
  620. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +450 -261
  621. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +443 -252
  622. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +673 -359
  623. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +450 -261
  624. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +595 -352
  625. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +574 -323
  626. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +540 -321
  627. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +823 -513
  628. data/lib/twilio-ruby/rest/trusthub/v1.rb +168 -139
  629. data/lib/twilio-ruby/rest/trusthub.rb +8 -34
  630. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  631. data/lib/twilio-ruby/rest/verify/v2/form.rb +334 -181
  632. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +423 -205
  633. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +463 -254
  634. data/lib/twilio-ruby/rest/verify/v2/service/approve_challenge.rb +402 -0
  635. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +275 -172
  636. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +768 -530
  637. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +705 -453
  638. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +386 -271
  639. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +653 -414
  640. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +652 -363
  641. data/lib/twilio-ruby/rest/verify/v2/service/new_challenge.rb +478 -0
  642. data/lib/twilio-ruby/rest/verify/v2/service/new_factor.rb +387 -0
  643. data/lib/twilio-ruby/rest/verify/v2/service/new_verify_factor.rb +357 -0
  644. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +680 -388
  645. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +693 -384
  646. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +655 -366
  647. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +320 -187
  648. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +741 -412
  649. data/lib/twilio-ruby/rest/verify/v2/service.rb +1360 -780
  650. data/lib/twilio-ruby/rest/verify/v2/template.rb +310 -203
  651. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +556 -387
  652. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +400 -224
  653. data/lib/twilio-ruby/rest/verify/v2.rb +99 -103
  654. data/lib/twilio-ruby/rest/verify.rb +7 -34
  655. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  656. data/lib/twilio-ruby/rest/video/v1/composition.rb +738 -507
  657. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +854 -647
  658. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +475 -261
  659. data/lib/twilio-ruby/rest/video/v1/recording.rb +631 -426
  660. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +475 -261
  661. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +403 -0
  662. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +501 -0
  663. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +316 -0
  664. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +508 -0
  665. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +714 -0
  666. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +303 -0
  667. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +624 -0
  668. data/lib/twilio-ruby/rest/video/v1/room/transcriptions.rb +648 -0
  669. data/lib/twilio-ruby/rest/video/v1/room.rb +938 -602
  670. data/lib/twilio-ruby/rest/video/v1.rb +99 -99
  671. data/lib/twilio-ruby/rest/video.rb +7 -34
  672. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  673. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +292 -174
  674. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +822 -486
  675. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +734 -434
  676. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +658 -352
  677. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +236 -121
  678. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +282 -181
  679. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +553 -397
  680. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +377 -173
  681. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +187 -122
  682. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +650 -339
  683. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +630 -319
  684. data/lib/twilio-ruby/rest/voice/v1.rb +130 -117
  685. data/lib/twilio-ruby/rest/voice.rb +7 -34
  686. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  687. data/lib/twilio-ruby/rest/wireless/v1/command.rb +663 -406
  688. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +769 -436
  689. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +387 -284
  690. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +317 -226
  691. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +925 -647
  692. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +319 -219
  693. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -76
  694. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  695. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  696. data/lib/twilio-ruby/rest.rb +1 -0
  697. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  698. data/lib/twilio-ruby/twiml/voice_response.rb +481 -26
  699. data/lib/twilio-ruby/version.rb +1 -1
  700. data/sonar-project.properties +1 -1
  701. data/twilio-ruby.gemspec +3 -2
  702. metadata +238 -105
  703. data/conf/cacert.pem +0 -3376
  704. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  705. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -500
  706. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -500
  707. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -500
  708. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -500
  709. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -500
  710. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -500
  711. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -500
  712. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -464
  713. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +0 -301
  714. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +0 -314
  715. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -348
  716. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +0 -348
  717. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  718. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +0 -348
  719. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  720. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -220
  721. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -214
  722. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -399
  723. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -418
  724. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -392
  725. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -469
  726. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -218
  727. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -386
  728. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -456
  729. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -255
  730. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -237
  731. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -507
  732. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -420
  733. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -650
  734. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +0 -194
  735. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -52
  736. data/lib/twilio-ruby/rest/autopilot.rb +0 -53
  737. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +0 -290
  738. data/lib/twilio-ruby/rest/flex_api/v1/good_data.rb +0 -190
  739. data/lib/twilio-ruby/rest/flex_api/v1/user_roles.rb +0 -166
  740. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -321
  741. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +0 -397
  742. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +0 -399
  743. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +0 -221
  744. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +0 -403
  745. data/lib/twilio-ruby/rest/media/v1.rb +0 -76
  746. data/lib/twilio-ruby/rest/media.rb +0 -65
  747. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +0 -164
  748. data/lib/twilio-ruby/rest/messaging/v1/domain_cert.rb +0 -257
  749. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +0 -305
  750. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +0 -339
  751. data/lib/twilio-ruby/rest/microvisor/v1.rb +0 -60
  752. data/lib/twilio-ruby/rest/microvisor.rb +0 -54
  753. data/lib/twilio-ruby/rest/oauth/v1/device_code.rb +0 -153
  754. data/lib/twilio-ruby/rest/oauth/v1/oauth.rb +0 -162
  755. data/lib/twilio-ruby/rest/oauth/v1/openid_discovery.rb +0 -242
  756. data/lib/twilio-ruby/rest/oauth/v1/user_info.rb +0 -193
  757. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +0 -382
  758. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +0 -365
  759. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +0 -425
  760. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +0 -376
  761. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +0 -469
  762. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +0 -45
  763. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -385
  764. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -406
  765. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -418
  766. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -385
  767. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -405
  768. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -415
  769. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -385
  770. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -405
  771. data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -462
  772. data/lib/twilio-ruby/rest/preview/sync.rb +0 -44
  773. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -212
  774. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -212
  775. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -206
  776. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -386
  777. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -407
  778. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -380
  779. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -437
  780. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -212
  781. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -373
  782. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -428
  783. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -241
  784. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -225
  785. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -495
  786. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -629
  787. data/lib/twilio-ruby/rest/preview/understand.rb +0 -45
  788. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +0 -377
  789. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +0 -199
  790. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -413
  791. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_anonymize.rb +0 -240
  792. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -335
  793. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -175
  794. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -340
  795. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -499
  796. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +0 -144
@@ -1,767 +1,1135 @@
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 - Api
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 Api < Domain
12
- class V2010 < Version
13
- class AccountContext < InstanceContext
14
- class ConferenceContext < InstanceContext
15
- class ParticipantList < ListResource
16
- ##
17
- # Initialize the ParticipantList
18
- # @param [Version] version Version that contains the resource
19
- # @param [String] account_sid The SID of the
20
- # {Account}[https://www.twilio.com/docs/iam/api/account] that created the
21
- # Participant resource.
22
- # @param [String] conference_sid The SID of the conference the participant is in.
23
- # @return [ParticipantList] ParticipantList
24
- def initialize(version, account_sid: nil, conference_sid: nil)
25
- super(version)
26
-
27
- # Path Solution
28
- @solution = {account_sid: account_sid, conference_sid: conference_sid}
29
- @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants.json"
30
- end
31
-
32
- ##
33
- # Create the ParticipantInstance
34
- # @param [String] from The phone number, Client identifier, or username portion of
35
- # SIP address that made this call. Phone numbers are in
36
- # {E.164}[https://www.twilio.com/docs/glossary/what-e164] format (e.g.,
37
- # +16175551212). Client identifiers are formatted `client:name`. If using a phone
38
- # number, it must be a Twilio number or a Verified {outgoing caller
39
- # id}[https://www.twilio.com/docs/voice/api/outgoing-caller-ids] for your account.
40
- # If the `to` parameter is a phone number, `from` must also be a phone number. If
41
- # `to` is sip address, this value of `from` should be a username portion to be
42
- # used to populate the P-Asserted-Identity header that is passed to the SIP
43
- # endpoint.
44
- # @param [String] to The phone number, SIP address, or Client identifier that
45
- # received this call. Phone numbers are in
46
- # {E.164}[https://www.twilio.com/docs/glossary/what-e164] format (e.g.,
47
- # +16175551212). SIP addresses are formatted as `sip:name@company.com`. Client
48
- # identifiers are formatted `client:name`. {Custom
49
- # parameters}[https://www.twilio.com/docs/voice/api/conference-participant-resource#custom-parameters]
50
- # may also be specified.
51
- # @param [String] status_callback The URL we should call using the
52
- # `status_callback_method` to send status information to your application.
53
- # @param [String] status_callback_method The HTTP method we should use to call
54
- # `status_callback`. Can be: `GET` and `POST` and defaults to `POST`.
55
- # @param [Array[String]] status_callback_event The conference state changes that
56
- # should generate a call to `status_callback`. Can be: `initiated`, `ringing`,
57
- # `answered`, and `completed`. Separate multiple values with a space. The default
58
- # value is `completed`.
59
- # @param [String] label A label for this participant. If one is supplied, it may
60
- # subsequently be used to fetch, update or delete the participant.
61
- # @param [String] timeout The number of seconds that we should allow the phone to
62
- # ring before assuming there is no answer. Can be an integer between `5` and
63
- # `600`, inclusive. The default value is `60`. We always add a 5-second timeout
64
- # buffer to outgoing calls, so value of 10 would result in an actual timeout that
65
- # was closer to 15 seconds.
66
- # @param [Boolean] record Whether to record the participant and their conferences,
67
- # including the time between conferences. Can be `true` or `false` and the default
68
- # is `false`.
69
- # @param [Boolean] muted Whether the agent is muted in the conference. Can be
70
- # `true` or `false` and the default is `false`.
71
- # @param [String] beep Whether to play a notification beep to the conference when
72
- # the participant joins. Can be: `true`, `false`, `onEnter`, or `onExit`. The
73
- # default value is `true`.
74
- # @param [Boolean] start_conference_on_enter Whether to start the conference when
75
- # the participant joins, if it has not already started. Can be: `true` or `false`
76
- # and the default is `true`. If `false` and the conference has not started, the
77
- # participant is muted and hears background music until another participant starts
78
- # the conference.
79
- # @param [Boolean] end_conference_on_exit Whether to end the conference when the
80
- # participant leaves. Can be: `true` or `false` and defaults to `false`.
81
- # @param [String] wait_url The URL we should call using the `wait_method` for the
82
- # music to play while participants are waiting for the conference to start. The
83
- # default value is the URL of our standard hold music. {Learn more about hold
84
- # music}[https://www.twilio.com/labs/twimlets/holdmusic].
85
- # @param [String] wait_method The HTTP method we should use to call `wait_url`.
86
- # Can be `GET` or `POST` and the default is `POST`. When using a static audio
87
- # file, this should be `GET` so that we can cache the file.
88
- # @param [Boolean] early_media Whether to allow an agent to hear the state of the
89
- # outbound call, including ringing or disconnect messages. Can be: `true` or
90
- # `false` and defaults to `true`.
91
- # @param [String] max_participants The maximum number of participants in the
92
- # conference. Can be a positive integer from `2` to `250`. The default value is
93
- # `250`.
94
- # @param [String] conference_record Whether to record the conference the
95
- # participant is joining. Can be: `true`, `false`, `record-from-start`, and
96
- # `do-not-record`. The default value is `false`.
97
- # @param [String] conference_trim Whether to trim leading and trailing silence
98
- # from your recorded conference audio files. Can be: `trim-silence` or
99
- # `do-not-trim` and defaults to `trim-silence`.
100
- # @param [String] conference_status_callback The URL we should call using the
101
- # `conference_status_callback_method` when the conference events in
102
- # `conference_status_callback_event` occur. Only the value set by the first
103
- # participant to join the conference is used. Subsequent
104
- # `conference_status_callback` values are ignored.
105
- # @param [String] conference_status_callback_method The HTTP method we should use
106
- # to call `conference_status_callback`. Can be: `GET` or `POST` and defaults to
107
- # `POST`.
108
- # @param [Array[String]] conference_status_callback_event The conference state
109
- # changes that should generate a call to `conference_status_callback`. Can be:
110
- # `start`, `end`, `join`, `leave`, `mute`, `hold`, `modify`, `speaker`, and
111
- # `announcement`. Separate multiple values with a space. Defaults to `start end`.
112
- # @param [String] recording_channels The recording channels for the final
113
- # recording. Can be: `mono` or `dual` and the default is `mono`.
114
- # @param [String] recording_status_callback The URL that we should call using the
115
- # `recording_status_callback_method` when the recording status changes.
116
- # @param [String] recording_status_callback_method The HTTP method we should use
117
- # when we call `recording_status_callback`. Can be: `GET` or `POST` and defaults
118
- # to `POST`.
119
- # @param [String] sip_auth_username The SIP username used for authentication.
120
- # @param [String] sip_auth_password The SIP password for authentication.
121
- # @param [String] region The
122
- # {region}[https://support.twilio.com/hc/en-us/articles/223132167-How-global-low-latency-routing-and-region-selection-work-for-conferences-and-Client-calls]
123
- # where we should mix the recorded audio. Can be:`us1`, `ie1`, `de1`, `sg1`,
124
- # `br1`, `au1`, or `jp1`.
125
- # @param [String] conference_recording_status_callback The URL we should call
126
- # using the `conference_recording_status_callback_method` when the conference
127
- # recording is available.
128
- # @param [String] conference_recording_status_callback_method The HTTP method we
129
- # should use to call `conference_recording_status_callback`. Can be: `GET` or
130
- # `POST` and defaults to `POST`.
131
- # @param [Array[String]] recording_status_callback_event The recording state
132
- # changes that should generate a call to `recording_status_callback`. Can be:
133
- # `started`, `in-progress`, `paused`, `resumed`, `stopped`, `completed`, `failed`,
134
- # and `absent`. Separate multiple values with a space, ex: `'in-progress completed
135
- # failed'`.
136
- # @param [Array[String]] conference_recording_status_callback_event The conference
137
- # recording state changes that generate a call to
138
- # `conference_recording_status_callback`. Can be: `in-progress`, `completed`,
139
- # `failed`, and `absent`. Separate multiple values with a space, ex: `'in-progress
140
- # completed failed'`
141
- # @param [Boolean] coaching Whether the participant is coaching another call. Can
142
- # be: `true` or `false`. If not present, defaults to `false` unless
143
- # `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
144
- # @param [String] call_sid_to_coach The SID of the participant who is being
145
- # `coached`. The participant being coached is the only participant who can hear
146
- # the participant who is `coaching`.
147
- # @param [String] jitter_buffer_size Jitter buffer size for the connecting
148
- # participant. Twilio will use this setting to apply Jitter Buffer before
149
- # participant's audio is mixed into the conference. Can be: `off`, `small`,
150
- # `medium`, and `large`. Default to `large`.
151
- # @param [String] byoc The SID of a BYOC (Bring Your Own Carrier) trunk to route
152
- # this call with. Note that `byoc` is only meaningful when `to` is a phone number;
153
- # it will otherwise be ignored. (Beta)
154
- # @param [String] caller_id The phone number, Client identifier, or username
155
- # portion of SIP address that made this call. Phone numbers are in
156
- # {E.164}[https://www.twilio.com/docs/glossary/what-e164] format (e.g.,
157
- # +16175551212). Client identifiers are formatted `client:name`. If using a phone
158
- # number, it must be a Twilio number or a Verified {outgoing caller
159
- # id}[https://www.twilio.com/docs/voice/api/outgoing-caller-ids] for your account.
160
- # If the `to` parameter is a phone number, `callerId` must also be a phone number.
161
- # If `to` is sip address, this value of `callerId` should be a username portion to
162
- # be used to populate the From header that is passed to the SIP endpoint.
163
- # @param [String] call_reason The Reason for the outgoing call. Use it to specify
164
- # the purpose of the call that is presented on the called party's phone. (Branded
165
- # Calls Beta)
166
- # @param [String] recording_track The audio track to record for the call. Can be:
167
- # `inbound`, `outbound` or `both`. The default is `both`. `inbound` records the
168
- # audio that is received by Twilio. `outbound` records the audio that is sent from
169
- # Twilio. `both` records the audio that is received and sent by Twilio.
170
- # @param [String] time_limit The maximum duration of the call in seconds.
171
- # Constraints depend on account and configuration.
172
- # @param [String] machine_detection Whether to detect if a human, answering
173
- # machine, or fax has picked up the call. Can be: `Enable` or `DetectMessageEnd`.
174
- # Use `Enable` if you would like us to return `AnsweredBy` as soon as the called
175
- # party is identified. Use `DetectMessageEnd`, if you would like to leave a
176
- # message on an answering machine. If `send_digits` is provided, this parameter is
177
- # ignored. For more information, see {Answering Machine
178
- # Detection}[https://www.twilio.com/docs/voice/answering-machine-detection].
179
- # @param [String] machine_detection_timeout The number of seconds that we should
180
- # attempt to detect an answering machine before timing out and sending a voice
181
- # request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds.
182
- # @param [String] machine_detection_speech_threshold The number of milliseconds
183
- # that is used as the measuring stick for the length of the speech activity, where
184
- # durations lower than this value will be interpreted as a human and longer than
185
- # this value as a machine. Possible Values: 1000-6000. Default: 2400.
186
- # @param [String] machine_detection_speech_end_threshold The number of
187
- # milliseconds of silence after speech activity at which point the speech activity
188
- # is considered complete. Possible Values: 500-5000. Default: 1200.
189
- # @param [String] machine_detection_silence_timeout The number of milliseconds of
190
- # initial silence after which an `unknown` AnsweredBy result will be returned.
191
- # Possible Values: 2000-10000. Default: 5000.
192
- # @param [String] amd_status_callback The URL that we should call using the
193
- # `amd_status_callback_method` to notify customer application whether the call was
194
- # answered by human, machine or fax.
195
- # @param [String] amd_status_callback_method The HTTP method we should use when
196
- # calling the `amd_status_callback` URL. Can be: `GET` or `POST` and the default
197
- # is `POST`.
198
- # @return [ParticipantInstance] Created ParticipantInstance
199
- def create(from: nil, to: nil, status_callback: :unset, status_callback_method: :unset, status_callback_event: :unset, label: :unset, timeout: :unset, record: :unset, muted: :unset, beep: :unset, start_conference_on_enter: :unset, end_conference_on_exit: :unset, wait_url: :unset, wait_method: :unset, early_media: :unset, max_participants: :unset, conference_record: :unset, conference_trim: :unset, conference_status_callback: :unset, conference_status_callback_method: :unset, conference_status_callback_event: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, region: :unset, conference_recording_status_callback: :unset, conference_recording_status_callback_method: :unset, recording_status_callback_event: :unset, conference_recording_status_callback_event: :unset, coaching: :unset, call_sid_to_coach: :unset, jitter_buffer_size: :unset, byoc: :unset, caller_id: :unset, call_reason: :unset, recording_track: :unset, time_limit: :unset, machine_detection: :unset, machine_detection_timeout: :unset, machine_detection_speech_threshold: :unset, machine_detection_speech_end_threshold: :unset, machine_detection_silence_timeout: :unset, amd_status_callback: :unset, amd_status_callback_method: :unset)
200
- data = Twilio::Values.of({
201
- 'From' => from,
202
- 'To' => to,
203
- 'StatusCallback' => status_callback,
204
- 'StatusCallbackMethod' => status_callback_method,
205
- 'StatusCallbackEvent' => Twilio.serialize_list(status_callback_event) { |e| e },
206
- 'Label' => label,
207
- 'Timeout' => timeout,
208
- 'Record' => record,
209
- 'Muted' => muted,
210
- 'Beep' => beep,
211
- 'StartConferenceOnEnter' => start_conference_on_enter,
212
- 'EndConferenceOnExit' => end_conference_on_exit,
213
- 'WaitUrl' => wait_url,
214
- 'WaitMethod' => wait_method,
215
- 'EarlyMedia' => early_media,
216
- 'MaxParticipants' => max_participants,
217
- 'ConferenceRecord' => conference_record,
218
- 'ConferenceTrim' => conference_trim,
219
- 'ConferenceStatusCallback' => conference_status_callback,
220
- 'ConferenceStatusCallbackMethod' => conference_status_callback_method,
221
- 'ConferenceStatusCallbackEvent' => Twilio.serialize_list(conference_status_callback_event) { |e| e },
222
- 'RecordingChannels' => recording_channels,
223
- 'RecordingStatusCallback' => recording_status_callback,
224
- 'RecordingStatusCallbackMethod' => recording_status_callback_method,
225
- 'SipAuthUsername' => sip_auth_username,
226
- 'SipAuthPassword' => sip_auth_password,
227
- 'Region' => region,
228
- 'ConferenceRecordingStatusCallback' => conference_recording_status_callback,
229
- 'ConferenceRecordingStatusCallbackMethod' => conference_recording_status_callback_method,
230
- 'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
231
- 'ConferenceRecordingStatusCallbackEvent' => Twilio.serialize_list(conference_recording_status_callback_event) { |e| e },
232
- 'Coaching' => coaching,
233
- 'CallSidToCoach' => call_sid_to_coach,
234
- 'JitterBufferSize' => jitter_buffer_size,
235
- 'Byoc' => byoc,
236
- 'CallerId' => caller_id,
237
- 'CallReason' => call_reason,
238
- 'RecordingTrack' => recording_track,
239
- 'TimeLimit' => time_limit,
240
- 'MachineDetection' => machine_detection,
241
- 'MachineDetectionTimeout' => machine_detection_timeout,
242
- 'MachineDetectionSpeechThreshold' => machine_detection_speech_threshold,
243
- 'MachineDetectionSpeechEndThreshold' => machine_detection_speech_end_threshold,
244
- 'MachineDetectionSilenceTimeout' => machine_detection_silence_timeout,
245
- 'AmdStatusCallback' => amd_status_callback,
246
- 'AmdStatusCallbackMethod' => amd_status_callback_method,
247
- })
248
-
249
- payload = @version.create('POST', @uri, data: data)
250
-
251
- ParticipantInstance.new(
252
- @version,
253
- payload,
254
- account_sid: @solution[:account_sid],
255
- conference_sid: @solution[:conference_sid],
256
- )
257
- end
258
-
259
- ##
260
- # Lists ParticipantInstance records from the API as a list.
261
- # Unlike stream(), this operation is eager and will load `limit` records into
262
- # memory before returning.
263
- # @param [Boolean] muted Whether to return only participants that are muted. Can
264
- # be: `true` or `false`.
265
- # @param [Boolean] hold Whether to return only participants that are on hold. Can
266
- # be: `true` or `false`.
267
- # @param [Boolean] coaching Whether to return only participants who are coaching
268
- # another call. Can be: `true` or `false`.
269
- # @param [Integer] limit Upper limit for the number of records to return. stream()
270
- # guarantees to never return more than limit. Default is no limit
271
- # @param [Integer] page_size Number of records to fetch per request, when
272
- # not set will use the default value of 50 records. If no page_size is defined
273
- # but a limit is defined, stream() will attempt to read the limit with the most
274
- # efficient page size, i.e. min(limit, 1000)
275
- # @return [Array] Array of up to limit results
276
- def list(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
277
- self.stream(
278
- muted: muted,
279
- hold: hold,
280
- coaching: coaching,
281
- limit: limit,
282
- page_size: page_size
283
- ).entries
284
- end
285
-
286
- ##
287
- # Streams ParticipantInstance records from the API as an Enumerable.
288
- # This operation lazily loads records as efficiently as possible until the limit
289
- # is reached.
290
- # @param [Boolean] muted Whether to return only participants that are muted. Can
291
- # be: `true` or `false`.
292
- # @param [Boolean] hold Whether to return only participants that are on hold. Can
293
- # be: `true` or `false`.
294
- # @param [Boolean] coaching Whether to return only participants who are coaching
295
- # another call. Can be: `true` or `false`.
296
- # @param [Integer] limit Upper limit for the number of records to return. stream()
297
- # guarantees to never return more than limit. Default is no limit.
298
- # @param [Integer] page_size Number of records to fetch per request, when
299
- # not set will use the default value of 50 records. If no page_size is defined
300
- # but a limit is defined, stream() will attempt to read the limit with the most
301
- # efficient page size, i.e. min(limit, 1000)
302
- # @return [Enumerable] Enumerable that will yield up to limit results
303
- def stream(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
304
- limits = @version.read_limits(limit, page_size)
305
-
306
- page = self.page(muted: muted, hold: hold, coaching: coaching, page_size: limits[:page_size], )
307
-
308
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
309
- end
310
-
311
- ##
312
- # When passed a block, yields ParticipantInstance records from the API.
313
- # This operation lazily loads records as efficiently as possible until the limit
314
- # is reached.
315
- def each
316
- limits = @version.read_limits
317
-
318
- page = self.page(page_size: limits[:page_size], )
319
-
320
- @version.stream(page,
321
- limit: limits[:limit],
322
- page_limit: limits[:page_limit]).each {|x| yield x}
323
- end
324
-
325
- ##
326
- # Retrieve a single page of ParticipantInstance records from the API.
327
- # Request is executed immediately.
328
- # @param [Boolean] muted Whether to return only participants that are muted. Can
329
- # be: `true` or `false`.
330
- # @param [Boolean] hold Whether to return only participants that are on hold. Can
331
- # be: `true` or `false`.
332
- # @param [Boolean] coaching Whether to return only participants who are coaching
333
- # another call. Can be: `true` or `false`.
334
- # @param [String] page_token PageToken provided by the API
335
- # @param [Integer] page_number Page Number, this value is simply for client state
336
- # @param [Integer] page_size Number of records to return, defaults to 50
337
- # @return [Page] Page of ParticipantInstance
338
- def page(muted: :unset, hold: :unset, coaching: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
339
- params = Twilio::Values.of({
340
- 'Muted' => muted,
341
- 'Hold' => hold,
342
- 'Coaching' => coaching,
343
- 'PageToken' => page_token,
344
- 'Page' => page_number,
345
- 'PageSize' => page_size,
346
- })
347
-
348
- response = @version.page('GET', @uri, params: params)
349
-
350
- ParticipantPage.new(@version, response, @solution)
351
- end
352
-
353
- ##
354
- # Retrieve a single page of ParticipantInstance records from the API.
355
- # Request is executed immediately.
356
- # @param [String] target_url API-generated URL for the requested results page
357
- # @return [Page] Page of ParticipantInstance
358
- def get_page(target_url)
359
- response = @version.domain.request(
360
- 'GET',
361
- target_url
362
- )
363
- ParticipantPage.new(@version, response, @solution)
364
- end
365
-
366
- ##
367
- # Provide a user friendly representation
368
- def to_s
369
- '#<Twilio.Api.V2010.ParticipantList>'
370
- end
371
- end
17
+ module REST
18
+ class Api < ApiBase
19
+ class V2010 < Version
20
+ class AccountContext < InstanceContext
21
+ class ConferenceContext < InstanceContext
372
22
 
373
- class ParticipantPage < Page
374
- ##
375
- # Initialize the ParticipantPage
376
- # @param [Version] version Version that contains the resource
377
- # @param [Response] response Response from the API
378
- # @param [Hash] solution Path solution for the resource
379
- # @return [ParticipantPage] ParticipantPage
380
- def initialize(version, response, solution)
381
- super(version, response)
382
-
383
- # Path Solution
384
- @solution = solution
385
- end
386
-
387
- ##
388
- # Build an instance of ParticipantInstance
389
- # @param [Hash] payload Payload response from the API
390
- # @return [ParticipantInstance] ParticipantInstance
391
- def get_instance(payload)
392
- ParticipantInstance.new(
393
- @version,
394
- payload,
395
- account_sid: @solution[:account_sid],
396
- conference_sid: @solution[:conference_sid],
397
- )
398
- end
399
-
400
- ##
401
- # Provide a user friendly representation
402
- def to_s
403
- '<Twilio.Api.V2010.ParticipantPage>'
404
- end
405
- end
23
+ class ParticipantList < ListResource
24
+
25
+ ##
26
+ # Initialize the ParticipantList
27
+ # @param [Version] version Version that contains the resource
28
+ # @return [ParticipantList] ParticipantList
29
+ def initialize(version, account_sid: nil, conference_sid: nil)
30
+ super(version)
31
+
32
+ # Path Solution
33
+ @solution = { account_sid: account_sid, conference_sid: conference_sid }
34
+ @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants.json"
35
+
36
+ end
37
+ ##
38
+ # Create the ParticipantInstance
39
+ # @param [String] from The phone number, Client identifier, or username portion of SIP address that made this call. Phone numbers are in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (e.g., +16175551212). Client identifiers are formatted `client:name`. If using a phone number, it must be a Twilio number or a Verified [outgoing caller id](https://www.twilio.com/docs/voice/api/outgoing-caller-ids) for your account. If the `to` parameter is a phone number, `from` must also be a phone number. If `to` is sip address, this value of `from` should be a username portion to be used to populate the P-Asserted-Identity header that is passed to the SIP endpoint.
40
+ # @param [String] to The phone number, SIP address, Client, TwiML App identifier that received this call. Phone numbers are in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (e.g., +16175551212). SIP addresses are formatted as `sip:name@company.com`. Client identifiers are formatted `client:name`. TwiML App identifiers are formatted `app:<APP_SID>`. [Custom parameters](https://www.twilio.com/docs/voice/api/conference-participant-resource#custom-parameters) may also be specified.
41
+ # @param [String] status_callback The URL we should call using the `status_callback_method` to send status information to your application.
42
+ # @param [String] status_callback_method The HTTP method we should use to call `status_callback`. Can be: `GET` and `POST` and defaults to `POST`.
43
+ # @param [Array[String]] status_callback_event The conference state changes that should generate a call to `status_callback`. Can be: `initiated`, `ringing`, `answered`, and `completed`. Separate multiple values with a space. The default value is `completed`.
44
+ # @param [String] label A label for this participant. If one is supplied, it may subsequently be used to fetch, update or delete the participant.
45
+ # @param [String] timeout The number of seconds that we should allow the phone to ring before assuming there is no answer. Can be an integer between `5` and `600`, inclusive. The default value is `60`. We always add a 5-second timeout buffer to outgoing calls, so value of 10 would result in an actual timeout that was closer to 15 seconds.
46
+ # @param [Boolean] record Whether to record the participant and their conferences, including the time between conferences. Can be `true` or `false` and the default is `false`.
47
+ # @param [Boolean] muted Whether the agent is muted in the conference. Can be `true` or `false` and the default is `false`.
48
+ # @param [String] beep Whether to play a notification beep to the conference when the participant joins. Can be: `true`, `false`, `onEnter`, or `onExit`. The default value is `true`.
49
+ # @param [Boolean] start_conference_on_enter Whether to start the conference when the participant joins, if it has not already started. Can be: `true` or `false` and the default is `true`. If `false` and the conference has not started, the participant is muted and hears background music until another participant starts the conference.
50
+ # @param [Boolean] end_conference_on_exit Whether to end the conference when the participant leaves. Can be: `true` or `false` and defaults to `false`.
51
+ # @param [String] wait_url The URL that Twilio calls using the `wait_method` before the conference has started. The URL may return an MP3 file, a WAV file, or a TwiML document. The default value is the URL of our standard hold music. If you do not want anything to play while waiting for the conference to start, specify an empty string by setting `wait_url` to `''`. For more details on the allowable verbs within the `waitUrl`, see the `waitUrl` attribute in the [<Conference> TwiML instruction](https://www.twilio.com/docs/voice/twiml/conference#attributes-waiturl).
52
+ # @param [String] wait_method The HTTP method we should use to call `wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file.
53
+ # @param [Boolean] early_media Whether to allow an agent to hear the state of the outbound call, including ringing or disconnect messages. Can be: `true` or `false` and defaults to `true`.
54
+ # @param [String] max_participants The maximum number of participants in the conference. Can be a positive integer from `2` to `250`. The default value is `250`.
55
+ # @param [String] conference_record Whether to record the conference the participant is joining. Can be: `true`, `false`, `record-from-start`, and `do-not-record`. The default value is `false`.
56
+ # @param [String] conference_trim Whether to trim leading and trailing silence from the conference recording. Can be: `trim-silence` or `do-not-trim` and defaults to `trim-silence`.
57
+ # @param [String] conference_status_callback The URL we should call using the `conference_status_callback_method` when the conference events in `conference_status_callback_event` occur. Only the value set by the first participant to join the conference is used. Subsequent `conference_status_callback` values are ignored.
58
+ # @param [String] conference_status_callback_method The HTTP method we should use to call `conference_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.
59
+ # @param [Array[String]] conference_status_callback_event The conference state changes that should generate a call to `conference_status_callback`. Can be: `start`, `end`, `join`, `leave`, `mute`, `hold`, `modify`, `speaker`, and `announcement`. Separate multiple values with a space. Defaults to `start end`.
60
+ # @param [String] recording_channels The recording channels for the final recording. Can be: `mono` or `dual` and the default is `mono`.
61
+ # @param [String] recording_status_callback The URL that we should call using the `recording_status_callback_method` when the recording status changes.
62
+ # @param [String] recording_status_callback_method The HTTP method we should use when we call `recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.
63
+ # @param [String] sip_auth_username The SIP username used for authentication.
64
+ # @param [String] sip_auth_password The SIP password for authentication.
65
+ # @param [String] region The [region](https://support.twilio.com/hc/en-us/articles/223132167-How-global-low-latency-routing-and-region-selection-work-for-conferences-and-Client-calls) where we should mix the recorded audio. Can be:`us1`, `us2`, `ie1`, `de1`, `sg1`, `br1`, `au1`, or `jp1`.
66
+ # @param [String] conference_recording_status_callback The URL we should call using the `conference_recording_status_callback_method` when the conference recording is available.
67
+ # @param [String] conference_recording_status_callback_method The HTTP method we should use to call `conference_recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.
68
+ # @param [Array[String]] recording_status_callback_event The recording state changes that should generate a call to `recording_status_callback`. Can be: `started`, `in-progress`, `paused`, `resumed`, `stopped`, `completed`, `failed`, and `absent`. Separate multiple values with a space, ex: `'in-progress completed failed'`.
69
+ # @param [Array[String]] conference_recording_status_callback_event The conference recording state changes that generate a call to `conference_recording_status_callback`. Can be: `in-progress`, `completed`, `failed`, and `absent`. Separate multiple values with a space, ex: `'in-progress completed failed'`
70
+ # @param [Boolean] coaching Whether the participant is coaching another call. Can be: `true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
71
+ # @param [String] call_sid_to_coach The SID of the participant who is being `coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.
72
+ # @param [String] jitter_buffer_size Jitter buffer size for the connecting participant. Twilio will use this setting to apply Jitter Buffer before participant's audio is mixed into the conference. Can be: `off`, `small`, `medium`, and `large`. Default to `large`.
73
+ # @param [String] byoc The SID of a BYOC (Bring Your Own Carrier) trunk to route this call with. Note that `byoc` is only meaningful when `to` is a phone number; it will otherwise be ignored. (Beta)
74
+ # @param [String] caller_id The phone number, Client identifier, or username portion of SIP address that made this call. Phone numbers are in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (e.g., +16175551212). Client identifiers are formatted `client:name`. If using a phone number, it must be a Twilio number or a Verified [outgoing caller id](https://www.twilio.com/docs/voice/api/outgoing-caller-ids) for your account. If the `to` parameter is a phone number, `callerId` must also be a phone number. If `to` is sip address, this value of `callerId` should be a username portion to be used to populate the From header that is passed to the SIP endpoint.
75
+ # @param [String] call_reason The Reason for the outgoing call. Use it to specify the purpose of the call that is presented on the called party's phone. (Branded Calls Beta)
76
+ # @param [String] recording_track The audio track to record for the call. Can be: `inbound`, `outbound` or `both`. The default is `both`. `inbound` records the audio that is received by Twilio. `outbound` records the audio that is sent from Twilio. `both` records the audio that is received and sent by Twilio.
77
+ # @param [String] time_limit The maximum duration of the call in seconds. Constraints depend on account and configuration.
78
+ # @param [String] machine_detection Whether to detect if a human, answering machine, or fax has picked up the call. Can be: `Enable` or `DetectMessageEnd`. Use `Enable` if you would like us to return `AnsweredBy` as soon as the called party is identified. Use `DetectMessageEnd`, if you would like to leave a message on an answering machine. For more information, see [Answering Machine Detection](https://www.twilio.com/docs/voice/answering-machine-detection).
79
+ # @param [String] machine_detection_timeout The number of seconds that we should attempt to detect an answering machine before timing out and sending a voice request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds.
80
+ # @param [String] machine_detection_speech_threshold The number of milliseconds that is used as the measuring stick for the length of the speech activity, where durations lower than this value will be interpreted as a human and longer than this value as a machine. Possible Values: 1000-6000. Default: 2400.
81
+ # @param [String] machine_detection_speech_end_threshold The number of milliseconds of silence after speech activity at which point the speech activity is considered complete. Possible Values: 500-5000. Default: 1200.
82
+ # @param [String] machine_detection_silence_timeout The number of milliseconds of initial silence after which an `unknown` AnsweredBy result will be returned. Possible Values: 2000-10000. Default: 5000.
83
+ # @param [String] amd_status_callback The URL that we should call using the `amd_status_callback_method` to notify customer application whether the call was answered by human, machine or fax.
84
+ # @param [String] amd_status_callback_method The HTTP method we should use when calling the `amd_status_callback` URL. Can be: `GET` or `POST` and the default is `POST`.
85
+ # @param [String] trim Whether to trim any leading and trailing silence from the participant recording. Can be: `trim-silence` or `do-not-trim` and the default is `trim-silence`.
86
+ # @param [String] call_token A token string needed to invoke a forwarded call. A call_token is generated when an incoming call is received on a Twilio number. Pass an incoming call's call_token value to a forwarded call via the call_token parameter when creating a new call. A forwarded call should bear the same CallerID of the original incoming call.
87
+ # @param [String] client_notification_url The URL that we should use to deliver `push call notification`.
88
+ # @param [String] caller_display_name The name that populates the display name in the From header. Must be between 2 and 255 characters. Only applicable for calls to sip address.
89
+ # @return [ParticipantInstance] Created ParticipantInstance
90
+ def create(
91
+ from: nil,
92
+ to: nil,
93
+ status_callback: :unset,
94
+ status_callback_method: :unset,
95
+ status_callback_event: :unset,
96
+ label: :unset,
97
+ timeout: :unset,
98
+ record: :unset,
99
+ muted: :unset,
100
+ beep: :unset,
101
+ start_conference_on_enter: :unset,
102
+ end_conference_on_exit: :unset,
103
+ wait_url: :unset,
104
+ wait_method: :unset,
105
+ early_media: :unset,
106
+ max_participants: :unset,
107
+ conference_record: :unset,
108
+ conference_trim: :unset,
109
+ conference_status_callback: :unset,
110
+ conference_status_callback_method: :unset,
111
+ conference_status_callback_event: :unset,
112
+ recording_channels: :unset,
113
+ recording_status_callback: :unset,
114
+ recording_status_callback_method: :unset,
115
+ sip_auth_username: :unset,
116
+ sip_auth_password: :unset,
117
+ region: :unset,
118
+ conference_recording_status_callback: :unset,
119
+ conference_recording_status_callback_method: :unset,
120
+ recording_status_callback_event: :unset,
121
+ conference_recording_status_callback_event: :unset,
122
+ coaching: :unset,
123
+ call_sid_to_coach: :unset,
124
+ jitter_buffer_size: :unset,
125
+ byoc: :unset,
126
+ caller_id: :unset,
127
+ call_reason: :unset,
128
+ recording_track: :unset,
129
+ time_limit: :unset,
130
+ machine_detection: :unset,
131
+ machine_detection_timeout: :unset,
132
+ machine_detection_speech_threshold: :unset,
133
+ machine_detection_speech_end_threshold: :unset,
134
+ machine_detection_silence_timeout: :unset,
135
+ amd_status_callback: :unset,
136
+ amd_status_callback_method: :unset,
137
+ trim: :unset,
138
+ call_token: :unset,
139
+ client_notification_url: :unset,
140
+ caller_display_name: :unset
141
+ )
406
142
 
407
- class ParticipantContext < InstanceContext
408
- ##
409
- # Initialize the ParticipantContext
410
- # @param [Version] version Version that contains the resource
411
- # @param [String] account_sid The SID of the
412
- # {Account}[https://www.twilio.com/docs/iam/api/account] that created the
413
- # Participant resource to fetch.
414
- # @param [String] conference_sid The SID of the conference with the participant to
415
- # fetch.
416
- # @param [String] call_sid The
417
- # {Call}[https://www.twilio.com/docs/voice/api/call-resource] SID or label of the
418
- # participant to fetch. Non URL safe characters in a label must be percent
419
- # encoded, for example, a space character is represented as %20.
420
- # @return [ParticipantContext] ParticipantContext
421
- def initialize(version, account_sid, conference_sid, call_sid)
422
- super(version)
423
-
424
- # Path Solution
425
- @solution = {account_sid: account_sid, conference_sid: conference_sid, call_sid: call_sid, }
426
- @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants/#{@solution[:call_sid]}.json"
427
- end
428
-
429
- ##
430
- # Fetch the ParticipantInstance
431
- # @return [ParticipantInstance] Fetched ParticipantInstance
432
- def fetch
433
- payload = @version.fetch('GET', @uri)
434
-
435
- ParticipantInstance.new(
436
- @version,
437
- payload,
438
- account_sid: @solution[:account_sid],
439
- conference_sid: @solution[:conference_sid],
440
- call_sid: @solution[:call_sid],
441
- )
442
- end
443
-
444
- ##
445
- # Update the ParticipantInstance
446
- # @param [Boolean] muted Whether the participant should be muted. Can be `true` or
447
- # `false`. `true` will mute the participant, and `false` will un-mute them.
448
- # Anything value other than `true` or `false` is interpreted as `false`.
449
- # @param [Boolean] hold Whether the participant should be on hold. Can be: `true`
450
- # or `false`. `true` puts the participant on hold, and `false` lets them rejoin
451
- # the conference.
452
- # @param [String] hold_url The URL we call using the `hold_method` for music that
453
- # plays when the participant is on hold. The URL may return an MP3 file, a WAV
454
- # file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or
455
- # `<Redirect>` verbs.
456
- # @param [String] hold_method The HTTP method we should use to call `hold_url`.
457
- # Can be: `GET` or `POST` and the default is `GET`.
458
- # @param [String] announce_url The URL we call using the `announce_method` for an
459
- # announcement to the participant. The URL may return an MP3 file, a WAV file, or
460
- # a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>`
461
- # verbs.
462
- # @param [String] announce_method The HTTP method we should use to call
463
- # `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
464
- # @param [String] wait_url The URL we call using the `wait_method` for the music
465
- # to play while participants are waiting for the conference to start. The URL may
466
- # return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`,
467
- # `<Say>`, `<Pause>`, or `<Redirect>` verbs. The default value is the URL of our
468
- # standard hold music. {Learn more about hold
469
- # music}[https://www.twilio.com/labs/twimlets/holdmusic].
470
- # @param [String] wait_method The HTTP method we should use to call `wait_url`.
471
- # Can be `GET` or `POST` and the default is `POST`. When using a static audio
472
- # file, this should be `GET` so that we can cache the file.
473
- # @param [Boolean] beep_on_exit Whether to play a notification beep to the
474
- # conference when the participant exits. Can be: `true` or `false`.
475
- # @param [Boolean] end_conference_on_exit Whether to end the conference when the
476
- # participant leaves. Can be: `true` or `false` and defaults to `false`.
477
- # @param [Boolean] coaching Whether the participant is coaching another call. Can
478
- # be: `true` or `false`. If not present, defaults to `false` unless
479
- # `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
480
- # @param [String] call_sid_to_coach The SID of the participant who is being
481
- # `coached`. The participant being coached is the only participant who can hear
482
- # the participant who is `coaching`.
483
- # @return [ParticipantInstance] Updated ParticipantInstance
484
- def update(muted: :unset, hold: :unset, hold_url: :unset, hold_method: :unset, announce_url: :unset, announce_method: :unset, wait_url: :unset, wait_method: :unset, beep_on_exit: :unset, end_conference_on_exit: :unset, coaching: :unset, call_sid_to_coach: :unset)
485
- data = Twilio::Values.of({
486
- 'Muted' => muted,
487
- 'Hold' => hold,
488
- 'HoldUrl' => hold_url,
489
- 'HoldMethod' => hold_method,
490
- 'AnnounceUrl' => announce_url,
491
- 'AnnounceMethod' => announce_method,
492
- 'WaitUrl' => wait_url,
493
- 'WaitMethod' => wait_method,
494
- 'BeepOnExit' => beep_on_exit,
495
- 'EndConferenceOnExit' => end_conference_on_exit,
496
- 'Coaching' => coaching,
497
- 'CallSidToCoach' => call_sid_to_coach,
498
- })
499
-
500
- payload = @version.update('POST', @uri, data: data)
501
-
502
- ParticipantInstance.new(
503
- @version,
504
- payload,
505
- account_sid: @solution[:account_sid],
506
- conference_sid: @solution[:conference_sid],
507
- call_sid: @solution[:call_sid],
508
- )
509
- end
510
-
511
- ##
512
- # Delete the ParticipantInstance
513
- # @return [Boolean] true if delete succeeds, false otherwise
514
- def delete
515
- @version.delete('DELETE', @uri)
516
- end
517
-
518
- ##
519
- # Provide a user friendly representation
520
- def to_s
521
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
522
- "#<Twilio.Api.V2010.ParticipantContext #{context}>"
523
- end
524
-
525
- ##
526
- # Provide a detailed, user friendly representation
527
- def inspect
528
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
529
- "#<Twilio.Api.V2010.ParticipantContext #{context}>"
530
- end
531
- end
143
+ data = Twilio::Values.of({
144
+ 'From' => from,
145
+ 'To' => to,
146
+ 'StatusCallback' => status_callback,
147
+ 'StatusCallbackMethod' => status_callback_method,
148
+ 'StatusCallbackEvent' => Twilio.serialize_list(status_callback_event) { |e| e },
149
+ 'Label' => label,
150
+ 'Timeout' => timeout,
151
+ 'Record' => record,
152
+ 'Muted' => muted,
153
+ 'Beep' => beep,
154
+ 'StartConferenceOnEnter' => start_conference_on_enter,
155
+ 'EndConferenceOnExit' => end_conference_on_exit,
156
+ 'WaitUrl' => wait_url,
157
+ 'WaitMethod' => wait_method,
158
+ 'EarlyMedia' => early_media,
159
+ 'MaxParticipants' => max_participants,
160
+ 'ConferenceRecord' => conference_record,
161
+ 'ConferenceTrim' => conference_trim,
162
+ 'ConferenceStatusCallback' => conference_status_callback,
163
+ 'ConferenceStatusCallbackMethod' => conference_status_callback_method,
164
+ 'ConferenceStatusCallbackEvent' => Twilio.serialize_list(conference_status_callback_event) { |e| e },
165
+ 'RecordingChannels' => recording_channels,
166
+ 'RecordingStatusCallback' => recording_status_callback,
167
+ 'RecordingStatusCallbackMethod' => recording_status_callback_method,
168
+ 'SipAuthUsername' => sip_auth_username,
169
+ 'SipAuthPassword' => sip_auth_password,
170
+ 'Region' => region,
171
+ 'ConferenceRecordingStatusCallback' => conference_recording_status_callback,
172
+ 'ConferenceRecordingStatusCallbackMethod' => conference_recording_status_callback_method,
173
+ 'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
174
+ 'ConferenceRecordingStatusCallbackEvent' => Twilio.serialize_list(conference_recording_status_callback_event) { |e| e },
175
+ 'Coaching' => coaching,
176
+ 'CallSidToCoach' => call_sid_to_coach,
177
+ 'JitterBufferSize' => jitter_buffer_size,
178
+ 'Byoc' => byoc,
179
+ 'CallerId' => caller_id,
180
+ 'CallReason' => call_reason,
181
+ 'RecordingTrack' => recording_track,
182
+ 'TimeLimit' => time_limit,
183
+ 'MachineDetection' => machine_detection,
184
+ 'MachineDetectionTimeout' => machine_detection_timeout,
185
+ 'MachineDetectionSpeechThreshold' => machine_detection_speech_threshold,
186
+ 'MachineDetectionSpeechEndThreshold' => machine_detection_speech_end_threshold,
187
+ 'MachineDetectionSilenceTimeout' => machine_detection_silence_timeout,
188
+ 'AmdStatusCallback' => amd_status_callback,
189
+ 'AmdStatusCallbackMethod' => amd_status_callback_method,
190
+ 'Trim' => trim,
191
+ 'CallToken' => call_token,
192
+ 'ClientNotificationUrl' => client_notification_url,
193
+ 'CallerDisplayName' => caller_display_name,
194
+ })
195
+
196
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
197
+
198
+
199
+
200
+
201
+
202
+ payload = @version.create('POST', @uri, data: data, headers: headers)
203
+ ParticipantInstance.new(
204
+ @version,
205
+ payload,
206
+ account_sid: @solution[:account_sid],
207
+ conference_sid: @solution[:conference_sid],
208
+ )
209
+ end
210
+
211
+ ##
212
+ # Create the ParticipantInstanceMetadata
213
+ # @param [String] from The phone number, Client identifier, or username portion of SIP address that made this call. Phone numbers are in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (e.g., +16175551212). Client identifiers are formatted `client:name`. If using a phone number, it must be a Twilio number or a Verified [outgoing caller id](https://www.twilio.com/docs/voice/api/outgoing-caller-ids) for your account. If the `to` parameter is a phone number, `from` must also be a phone number. If `to` is sip address, this value of `from` should be a username portion to be used to populate the P-Asserted-Identity header that is passed to the SIP endpoint.
214
+ # @param [String] to The phone number, SIP address, Client, TwiML App identifier that received this call. Phone numbers are in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (e.g., +16175551212). SIP addresses are formatted as `sip:name@company.com`. Client identifiers are formatted `client:name`. TwiML App identifiers are formatted `app:<APP_SID>`. [Custom parameters](https://www.twilio.com/docs/voice/api/conference-participant-resource#custom-parameters) may also be specified.
215
+ # @param [String] status_callback The URL we should call using the `status_callback_method` to send status information to your application.
216
+ # @param [String] status_callback_method The HTTP method we should use to call `status_callback`. Can be: `GET` and `POST` and defaults to `POST`.
217
+ # @param [Array[String]] status_callback_event The conference state changes that should generate a call to `status_callback`. Can be: `initiated`, `ringing`, `answered`, and `completed`. Separate multiple values with a space. The default value is `completed`.
218
+ # @param [String] label A label for this participant. If one is supplied, it may subsequently be used to fetch, update or delete the participant.
219
+ # @param [String] timeout The number of seconds that we should allow the phone to ring before assuming there is no answer. Can be an integer between `5` and `600`, inclusive. The default value is `60`. We always add a 5-second timeout buffer to outgoing calls, so value of 10 would result in an actual timeout that was closer to 15 seconds.
220
+ # @param [Boolean] record Whether to record the participant and their conferences, including the time between conferences. Can be `true` or `false` and the default is `false`.
221
+ # @param [Boolean] muted Whether the agent is muted in the conference. Can be `true` or `false` and the default is `false`.
222
+ # @param [String] beep Whether to play a notification beep to the conference when the participant joins. Can be: `true`, `false`, `onEnter`, or `onExit`. The default value is `true`.
223
+ # @param [Boolean] start_conference_on_enter Whether to start the conference when the participant joins, if it has not already started. Can be: `true` or `false` and the default is `true`. If `false` and the conference has not started, the participant is muted and hears background music until another participant starts the conference.
224
+ # @param [Boolean] end_conference_on_exit Whether to end the conference when the participant leaves. Can be: `true` or `false` and defaults to `false`.
225
+ # @param [String] wait_url The URL that Twilio calls using the `wait_method` before the conference has started. The URL may return an MP3 file, a WAV file, or a TwiML document. The default value is the URL of our standard hold music. If you do not want anything to play while waiting for the conference to start, specify an empty string by setting `wait_url` to `''`. For more details on the allowable verbs within the `waitUrl`, see the `waitUrl` attribute in the [<Conference> TwiML instruction](https://www.twilio.com/docs/voice/twiml/conference#attributes-waiturl).
226
+ # @param [String] wait_method The HTTP method we should use to call `wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file.
227
+ # @param [Boolean] early_media Whether to allow an agent to hear the state of the outbound call, including ringing or disconnect messages. Can be: `true` or `false` and defaults to `true`.
228
+ # @param [String] max_participants The maximum number of participants in the conference. Can be a positive integer from `2` to `250`. The default value is `250`.
229
+ # @param [String] conference_record Whether to record the conference the participant is joining. Can be: `true`, `false`, `record-from-start`, and `do-not-record`. The default value is `false`.
230
+ # @param [String] conference_trim Whether to trim leading and trailing silence from the conference recording. Can be: `trim-silence` or `do-not-trim` and defaults to `trim-silence`.
231
+ # @param [String] conference_status_callback The URL we should call using the `conference_status_callback_method` when the conference events in `conference_status_callback_event` occur. Only the value set by the first participant to join the conference is used. Subsequent `conference_status_callback` values are ignored.
232
+ # @param [String] conference_status_callback_method The HTTP method we should use to call `conference_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.
233
+ # @param [Array[String]] conference_status_callback_event The conference state changes that should generate a call to `conference_status_callback`. Can be: `start`, `end`, `join`, `leave`, `mute`, `hold`, `modify`, `speaker`, and `announcement`. Separate multiple values with a space. Defaults to `start end`.
234
+ # @param [String] recording_channels The recording channels for the final recording. Can be: `mono` or `dual` and the default is `mono`.
235
+ # @param [String] recording_status_callback The URL that we should call using the `recording_status_callback_method` when the recording status changes.
236
+ # @param [String] recording_status_callback_method The HTTP method we should use when we call `recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.
237
+ # @param [String] sip_auth_username The SIP username used for authentication.
238
+ # @param [String] sip_auth_password The SIP password for authentication.
239
+ # @param [String] region The [region](https://support.twilio.com/hc/en-us/articles/223132167-How-global-low-latency-routing-and-region-selection-work-for-conferences-and-Client-calls) where we should mix the recorded audio. Can be:`us1`, `us2`, `ie1`, `de1`, `sg1`, `br1`, `au1`, or `jp1`.
240
+ # @param [String] conference_recording_status_callback The URL we should call using the `conference_recording_status_callback_method` when the conference recording is available.
241
+ # @param [String] conference_recording_status_callback_method The HTTP method we should use to call `conference_recording_status_callback`. Can be: `GET` or `POST` and defaults to `POST`.
242
+ # @param [Array[String]] recording_status_callback_event The recording state changes that should generate a call to `recording_status_callback`. Can be: `started`, `in-progress`, `paused`, `resumed`, `stopped`, `completed`, `failed`, and `absent`. Separate multiple values with a space, ex: `'in-progress completed failed'`.
243
+ # @param [Array[String]] conference_recording_status_callback_event The conference recording state changes that generate a call to `conference_recording_status_callback`. Can be: `in-progress`, `completed`, `failed`, and `absent`. Separate multiple values with a space, ex: `'in-progress completed failed'`
244
+ # @param [Boolean] coaching Whether the participant is coaching another call. Can be: `true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
245
+ # @param [String] call_sid_to_coach The SID of the participant who is being `coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.
246
+ # @param [String] jitter_buffer_size Jitter buffer size for the connecting participant. Twilio will use this setting to apply Jitter Buffer before participant's audio is mixed into the conference. Can be: `off`, `small`, `medium`, and `large`. Default to `large`.
247
+ # @param [String] byoc The SID of a BYOC (Bring Your Own Carrier) trunk to route this call with. Note that `byoc` is only meaningful when `to` is a phone number; it will otherwise be ignored. (Beta)
248
+ # @param [String] caller_id The phone number, Client identifier, or username portion of SIP address that made this call. Phone numbers are in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (e.g., +16175551212). Client identifiers are formatted `client:name`. If using a phone number, it must be a Twilio number or a Verified [outgoing caller id](https://www.twilio.com/docs/voice/api/outgoing-caller-ids) for your account. If the `to` parameter is a phone number, `callerId` must also be a phone number. If `to` is sip address, this value of `callerId` should be a username portion to be used to populate the From header that is passed to the SIP endpoint.
249
+ # @param [String] call_reason The Reason for the outgoing call. Use it to specify the purpose of the call that is presented on the called party's phone. (Branded Calls Beta)
250
+ # @param [String] recording_track The audio track to record for the call. Can be: `inbound`, `outbound` or `both`. The default is `both`. `inbound` records the audio that is received by Twilio. `outbound` records the audio that is sent from Twilio. `both` records the audio that is received and sent by Twilio.
251
+ # @param [String] time_limit The maximum duration of the call in seconds. Constraints depend on account and configuration.
252
+ # @param [String] machine_detection Whether to detect if a human, answering machine, or fax has picked up the call. Can be: `Enable` or `DetectMessageEnd`. Use `Enable` if you would like us to return `AnsweredBy` as soon as the called party is identified. Use `DetectMessageEnd`, if you would like to leave a message on an answering machine. For more information, see [Answering Machine Detection](https://www.twilio.com/docs/voice/answering-machine-detection).
253
+ # @param [String] machine_detection_timeout The number of seconds that we should attempt to detect an answering machine before timing out and sending a voice request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds.
254
+ # @param [String] machine_detection_speech_threshold The number of milliseconds that is used as the measuring stick for the length of the speech activity, where durations lower than this value will be interpreted as a human and longer than this value as a machine. Possible Values: 1000-6000. Default: 2400.
255
+ # @param [String] machine_detection_speech_end_threshold The number of milliseconds of silence after speech activity at which point the speech activity is considered complete. Possible Values: 500-5000. Default: 1200.
256
+ # @param [String] machine_detection_silence_timeout The number of milliseconds of initial silence after which an `unknown` AnsweredBy result will be returned. Possible Values: 2000-10000. Default: 5000.
257
+ # @param [String] amd_status_callback The URL that we should call using the `amd_status_callback_method` to notify customer application whether the call was answered by human, machine or fax.
258
+ # @param [String] amd_status_callback_method The HTTP method we should use when calling the `amd_status_callback` URL. Can be: `GET` or `POST` and the default is `POST`.
259
+ # @param [String] trim Whether to trim any leading and trailing silence from the participant recording. Can be: `trim-silence` or `do-not-trim` and the default is `trim-silence`.
260
+ # @param [String] call_token A token string needed to invoke a forwarded call. A call_token is generated when an incoming call is received on a Twilio number. Pass an incoming call's call_token value to a forwarded call via the call_token parameter when creating a new call. A forwarded call should bear the same CallerID of the original incoming call.
261
+ # @param [String] client_notification_url The URL that we should use to deliver `push call notification`.
262
+ # @param [String] caller_display_name The name that populates the display name in the From header. Must be between 2 and 255 characters. Only applicable for calls to sip address.
263
+ # @return [ParticipantInstance] Created ParticipantInstance
264
+ def create_with_metadata(
265
+ from: nil,
266
+ to: nil,
267
+ status_callback: :unset,
268
+ status_callback_method: :unset,
269
+ status_callback_event: :unset,
270
+ label: :unset,
271
+ timeout: :unset,
272
+ record: :unset,
273
+ muted: :unset,
274
+ beep: :unset,
275
+ start_conference_on_enter: :unset,
276
+ end_conference_on_exit: :unset,
277
+ wait_url: :unset,
278
+ wait_method: :unset,
279
+ early_media: :unset,
280
+ max_participants: :unset,
281
+ conference_record: :unset,
282
+ conference_trim: :unset,
283
+ conference_status_callback: :unset,
284
+ conference_status_callback_method: :unset,
285
+ conference_status_callback_event: :unset,
286
+ recording_channels: :unset,
287
+ recording_status_callback: :unset,
288
+ recording_status_callback_method: :unset,
289
+ sip_auth_username: :unset,
290
+ sip_auth_password: :unset,
291
+ region: :unset,
292
+ conference_recording_status_callback: :unset,
293
+ conference_recording_status_callback_method: :unset,
294
+ recording_status_callback_event: :unset,
295
+ conference_recording_status_callback_event: :unset,
296
+ coaching: :unset,
297
+ call_sid_to_coach: :unset,
298
+ jitter_buffer_size: :unset,
299
+ byoc: :unset,
300
+ caller_id: :unset,
301
+ call_reason: :unset,
302
+ recording_track: :unset,
303
+ time_limit: :unset,
304
+ machine_detection: :unset,
305
+ machine_detection_timeout: :unset,
306
+ machine_detection_speech_threshold: :unset,
307
+ machine_detection_speech_end_threshold: :unset,
308
+ machine_detection_silence_timeout: :unset,
309
+ amd_status_callback: :unset,
310
+ amd_status_callback_method: :unset,
311
+ trim: :unset,
312
+ call_token: :unset,
313
+ client_notification_url: :unset,
314
+ caller_display_name: :unset
315
+ )
316
+
317
+ data = Twilio::Values.of({
318
+ 'From' => from,
319
+ 'To' => to,
320
+ 'StatusCallback' => status_callback,
321
+ 'StatusCallbackMethod' => status_callback_method,
322
+ 'StatusCallbackEvent' => Twilio.serialize_list(status_callback_event) { |e| e },
323
+ 'Label' => label,
324
+ 'Timeout' => timeout,
325
+ 'Record' => record,
326
+ 'Muted' => muted,
327
+ 'Beep' => beep,
328
+ 'StartConferenceOnEnter' => start_conference_on_enter,
329
+ 'EndConferenceOnExit' => end_conference_on_exit,
330
+ 'WaitUrl' => wait_url,
331
+ 'WaitMethod' => wait_method,
332
+ 'EarlyMedia' => early_media,
333
+ 'MaxParticipants' => max_participants,
334
+ 'ConferenceRecord' => conference_record,
335
+ 'ConferenceTrim' => conference_trim,
336
+ 'ConferenceStatusCallback' => conference_status_callback,
337
+ 'ConferenceStatusCallbackMethod' => conference_status_callback_method,
338
+ 'ConferenceStatusCallbackEvent' => Twilio.serialize_list(conference_status_callback_event) { |e| e },
339
+ 'RecordingChannels' => recording_channels,
340
+ 'RecordingStatusCallback' => recording_status_callback,
341
+ 'RecordingStatusCallbackMethod' => recording_status_callback_method,
342
+ 'SipAuthUsername' => sip_auth_username,
343
+ 'SipAuthPassword' => sip_auth_password,
344
+ 'Region' => region,
345
+ 'ConferenceRecordingStatusCallback' => conference_recording_status_callback,
346
+ 'ConferenceRecordingStatusCallbackMethod' => conference_recording_status_callback_method,
347
+ 'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
348
+ 'ConferenceRecordingStatusCallbackEvent' => Twilio.serialize_list(conference_recording_status_callback_event) { |e| e },
349
+ 'Coaching' => coaching,
350
+ 'CallSidToCoach' => call_sid_to_coach,
351
+ 'JitterBufferSize' => jitter_buffer_size,
352
+ 'Byoc' => byoc,
353
+ 'CallerId' => caller_id,
354
+ 'CallReason' => call_reason,
355
+ 'RecordingTrack' => recording_track,
356
+ 'TimeLimit' => time_limit,
357
+ 'MachineDetection' => machine_detection,
358
+ 'MachineDetectionTimeout' => machine_detection_timeout,
359
+ 'MachineDetectionSpeechThreshold' => machine_detection_speech_threshold,
360
+ 'MachineDetectionSpeechEndThreshold' => machine_detection_speech_end_threshold,
361
+ 'MachineDetectionSilenceTimeout' => machine_detection_silence_timeout,
362
+ 'AmdStatusCallback' => amd_status_callback,
363
+ 'AmdStatusCallbackMethod' => amd_status_callback_method,
364
+ 'Trim' => trim,
365
+ 'CallToken' => call_token,
366
+ 'ClientNotificationUrl' => client_notification_url,
367
+ 'CallerDisplayName' => caller_display_name,
368
+ })
369
+
370
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
371
+
372
+
373
+
374
+
375
+
376
+ response = @version.create_with_metadata('POST', @uri, data: data, headers: headers)
377
+ participant_instance = ParticipantInstance.new(
378
+ @version,
379
+ response.body,
380
+ account_sid: @solution[:account_sid],
381
+ conference_sid: @solution[:conference_sid],
382
+ )
383
+ ParticipantInstanceMetadata.new(
384
+ @version,
385
+ participant_instance,
386
+ response.headers,
387
+ response.status_code
388
+ )
389
+ end
390
+
391
+
392
+ ##
393
+ # Lists ParticipantInstance records from the API as a list.
394
+ # Unlike stream(), this operation is eager and will load `limit` records into
395
+ # memory before returning.
396
+ # @param [Boolean] muted Whether to return only participants that are muted. Can be: `true` or `false`.
397
+ # @param [Boolean] hold Whether to return only participants that are on hold. Can be: `true` or `false`.
398
+ # @param [Boolean] coaching Whether to return only participants who are coaching another call. Can be: `true` or `false`.
399
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
400
+ # guarantees to never return more than limit. Default is no limit
401
+ # @param [Integer] page_size Number of records to fetch per request, when
402
+ # not set will use the default value of 50 records. If no page_size is defined
403
+ # but a limit is defined, stream() will attempt to read the limit with the most
404
+ # efficient page size, i.e. min(limit, 1000)
405
+ # @return [Array] Array of up to limit results
406
+ def list(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
407
+ self.stream(
408
+ muted: muted,
409
+ hold: hold,
410
+ coaching: coaching,
411
+ limit: limit,
412
+ page_size: page_size
413
+ ).entries
414
+ end
415
+
416
+ ##
417
+ # Streams Instance records from the API as an Enumerable.
418
+ # This operation lazily loads records as efficiently as possible until the limit
419
+ # is reached.
420
+ # @param [Boolean] muted Whether to return only participants that are muted. Can be: `true` or `false`.
421
+ # @param [Boolean] hold Whether to return only participants that are on hold. Can be: `true` or `false`.
422
+ # @param [Boolean] coaching Whether to return only participants who are coaching another call. Can be: `true` or `false`.
423
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
424
+ # guarantees to never return more than limit. Default is no limit
425
+ # @param [Integer] page_size Number of records to fetch per request, when
426
+ # not set will use the default value of 50 records. If no page_size is defined
427
+ # but a limit is defined, stream() will attempt to read the limit with the most
428
+ # efficient page size, i.e. min(limit, 1000)
429
+ # @return [Enumerable] Enumerable that will yield up to limit results
430
+ def stream(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
431
+ limits = @version.read_limits(limit, page_size)
432
+
433
+ page = self.page(
434
+ muted: muted,
435
+ hold: hold,
436
+ coaching: coaching,
437
+ page_size: limits[:page_size], )
438
+
439
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
440
+ end
441
+
442
+ ##
443
+ # Lists ParticipantPageMetadata records from the API as a list.
444
+ # @param [Boolean] muted Whether to return only participants that are muted. Can be: `true` or `false`.
445
+ # @param [Boolean] hold Whether to return only participants that are on hold. Can be: `true` or `false`.
446
+ # @param [Boolean] coaching Whether to return only participants who are coaching another call. Can be: `true` or `false`.
447
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
448
+ # guarantees to never return more than limit. Default is no limit
449
+ # @param [Integer] page_size Number of records to fetch per request, when
450
+ # not set will use the default value of 50 records. If no page_size is defined
451
+ # but a limit is defined, stream() will attempt to read the limit with the most
452
+ # efficient page size, i.e. min(limit, 1000)
453
+ # @return [Array] Array of up to limit results
454
+ def list_with_metadata(muted: :unset, hold: :unset, coaching: :unset, limit: nil, page_size: nil)
455
+ limits = @version.read_limits(limit, page_size)
456
+ params = Twilio::Values.of({
457
+ 'Muted' => muted,
458
+ 'Hold' => hold,
459
+ 'Coaching' => coaching,
460
+
461
+ 'PageSize' => limits[:page_size],
462
+ });
463
+ headers = Twilio::Values.of({})
464
+
465
+ response = @version.page('GET', @uri, params: params, headers: headers)
466
+
467
+ ParticipantPageMetadata.new(@version, response, @solution, limits[:limit])
468
+ end
469
+
470
+ ##
471
+ # When passed a block, yields ParticipantInstance records from the API.
472
+ # This operation lazily loads records as efficiently as possible until the limit
473
+ # is reached.
474
+ def each
475
+ limits = @version.read_limits
476
+
477
+ page = self.page(page_size: limits[:page_size], )
478
+
479
+ @version.stream(page,
480
+ limit: limits[:limit],
481
+ page_limit: limits[:page_limit]).each {|x| yield x}
482
+ end
483
+
484
+ ##
485
+ # Retrieve a single page of ParticipantInstance records from the API.
486
+ # Request is executed immediately.
487
+ # @param [Boolean] muted Whether to return only participants that are muted. Can be: `true` or `false`.
488
+ # @param [Boolean] hold Whether to return only participants that are on hold. Can be: `true` or `false`.
489
+ # @param [Boolean] coaching Whether to return only participants who are coaching another call. Can be: `true` or `false`.
490
+ # @param [String] page_token PageToken provided by the API
491
+ # @param [Integer] page_number Page Number, this value is simply for client state
492
+ # @param [Integer] page_size Number of records to return, defaults to 50
493
+ # @return [Page] Page of ParticipantInstance
494
+ def page(muted: :unset, hold: :unset, coaching: :unset, page_token: :unset, page_number: :unset,page_size: :unset)
495
+ params = Twilio::Values.of({
496
+ 'Muted' => muted,
497
+ 'Hold' => hold,
498
+ 'Coaching' => coaching,
499
+ 'PageToken' => page_token,
500
+ 'Page' => page_number,
501
+ 'PageSize' => page_size,
502
+ })
503
+ headers = Twilio::Values.of({})
504
+
505
+
506
+
507
+ response = @version.page('GET', @uri, params: params, headers: headers)
508
+
509
+ ParticipantPage.new(@version, response, @solution)
510
+ end
511
+
512
+ ##
513
+ # Retrieve a single page of ParticipantInstance records from the API.
514
+ # Request is executed immediately.
515
+ # @param [String] target_url API-generated URL for the requested results page
516
+ # @return [Page] Page of ParticipantInstance
517
+ def get_page(target_url)
518
+ response = @version.domain.request(
519
+ 'GET',
520
+ target_url
521
+ )
522
+ ParticipantPage.new(@version, response, @solution)
523
+ end
524
+
525
+
526
+
527
+ # Provide a user friendly representation
528
+ def to_s
529
+ '#<Twilio.Api.V2010.ParticipantList>'
530
+ end
531
+ end
532
+
533
+
534
+ class ParticipantContext < InstanceContext
535
+ ##
536
+ # Initialize the ParticipantContext
537
+ # @param [Version] version Version that contains the resource
538
+ # @param [String] account_sid The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Participant resources to update.
539
+ # @param [String] conference_sid The SID of the conference with the participant to update.
540
+ # @param [String] call_sid The [Call](https://www.twilio.com/docs/voice/api/call-resource) SID or label of the participant to update. Non URL safe characters in a label must be percent encoded, for example, a space character is represented as %20.
541
+ # @return [ParticipantContext] ParticipantContext
542
+ def initialize(version, account_sid, conference_sid, call_sid)
543
+ super(version)
544
+
545
+
546
+ # Path Solution
547
+ @solution = { account_sid: account_sid, conference_sid: conference_sid, call_sid: call_sid, }
548
+ @uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Participants/#{@solution[:call_sid]}.json"
549
+
550
+
551
+ end
552
+ ##
553
+ # Delete the ParticipantInstance
554
+ # @return [Boolean] True if delete succeeds, false otherwise
555
+ def delete
556
+
557
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
558
+
559
+
560
+
561
+
562
+ @version.delete('DELETE', @uri, headers: headers)
563
+ end
564
+
565
+ ##
566
+ # Delete the ParticipantInstanceMetadata
567
+ # @return [Boolean] True if delete succeeds, false otherwise
568
+ def delete_with_metadata
569
+
570
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
571
+
572
+
573
+
574
+ response = @version.delete_with_metadata('DELETE', @uri, headers: headers)
575
+ participant_instance = ParticipantInstance.new(
576
+ @version,
577
+ response.body,
578
+ account_sid: @solution[:account_sid],
579
+ sid: @solution[:sid],
580
+ )
581
+ ParticipantInstanceMetadata.new(@version, participant_instance, response.headers, response.status_code)
582
+ end
583
+
584
+ ##
585
+ # Fetch the ParticipantInstance
586
+ # @return [ParticipantInstance] Fetched ParticipantInstance
587
+ def fetch
588
+
589
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
590
+
591
+
592
+
593
+
594
+
595
+ payload = @version.fetch('GET', @uri, headers: headers)
596
+ ParticipantInstance.new(
597
+ @version,
598
+ payload,
599
+ account_sid: @solution[:account_sid],
600
+ conference_sid: @solution[:conference_sid],
601
+ call_sid: @solution[:call_sid],
602
+ )
603
+ end
604
+
605
+ ##
606
+ # Fetch the ParticipantInstanceMetadata
607
+ # @return [ParticipantInstance] Fetched ParticipantInstance
608
+ def fetch_with_metadata
609
+
610
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
611
+
612
+
613
+
614
+
615
+
616
+ response = @version.fetch_with_metadata('GET', @uri, headers: headers)
617
+ participant_instance = ParticipantInstance.new(
618
+ @version,
619
+ response.body,
620
+ account_sid: @solution[:account_sid],
621
+ conference_sid: @solution[:conference_sid],
622
+ call_sid: @solution[:call_sid],
623
+ )
624
+ ParticipantInstanceMetadata.new(
625
+ @version,
626
+ participant_instance,
627
+ response.headers,
628
+ response.status_code
629
+ )
630
+ end
631
+
632
+ ##
633
+ # Update the ParticipantInstance
634
+ # @param [Boolean] muted Whether the participant should be muted. Can be `true` or `false`. `true` will mute the participant, and `false` will un-mute them. Anything value other than `true` or `false` is interpreted as `false`.
635
+ # @param [Boolean] hold Whether the participant should be on hold. Can be: `true` or `false`. `true` puts the participant on hold, and `false` lets them rejoin the conference.
636
+ # @param [String] hold_url The URL we call using the `hold_method` for music that plays when the participant is on hold. The URL may return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
637
+ # @param [String] hold_method The HTTP method we should use to call `hold_url`. Can be: `GET` or `POST` and the default is `GET`.
638
+ # @param [String] announce_url The URL we call using the `announce_method` for an announcement to the participant. The URL may return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
639
+ # @param [String] announce_method The HTTP method we should use to call `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
640
+ # @param [String] wait_url The URL that Twilio calls using the `wait_method` before the conference has started. The URL may return an MP3 file, a WAV file, or a TwiML document. The default value is the URL of our standard hold music. If you do not want anything to play while waiting for the conference to start, specify an empty string by setting `wait_url` to `''`. For more details on the allowable verbs within the `waitUrl`, see the `waitUrl` attribute in the [<Conference> TwiML instruction](https://www.twilio.com/docs/voice/twiml/conference#attributes-waiturl).
641
+ # @param [String] wait_method The HTTP method we should use to call `wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file.
642
+ # @param [Boolean] beep_on_exit Whether to play a notification beep to the conference when the participant exits. Can be: `true` or `false`.
643
+ # @param [Boolean] end_conference_on_exit Whether to end the conference when the participant leaves. Can be: `true` or `false` and defaults to `false`.
644
+ # @param [Boolean] coaching Whether the participant is coaching another call. Can be: `true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
645
+ # @param [String] call_sid_to_coach The SID of the participant who is being `coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.
646
+ # @return [ParticipantInstance] Updated ParticipantInstance
647
+ def update(
648
+ muted: :unset,
649
+ hold: :unset,
650
+ hold_url: :unset,
651
+ hold_method: :unset,
652
+ announce_url: :unset,
653
+ announce_method: :unset,
654
+ wait_url: :unset,
655
+ wait_method: :unset,
656
+ beep_on_exit: :unset,
657
+ end_conference_on_exit: :unset,
658
+ coaching: :unset,
659
+ call_sid_to_coach: :unset
660
+ )
661
+
662
+ data = Twilio::Values.of({
663
+ 'Muted' => muted,
664
+ 'Hold' => hold,
665
+ 'HoldUrl' => hold_url,
666
+ 'HoldMethod' => hold_method,
667
+ 'AnnounceUrl' => announce_url,
668
+ 'AnnounceMethod' => announce_method,
669
+ 'WaitUrl' => wait_url,
670
+ 'WaitMethod' => wait_method,
671
+ 'BeepOnExit' => beep_on_exit,
672
+ 'EndConferenceOnExit' => end_conference_on_exit,
673
+ 'Coaching' => coaching,
674
+ 'CallSidToCoach' => call_sid_to_coach,
675
+ })
676
+
677
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
678
+
679
+
680
+
681
+
682
+
683
+ payload = @version.update('POST', @uri, data: data, headers: headers)
684
+ ParticipantInstance.new(
685
+ @version,
686
+ payload,
687
+ account_sid: @solution[:account_sid],
688
+ conference_sid: @solution[:conference_sid],
689
+ call_sid: @solution[:call_sid],
690
+ )
691
+ end
532
692
 
533
- class ParticipantInstance < InstanceResource
534
- ##
535
- # Initialize the ParticipantInstance
536
- # @param [Version] version Version that contains the resource
537
- # @param [Hash] payload payload that contains response from Twilio
538
- # @param [String] account_sid The SID of the
539
- # {Account}[https://www.twilio.com/docs/iam/api/account] that created the
540
- # Participant resource.
541
- # @param [String] conference_sid The SID of the conference the participant is in.
542
- # @param [String] call_sid The
543
- # {Call}[https://www.twilio.com/docs/voice/api/call-resource] SID or label of the
544
- # participant to fetch. Non URL safe characters in a label must be percent
545
- # encoded, for example, a space character is represented as %20.
546
- # @return [ParticipantInstance] ParticipantInstance
547
- def initialize(version, payload, account_sid: nil, conference_sid: nil, call_sid: nil)
548
- super(version)
549
-
550
- # Marshaled Properties
551
- @properties = {
552
- 'account_sid' => payload['account_sid'],
553
- 'call_sid' => payload['call_sid'],
554
- 'label' => payload['label'],
555
- 'call_sid_to_coach' => payload['call_sid_to_coach'],
556
- 'coaching' => payload['coaching'],
557
- 'conference_sid' => payload['conference_sid'],
558
- 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
559
- 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
560
- 'end_conference_on_exit' => payload['end_conference_on_exit'],
561
- 'muted' => payload['muted'],
562
- 'hold' => payload['hold'],
563
- 'start_conference_on_enter' => payload['start_conference_on_enter'],
564
- 'status' => payload['status'],
565
- 'uri' => payload['uri'],
566
- }
567
-
568
- # Context
569
- @instance_context = nil
570
- @params = {
571
- 'account_sid' => account_sid,
572
- 'conference_sid' => conference_sid,
573
- 'call_sid' => call_sid || @properties['call_sid'],
574
- }
575
- end
576
-
577
- ##
578
- # Generate an instance context for the instance, the context is capable of
579
- # performing various actions. All instance actions are proxied to the context
580
- # @return [ParticipantContext] ParticipantContext for this ParticipantInstance
581
- def context
582
- unless @instance_context
583
- @instance_context = ParticipantContext.new(
584
- @version,
585
- @params['account_sid'],
586
- @params['conference_sid'],
587
- @params['call_sid'],
588
- )
693
+ ##
694
+ # Update the ParticipantInstanceMetadata
695
+ # @param [Boolean] muted Whether the participant should be muted. Can be `true` or `false`. `true` will mute the participant, and `false` will un-mute them. Anything value other than `true` or `false` is interpreted as `false`.
696
+ # @param [Boolean] hold Whether the participant should be on hold. Can be: `true` or `false`. `true` puts the participant on hold, and `false` lets them rejoin the conference.
697
+ # @param [String] hold_url The URL we call using the `hold_method` for music that plays when the participant is on hold. The URL may return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
698
+ # @param [String] hold_method The HTTP method we should use to call `hold_url`. Can be: `GET` or `POST` and the default is `GET`.
699
+ # @param [String] announce_url The URL we call using the `announce_method` for an announcement to the participant. The URL may return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
700
+ # @param [String] announce_method The HTTP method we should use to call `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
701
+ # @param [String] wait_url The URL that Twilio calls using the `wait_method` before the conference has started. The URL may return an MP3 file, a WAV file, or a TwiML document. The default value is the URL of our standard hold music. If you do not want anything to play while waiting for the conference to start, specify an empty string by setting `wait_url` to `''`. For more details on the allowable verbs within the `waitUrl`, see the `waitUrl` attribute in the [<Conference> TwiML instruction](https://www.twilio.com/docs/voice/twiml/conference#attributes-waiturl).
702
+ # @param [String] wait_method The HTTP method we should use to call `wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file.
703
+ # @param [Boolean] beep_on_exit Whether to play a notification beep to the conference when the participant exits. Can be: `true` or `false`.
704
+ # @param [Boolean] end_conference_on_exit Whether to end the conference when the participant leaves. Can be: `true` or `false` and defaults to `false`.
705
+ # @param [Boolean] coaching Whether the participant is coaching another call. Can be: `true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
706
+ # @param [String] call_sid_to_coach The SID of the participant who is being `coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.
707
+ # @return [ParticipantInstance] Updated ParticipantInstance
708
+ def update_with_metadata(
709
+ muted: :unset,
710
+ hold: :unset,
711
+ hold_url: :unset,
712
+ hold_method: :unset,
713
+ announce_url: :unset,
714
+ announce_method: :unset,
715
+ wait_url: :unset,
716
+ wait_method: :unset,
717
+ beep_on_exit: :unset,
718
+ end_conference_on_exit: :unset,
719
+ coaching: :unset,
720
+ call_sid_to_coach: :unset
721
+ )
722
+
723
+ data = Twilio::Values.of({
724
+ 'Muted' => muted,
725
+ 'Hold' => hold,
726
+ 'HoldUrl' => hold_url,
727
+ 'HoldMethod' => hold_method,
728
+ 'AnnounceUrl' => announce_url,
729
+ 'AnnounceMethod' => announce_method,
730
+ 'WaitUrl' => wait_url,
731
+ 'WaitMethod' => wait_method,
732
+ 'BeepOnExit' => beep_on_exit,
733
+ 'EndConferenceOnExit' => end_conference_on_exit,
734
+ 'Coaching' => coaching,
735
+ 'CallSidToCoach' => call_sid_to_coach,
736
+ })
737
+
738
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
739
+
740
+
741
+
742
+
743
+
744
+ response = @version.update_with_metadata('POST', @uri, data: data, headers: headers)
745
+ participant_instance = ParticipantInstance.new(
746
+ @version,
747
+ response.body,
748
+ account_sid: @solution[:account_sid],
749
+ conference_sid: @solution[:conference_sid],
750
+ call_sid: @solution[:call_sid],
751
+ )
752
+ ParticipantInstanceMetadata.new(
753
+ @version,
754
+ participant_instance,
755
+ response.headers,
756
+ response.status_code
757
+ )
758
+ end
759
+
760
+
761
+ ##
762
+ # Provide a user friendly representation
763
+ def to_s
764
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
765
+ "#<Twilio.Api.V2010.ParticipantContext #{context}>"
766
+ end
767
+
768
+ ##
769
+ # Provide a detailed, user friendly representation
770
+ def inspect
771
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
772
+ "#<Twilio.Api.V2010.ParticipantContext #{context}>"
773
+ end
774
+ end
775
+
776
+ class ParticipantInstanceMetadata < InstanceResourceMetadata
777
+ ##
778
+ # Initializes a new ParticipantInstanceMetadata.
779
+ # @param [Version] version Version that contains the resource
780
+ # @param [}ParticipantInstance] participant_instance The instance associated with the metadata.
781
+ # @param [Hash] headers Header object with response headers.
782
+ # @param [Integer] status_code The HTTP status code of the response.
783
+ # @return [ParticipantInstanceMetadata] The initialized instance with metadata.
784
+ def initialize(version, participant_instance, headers, status_code)
785
+ super(version, headers, status_code)
786
+ @participant_instance = participant_instance
787
+ end
788
+
789
+ def participant
790
+ @participant_instance
791
+ end
792
+
793
+ def headers
794
+ @headers
795
+ end
796
+
797
+ def status_code
798
+ @status_code
799
+ end
800
+
801
+ def to_s
802
+ "<Twilio.Api.V2010.ParticipantInstanceMetadata status=#{@status_code}>"
803
+ end
804
+ end
805
+
806
+ class ParticipantListResponse < InstanceListResource
807
+ # @param [Array<ParticipantInstance>] instance
808
+ # @param [Hash{String => Object}] headers
809
+ # @param [Integer] status_code
810
+ def initialize(version, payload, key)
811
+ @participant_instance = payload.body[key].map do |data|
812
+ ParticipantInstance.new(version, data)
813
+ end
814
+ @headers = payload.headers
815
+ @status_code = payload.status_code
816
+ end
817
+
818
+ def participant_instance
819
+ @instance
820
+ end
821
+ end
822
+
823
+ class ParticipantPage < Page
824
+ ##
825
+ # Initialize the ParticipantPage
826
+ # @param [Version] version Version that contains the resource
827
+ # @param [Response] response Response from the API
828
+ # @param [Hash] solution Path solution for the resource
829
+ # @return [ParticipantPage] ParticipantPage
830
+ def initialize(version, response, solution)
831
+ super(version, response)
832
+
833
+
834
+ # Path Solution
835
+ @solution = solution
836
+ end
837
+
838
+ ##
839
+ # Build an instance of ParticipantInstance
840
+ # @param [Hash] payload Payload response from the API
841
+ # @return [ParticipantInstance] ParticipantInstance
842
+ def get_instance(payload)
843
+ ParticipantInstance.new(@version, payload, account_sid: @solution[:account_sid], conference_sid: @solution[:conference_sid])
844
+ end
845
+
846
+ ##
847
+ # Provide a user friendly representation
848
+ def to_s
849
+ '<Twilio.Api.V2010.ParticipantPage>'
850
+ end
851
+ end
852
+
853
+ class ParticipantPageMetadata < PageMetadata
854
+ attr_reader :participant_page
855
+
856
+ def initialize(version, response, solution, limit)
857
+ super(version, response)
858
+ @participant_page = []
859
+ @limit = limit
860
+ key = get_key(response.body)
861
+ records = 0
862
+ while( limit != :unset && records < limit )
863
+ @participant_page << ParticipantListResponse.new(version, @payload, key, limit - records)
864
+ @payload = self.next_page
865
+ break unless @payload
866
+ records += @payload.body[key].size
867
+ end
868
+ # Path Solution
869
+ @solution = solution
870
+ end
871
+
872
+ def each
873
+ @participant_page.each do |record|
874
+ yield record
875
+ end
876
+ end
877
+
878
+ def to_s
879
+ '<Twilio::REST::Api::V2010PageMetadata>';
880
+ end
589
881
  end
590
- @instance_context
591
- end
592
-
593
- ##
594
- # @return [String] The SID of the Account that created the resource
595
- def account_sid
596
- @properties['account_sid']
597
- end
598
-
599
- ##
600
- # @return [String] The SID of the Call the resource is associated with
601
- def call_sid
602
- @properties['call_sid']
603
- end
604
-
605
- ##
606
- # @return [String] The label of this participant
607
- def label
608
- @properties['label']
609
- end
610
-
611
- ##
612
- # @return [String] The SID of the participant who is being `coached`
613
- def call_sid_to_coach
614
- @properties['call_sid_to_coach']
615
- end
616
-
617
- ##
618
- # @return [Boolean] Indicates if the participant changed to coach
619
- def coaching
620
- @properties['coaching']
621
- end
622
-
623
- ##
624
- # @return [String] The SID of the conference the participant is in
625
- def conference_sid
626
- @properties['conference_sid']
627
- end
628
-
629
- ##
630
- # @return [Time] The RFC 2822 date and time in GMT that the resource was created
631
- def date_created
632
- @properties['date_created']
633
- end
634
-
635
- ##
636
- # @return [Time] The RFC 2822 date and time in GMT that the resource was last updated
637
- def date_updated
638
- @properties['date_updated']
639
- end
640
-
641
- ##
642
- # @return [Boolean] Whether the conference ends when the participant leaves
643
- def end_conference_on_exit
644
- @properties['end_conference_on_exit']
645
- end
646
-
647
- ##
648
- # @return [Boolean] Whether the participant is muted
649
- def muted
650
- @properties['muted']
651
- end
652
-
653
- ##
654
- # @return [Boolean] Whether the participant is on hold
655
- def hold
656
- @properties['hold']
657
- end
658
-
659
- ##
660
- # @return [Boolean] Whether the conference starts when the participant joins the conference
661
- def start_conference_on_enter
662
- @properties['start_conference_on_enter']
663
- end
664
-
665
- ##
666
- # @return [participant.Status] The status of the participant's call in a session
667
- def status
668
- @properties['status']
669
- end
670
-
671
- ##
672
- # @return [String] The URI of the resource, relative to `https://api.twilio.com`
673
- def uri
674
- @properties['uri']
675
- end
676
-
677
- ##
678
- # Fetch the ParticipantInstance
679
- # @return [ParticipantInstance] Fetched ParticipantInstance
680
- def fetch
681
- context.fetch
682
- end
683
-
684
- ##
685
- # Update the ParticipantInstance
686
- # @param [Boolean] muted Whether the participant should be muted. Can be `true` or
687
- # `false`. `true` will mute the participant, and `false` will un-mute them.
688
- # Anything value other than `true` or `false` is interpreted as `false`.
689
- # @param [Boolean] hold Whether the participant should be on hold. Can be: `true`
690
- # or `false`. `true` puts the participant on hold, and `false` lets them rejoin
691
- # the conference.
692
- # @param [String] hold_url The URL we call using the `hold_method` for music that
693
- # plays when the participant is on hold. The URL may return an MP3 file, a WAV
694
- # file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or
695
- # `<Redirect>` verbs.
696
- # @param [String] hold_method The HTTP method we should use to call `hold_url`.
697
- # Can be: `GET` or `POST` and the default is `GET`.
698
- # @param [String] announce_url The URL we call using the `announce_method` for an
699
- # announcement to the participant. The URL may return an MP3 file, a WAV file, or
700
- # a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>`
701
- # verbs.
702
- # @param [String] announce_method The HTTP method we should use to call
703
- # `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
704
- # @param [String] wait_url The URL we call using the `wait_method` for the music
705
- # to play while participants are waiting for the conference to start. The URL may
706
- # return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`,
707
- # `<Say>`, `<Pause>`, or `<Redirect>` verbs. The default value is the URL of our
708
- # standard hold music. {Learn more about hold
709
- # music}[https://www.twilio.com/labs/twimlets/holdmusic].
710
- # @param [String] wait_method The HTTP method we should use to call `wait_url`.
711
- # Can be `GET` or `POST` and the default is `POST`. When using a static audio
712
- # file, this should be `GET` so that we can cache the file.
713
- # @param [Boolean] beep_on_exit Whether to play a notification beep to the
714
- # conference when the participant exits. Can be: `true` or `false`.
715
- # @param [Boolean] end_conference_on_exit Whether to end the conference when the
716
- # participant leaves. Can be: `true` or `false` and defaults to `false`.
717
- # @param [Boolean] coaching Whether the participant is coaching another call. Can
718
- # be: `true` or `false`. If not present, defaults to `false` unless
719
- # `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
720
- # @param [String] call_sid_to_coach The SID of the participant who is being
721
- # `coached`. The participant being coached is the only participant who can hear
722
- # the participant who is `coaching`.
723
- # @return [ParticipantInstance] Updated ParticipantInstance
724
- def update(muted: :unset, hold: :unset, hold_url: :unset, hold_method: :unset, announce_url: :unset, announce_method: :unset, wait_url: :unset, wait_method: :unset, beep_on_exit: :unset, end_conference_on_exit: :unset, coaching: :unset, call_sid_to_coach: :unset)
725
- context.update(
726
- muted: muted,
727
- hold: hold,
728
- hold_url: hold_url,
729
- hold_method: hold_method,
730
- announce_url: announce_url,
731
- announce_method: announce_method,
732
- wait_url: wait_url,
733
- wait_method: wait_method,
734
- beep_on_exit: beep_on_exit,
735
- end_conference_on_exit: end_conference_on_exit,
736
- coaching: coaching,
737
- call_sid_to_coach: call_sid_to_coach,
738
- )
739
- end
740
-
741
- ##
742
- # Delete the ParticipantInstance
743
- # @return [Boolean] true if delete succeeds, false otherwise
744
- def delete
745
- context.delete
746
- end
747
-
748
- ##
749
- # Provide a user friendly representation
750
- def to_s
751
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
752
- "<Twilio.Api.V2010.ParticipantInstance #{values}>"
753
- end
754
-
755
- ##
756
- # Provide a detailed, user friendly representation
757
- def inspect
758
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
759
- "<Twilio.Api.V2010.ParticipantInstance #{values}>"
760
- end
882
+ class ParticipantListResponse < InstanceListResource
883
+
884
+ # @param [Array<ParticipantInstance>] instance
885
+ # @param [Hash{String => Object}] headers
886
+ # @param [Integer] status_code
887
+ def initialize(version, payload, key, limit = :unset)
888
+ data_list = payload.body[key]
889
+ if limit != :unset
890
+ data_list = data_list[0, limit]
891
+ end
892
+ @participant = data_list.map do |data|
893
+ ParticipantInstance.new(version, data)
894
+ end
895
+ @headers = payload.headers
896
+ @status_code = payload.status_code
897
+ end
898
+
899
+ def participant
900
+ @participant
901
+ end
902
+
903
+ def headers
904
+ @headers
905
+ end
906
+
907
+ def status_code
908
+ @status_code
909
+ end
910
+ end
911
+
912
+ class ParticipantInstance < InstanceResource
913
+ ##
914
+ # Initialize the ParticipantInstance
915
+ # @param [Version] version Version that contains the resource
916
+ # @param [Hash] payload payload that contains response from Twilio
917
+ # @param [String] account_sid The SID of the
918
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this Participant
919
+ # resource.
920
+ # @param [String] sid The SID of the Call resource to fetch.
921
+ # @return [ParticipantInstance] ParticipantInstance
922
+ def initialize(version, payload , account_sid: nil, conference_sid: nil, call_sid: nil)
923
+ super(version)
924
+
925
+
926
+ # Marshaled Properties
927
+ @properties = {
928
+ 'account_sid' => payload['account_sid'],
929
+ 'call_sid' => payload['call_sid'],
930
+ 'label' => payload['label'],
931
+ 'call_sid_to_coach' => payload['call_sid_to_coach'],
932
+ 'coaching' => payload['coaching'],
933
+ 'conference_sid' => payload['conference_sid'],
934
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
935
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
936
+ 'end_conference_on_exit' => payload['end_conference_on_exit'],
937
+ 'muted' => payload['muted'],
938
+ 'hold' => payload['hold'],
939
+ 'start_conference_on_enter' => payload['start_conference_on_enter'],
940
+ 'status' => payload['status'],
941
+ 'queue_time' => payload['queue_time'],
942
+ 'uri' => payload['uri'],
943
+ }
944
+
945
+ # Context
946
+ @instance_context = nil
947
+ @params = { 'account_sid' => account_sid ,'conference_sid' => conference_sid || @properties['conference_sid'] ,'call_sid' => call_sid || @properties['call_sid'] , }
948
+ end
949
+
950
+ ##
951
+ # Generate an instance context for the instance, the context is capable of
952
+ # performing various actions. All instance actions are proxied to the context
953
+ # @return [ParticipantContext] CallContext for this CallInstance
954
+ def context
955
+ unless @instance_context
956
+ @instance_context = ParticipantContext.new(@version , @params['account_sid'], @params['conference_sid'], @params['call_sid'])
957
+ end
958
+ @instance_context
959
+ end
960
+
961
+ ##
962
+ # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Participant resource.
963
+ def account_sid
964
+ @properties['account_sid']
965
+ end
966
+
967
+ ##
968
+ # @return [String] The SID of the [Call](https://www.twilio.com/docs/voice/api/call-resource) the Participant resource is associated with.
969
+ def call_sid
970
+ @properties['call_sid']
971
+ end
972
+
973
+ ##
974
+ # @return [String] The user-specified label of this participant, if one was given when the participant was created. This may be used to fetch, update or delete the participant.
975
+ def label
976
+ @properties['label']
977
+ end
978
+
979
+ ##
980
+ # @return [String] The SID of the participant who is being `coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.
981
+ def call_sid_to_coach
982
+ @properties['call_sid_to_coach']
983
+ end
984
+
985
+ ##
986
+ # @return [Boolean] Whether the participant is coaching another call. Can be: `true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
987
+ def coaching
988
+ @properties['coaching']
989
+ end
990
+
991
+ ##
992
+ # @return [String] The SID of the conference the participant is in.
993
+ def conference_sid
994
+ @properties['conference_sid']
995
+ end
996
+
997
+ ##
998
+ # @return [Time] The date and time in GMT that the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format.
999
+ def date_created
1000
+ @properties['date_created']
1001
+ end
1002
+
1003
+ ##
1004
+ # @return [Time] The date and time in GMT that the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format.
1005
+ def date_updated
1006
+ @properties['date_updated']
1007
+ end
1008
+
1009
+ ##
1010
+ # @return [Boolean] Whether the conference ends when the participant leaves. Can be: `true` or `false` and the default is `false`. If `true`, the conference ends and all other participants drop out when the participant leaves.
1011
+ def end_conference_on_exit
1012
+ @properties['end_conference_on_exit']
1013
+ end
1014
+
1015
+ ##
1016
+ # @return [Boolean] Whether the participant is muted. Can be `true` or `false`.
1017
+ def muted
1018
+ @properties['muted']
1019
+ end
1020
+
1021
+ ##
1022
+ # @return [Boolean] Whether the participant is on hold. Can be `true` or `false`.
1023
+ def hold
1024
+ @properties['hold']
1025
+ end
1026
+
1027
+ ##
1028
+ # @return [Boolean] Whether the conference starts when the participant joins the conference, if it has not already started. Can be: `true` or `false` and the default is `true`. If `false` and the conference has not started, the participant is muted and hears background music until another participant starts the conference.
1029
+ def start_conference_on_enter
1030
+ @properties['start_conference_on_enter']
1031
+ end
1032
+
1033
+ ##
1034
+ # @return [Status]
1035
+ def status
1036
+ @properties['status']
1037
+ end
1038
+
1039
+ ##
1040
+ # @return [String] The wait time in milliseconds before participant's call is placed. Only available in the response to a create participant request.
1041
+ def queue_time
1042
+ @properties['queue_time']
1043
+ end
1044
+
1045
+ ##
1046
+ # @return [String] The URI of the resource, relative to `https://api.twilio.com`.
1047
+ def uri
1048
+ @properties['uri']
1049
+ end
1050
+
1051
+ ##
1052
+ # Delete the ParticipantInstance
1053
+ # @return [Boolean] True if delete succeeds, false otherwise
1054
+ def delete
1055
+
1056
+ context.delete
1057
+ end
1058
+
1059
+ ##
1060
+ # Fetch the ParticipantInstance
1061
+ # @return [ParticipantInstance] Fetched ParticipantInstance
1062
+ def fetch
1063
+
1064
+ context.fetch
1065
+ end
1066
+
1067
+ ##
1068
+ # Update the ParticipantInstance
1069
+ # @param [Boolean] muted Whether the participant should be muted. Can be `true` or `false`. `true` will mute the participant, and `false` will un-mute them. Anything value other than `true` or `false` is interpreted as `false`.
1070
+ # @param [Boolean] hold Whether the participant should be on hold. Can be: `true` or `false`. `true` puts the participant on hold, and `false` lets them rejoin the conference.
1071
+ # @param [String] hold_url The URL we call using the `hold_method` for music that plays when the participant is on hold. The URL may return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
1072
+ # @param [String] hold_method The HTTP method we should use to call `hold_url`. Can be: `GET` or `POST` and the default is `GET`.
1073
+ # @param [String] announce_url The URL we call using the `announce_method` for an announcement to the participant. The URL may return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
1074
+ # @param [String] announce_method The HTTP method we should use to call `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
1075
+ # @param [String] wait_url The URL that Twilio calls using the `wait_method` before the conference has started. The URL may return an MP3 file, a WAV file, or a TwiML document. The default value is the URL of our standard hold music. If you do not want anything to play while waiting for the conference to start, specify an empty string by setting `wait_url` to `''`. For more details on the allowable verbs within the `waitUrl`, see the `waitUrl` attribute in the [<Conference> TwiML instruction](https://www.twilio.com/docs/voice/twiml/conference#attributes-waiturl).
1076
+ # @param [String] wait_method The HTTP method we should use to call `wait_url`. Can be `GET` or `POST` and the default is `POST`. When using a static audio file, this should be `GET` so that we can cache the file.
1077
+ # @param [Boolean] beep_on_exit Whether to play a notification beep to the conference when the participant exits. Can be: `true` or `false`.
1078
+ # @param [Boolean] end_conference_on_exit Whether to end the conference when the participant leaves. Can be: `true` or `false` and defaults to `false`.
1079
+ # @param [Boolean] coaching Whether the participant is coaching another call. Can be: `true` or `false`. If not present, defaults to `false` unless `call_sid_to_coach` is defined. If `true`, `call_sid_to_coach` must be defined.
1080
+ # @param [String] call_sid_to_coach The SID of the participant who is being `coached`. The participant being coached is the only participant who can hear the participant who is `coaching`.
1081
+ # @return [ParticipantInstance] Updated ParticipantInstance
1082
+ def update(
1083
+ muted: :unset,
1084
+ hold: :unset,
1085
+ hold_url: :unset,
1086
+ hold_method: :unset,
1087
+ announce_url: :unset,
1088
+ announce_method: :unset,
1089
+ wait_url: :unset,
1090
+ wait_method: :unset,
1091
+ beep_on_exit: :unset,
1092
+ end_conference_on_exit: :unset,
1093
+ coaching: :unset,
1094
+ call_sid_to_coach: :unset
1095
+ )
1096
+
1097
+ context.update(
1098
+ muted: muted,
1099
+ hold: hold,
1100
+ hold_url: hold_url,
1101
+ hold_method: hold_method,
1102
+ announce_url: announce_url,
1103
+ announce_method: announce_method,
1104
+ wait_url: wait_url,
1105
+ wait_method: wait_method,
1106
+ beep_on_exit: beep_on_exit,
1107
+ end_conference_on_exit: end_conference_on_exit,
1108
+ coaching: coaching,
1109
+ call_sid_to_coach: call_sid_to_coach,
1110
+ )
1111
+ end
1112
+
1113
+ ##
1114
+ # Provide a user friendly representation
1115
+ def to_s
1116
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
1117
+ "<Twilio.Api.V2010.ParticipantInstance #{values}>"
1118
+ end
1119
+
1120
+ ##
1121
+ # Provide a detailed, user friendly representation
1122
+ def inspect
1123
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
1124
+ "<Twilio.Api.V2010.ParticipantInstance #{values}>"
1125
+ end
1126
+ end
1127
+
1128
+ end
1129
+ end
761
1130
  end
762
- end
763
1131
  end
764
- end
765
1132
  end
766
- end
767
- end
1133
+ end
1134
+
1135
+