twilio-ruby 5.15.1 → 5.58.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 (848) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +1 -0
  3. data/.gitignore +5 -0
  4. data/.rubocop.yml +22 -6
  5. data/.rubocop_todo.yml +86 -75
  6. data/.travis.yml +45 -19
  7. data/CHANGES.md +1553 -0
  8. data/CODE_OF_CONDUCT.md +73 -0
  9. data/CONTRIBUTING.md +4 -2
  10. data/Dockerfile +2 -2
  11. data/Gemfile +1 -9
  12. data/ISSUE_TEMPLATE.md +17 -13
  13. data/{LICENSE.md → LICENSE} +2 -2
  14. data/Makefile +6 -15
  15. data/PULL_REQUEST_TEMPLATE.md +30 -3
  16. data/README.md +120 -54
  17. data/Rakefile +0 -54
  18. data/VERSIONS.md +9 -10
  19. data/examples/examples.rb +1 -1
  20. data/githooks/pre-commit +0 -0
  21. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +1 -1
  22. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +3 -3
  23. data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  24. data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  25. data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  26. data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
  27. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +7 -11
  28. data/lib/twilio-ruby/http/http_client.rb +29 -14
  29. data/lib/twilio-ruby/http.rb +5 -0
  30. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  31. data/lib/twilio-ruby/jwt/jwt.rb +6 -0
  32. data/lib/twilio-ruby/jwt/task_router.rb +2 -2
  33. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  34. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +45 -46
  35. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +44 -52
  36. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +5 -4
  37. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  38. data/lib/twilio-ruby/rest/accounts/v1.rb +15 -1
  39. data/lib/twilio-ruby/rest/accounts.rb +13 -1
  40. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +40 -38
  41. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +115 -121
  42. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +162 -181
  43. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +35 -32
  44. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +169 -178
  45. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +187 -85
  46. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +166 -172
  47. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +187 -85
  48. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +187 -85
  49. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +166 -172
  50. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +187 -85
  51. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +28 -23
  52. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +125 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +75 -70
  55. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +59 -59
  56. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +72 -67
  57. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +375 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +118 -103
  59. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +433 -313
  60. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +335 -201
  61. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +80 -79
  62. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +98 -81
  63. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +80 -71
  64. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +48 -41
  65. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +53 -54
  66. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +172 -127
  67. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +171 -127
  68. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +171 -127
  69. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +304 -289
  70. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +35 -36
  71. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +25 -20
  72. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +51 -47
  73. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +203 -203
  74. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +11 -15
  75. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +11 -15
  76. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +47 -55
  77. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +56 -61
  78. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +53 -38
  79. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +79 -78
  80. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +55 -48
  81. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +48 -42
  82. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +54 -41
  83. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +70 -61
  84. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +69 -70
  85. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +20 -25
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +45 -51
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +27 -36
  88. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +48 -49
  89. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +48 -49
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +15 -13
  91. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +48 -49
  92. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +13 -11
  93. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +11 -9
  94. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +47 -47
  95. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +46 -47
  96. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +179 -95
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +64 -52
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +31 -39
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +5 -4
  100. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +16 -19
  101. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +43 -40
  102. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +70 -50
  103. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +70 -50
  104. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +70 -53
  105. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +70 -50
  106. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +70 -50
  107. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +70 -50
  108. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +70 -50
  109. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +70 -50
  110. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +67 -53
  111. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +107 -114
  112. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +3 -2
  113. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +40 -45
  114. data/lib/twilio-ruby/rest/api/v2010/account.rb +38 -28
  115. data/lib/twilio-ruby/rest/api/v2010.rb +10 -5
  116. data/lib/twilio-ruby/rest/api.rb +38 -27
  117. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +29 -24
  118. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +29 -20
  119. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +65 -59
  120. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +60 -59
  121. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +60 -58
  122. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +113 -87
  123. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +27 -24
  124. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +60 -51
  125. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +90 -76
  126. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +41 -30
  127. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +35 -22
  128. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +76 -66
  129. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +420 -0
  130. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +132 -88
  131. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +194 -0
  132. data/lib/twilio-ruby/rest/autopilot/v1.rb +15 -6
  133. data/lib/twilio-ruby/rest/autopilot.rb +8 -2
  134. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +286 -0
  135. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +286 -0
  136. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +255 -0
  137. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +243 -0
  138. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +226 -0
  139. data/lib/twilio-ruby/rest/bulkexports/v1.rb +62 -0
  140. data/lib/twilio-ruby/rest/bulkexports.rb +56 -0
  141. data/lib/twilio-ruby/rest/chat/v1/credential.rb +91 -80
  142. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +74 -68
  143. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +94 -97
  144. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +81 -73
  145. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +82 -74
  146. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +62 -62
  147. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +20 -18
  148. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +74 -81
  149. data/lib/twilio-ruby/rest/chat/v1/service.rb +338 -357
  150. data/lib/twilio-ruby/rest/chat/v1.rb +15 -11
  151. data/lib/twilio-ruby/rest/chat/v2/credential.rb +77 -84
  152. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +66 -56
  153. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +72 -74
  154. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +171 -141
  155. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +143 -135
  156. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +115 -69
  157. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +134 -117
  158. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +64 -59
  159. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +72 -67
  160. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +95 -53
  161. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +93 -88
  162. data/lib/twilio-ruby/rest/chat/v2/service.rb +224 -185
  163. data/lib/twilio-ruby/rest/chat/v2.rb +13 -11
  164. data/lib/twilio-ruby/rest/chat.rb +3 -3
  165. data/lib/twilio-ruby/rest/client.rb +196 -69
  166. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  167. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  168. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +355 -0
  169. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +502 -0
  170. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +502 -0
  171. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +410 -0
  172. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +562 -0
  173. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  174. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  175. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  176. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  177. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  178. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +278 -0
  179. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  180. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +548 -0
  181. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +541 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +595 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +481 -0
  188. data/lib/twilio-ruby/rest/{authy → conversations}/v1/service.rb +171 -92
  189. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/user.rb +451 -0
  191. data/lib/twilio-ruby/rest/conversations/v1.rb +126 -0
  192. data/lib/twilio-ruby/rest/conversations.rb +95 -0
  193. data/lib/twilio-ruby/rest/events/v1/event_type.rb +298 -0
  194. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +290 -0
  195. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  196. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  197. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  198. data/lib/twilio-ruby/rest/events/v1/sink.rb +418 -0
  199. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +346 -0
  200. data/lib/twilio-ruby/rest/events/v1/subscription.rb +397 -0
  201. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  202. data/lib/twilio-ruby/rest/events.rb +72 -0
  203. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +35 -36
  204. data/lib/twilio-ruby/rest/fax/v1/fax.rb +113 -108
  205. data/lib/twilio-ruby/rest/fax/v1.rb +8 -6
  206. data/lib/twilio-ruby/rest/fax.rb +3 -2
  207. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +340 -0
  208. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +462 -0
  209. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +565 -0
  210. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +341 -0
  211. data/lib/twilio-ruby/rest/flex_api/v1.rb +83 -0
  212. data/lib/twilio-ruby/rest/flex_api.rb +71 -0
  213. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +233 -0
  214. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  215. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  216. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +262 -0
  217. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +252 -0
  218. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +307 -0
  219. data/lib/twilio-ruby/rest/insights/v1/call.rb +236 -0
  220. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  221. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  222. data/lib/twilio-ruby/rest/insights/v1/room.rb +499 -0
  223. data/lib/twilio-ruby/rest/insights/v1.rb +67 -0
  224. data/lib/twilio-ruby/rest/insights.rb +60 -0
  225. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +47 -75
  226. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +40 -66
  227. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +47 -93
  228. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +41 -61
  229. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +50 -69
  230. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +39 -59
  231. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +6 -10
  232. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +47 -76
  233. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +69 -203
  234. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +15 -13
  235. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +50 -94
  236. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +39 -56
  237. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +40 -69
  238. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +95 -141
  239. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +87 -133
  240. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +29 -39
  241. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +85 -118
  242. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +39 -56
  243. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +38 -63
  244. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +67 -54
  245. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +68 -87
  246. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +76 -126
  247. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +15 -13
  248. data/lib/twilio-ruby/rest/ip_messaging.rb +7 -9
  249. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +63 -56
  250. data/lib/twilio-ruby/rest/lookups/v1.rb +9 -6
  251. data/lib/twilio-ruby/rest/lookups.rb +4 -4
  252. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +346 -0
  253. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  254. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  255. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +44 -46
  256. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +44 -44
  257. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +44 -44
  258. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +426 -0
  259. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +129 -0
  260. data/lib/twilio-ruby/rest/messaging/v1/service.rb +245 -127
  261. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  262. data/lib/twilio-ruby/rest/messaging/v1.rb +44 -6
  263. data/lib/twilio-ruby/rest/messaging.rb +29 -2
  264. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +75 -88
  265. data/lib/twilio-ruby/rest/monitor/v1/event.rb +61 -65
  266. data/lib/twilio-ruby/rest/monitor/v1.rb +13 -11
  267. data/lib/twilio-ruby/rest/monitor.rb +5 -3
  268. data/lib/twilio-ruby/rest/notify/v1/credential.rb +82 -81
  269. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +100 -94
  270. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +126 -124
  271. data/lib/twilio-ruby/rest/notify/v1/service.rb +176 -142
  272. data/lib/twilio-ruby/rest/notify/v1.rb +15 -11
  273. data/lib/twilio-ruby/rest/notify.rb +5 -3
  274. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +309 -0
  275. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +320 -0
  276. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +512 -0
  277. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +358 -0
  278. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +273 -0
  279. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +314 -0
  280. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +371 -0
  281. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +273 -0
  282. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +189 -0
  283. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  284. data/lib/twilio-ruby/rest/numbers.rb +44 -0
  285. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +97 -14
  286. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +275 -0
  287. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +249 -0
  288. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +65 -17
  289. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +35 -28
  290. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +15 -11
  291. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +23 -33
  292. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +23 -33
  293. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +23 -33
  294. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +23 -33
  295. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +23 -33
  296. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +6 -5
  297. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +15 -14
  298. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +46 -51
  299. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +32 -42
  300. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +11 -9
  301. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +28 -26
  302. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +23 -26
  303. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +32 -34
  304. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +50 -63
  305. data/lib/twilio-ruby/rest/preview/marketplace.rb +20 -20
  306. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +20 -25
  307. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +29 -36
  308. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +36 -39
  309. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +20 -25
  310. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +22 -28
  311. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +36 -39
  312. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +20 -25
  313. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +22 -28
  314. data/lib/twilio-ruby/rest/preview/sync/service.rb +23 -33
  315. data/lib/twilio-ruby/rest/preview/sync.rb +6 -5
  316. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  317. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +225 -0
  318. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +195 -0
  319. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +186 -0
  320. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +277 -0
  321. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +65 -0
  322. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +12 -15
  323. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +12 -15
  324. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +11 -10
  325. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +22 -28
  326. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +23 -33
  327. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +23 -33
  328. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +23 -33
  329. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +12 -15
  330. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +24 -30
  331. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +23 -33
  332. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +12 -15
  333. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +11 -10
  334. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +23 -33
  335. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +23 -33
  336. data/lib/twilio-ruby/rest/preview/understand.rb +6 -5
  337. data/lib/twilio-ruby/rest/preview/wireless/command.rb +17 -23
  338. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +25 -35
  339. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +11 -8
  340. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +15 -20
  341. data/lib/twilio-ruby/rest/preview/wireless.rb +16 -13
  342. data/lib/twilio-ruby/rest/preview.rb +52 -30
  343. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +26 -23
  344. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +4 -2
  345. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +26 -23
  346. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +4 -2
  347. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +26 -23
  348. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +20 -19
  349. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +5 -3
  350. data/lib/twilio-ruby/rest/pricing/v1.rb +1 -1
  351. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  352. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  353. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +26 -25
  354. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +35 -22
  355. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +11 -8
  356. data/lib/twilio-ruby/rest/pricing/v2.rb +38 -1
  357. data/lib/twilio-ruby/rest/pricing.rb +20 -1
  358. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +72 -65
  359. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +61 -83
  360. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +62 -61
  361. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +79 -72
  362. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +127 -107
  363. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +55 -56
  364. data/lib/twilio-ruby/rest/proxy/v1/service.rb +167 -105
  365. data/lib/twilio-ruby/rest/proxy/v1.rb +8 -6
  366. data/lib/twilio-ruby/rest/proxy.rb +3 -2
  367. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +334 -0
  368. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +387 -0
  369. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  370. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +391 -0
  371. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +349 -0
  372. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +394 -0
  373. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +407 -0
  374. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +454 -0
  375. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +241 -0
  376. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +364 -0
  377. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +387 -0
  378. data/lib/twilio-ruby/rest/{verify → serverless}/v1/service.rb +182 -116
  379. data/lib/twilio-ruby/rest/serverless/v1.rb +44 -0
  380. data/lib/twilio-ruby/rest/serverless.rb +47 -0
  381. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +22 -21
  382. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +26 -27
  383. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +34 -35
  384. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +45 -50
  385. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +23 -21
  386. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +29 -27
  387. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +35 -35
  388. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +104 -58
  389. data/lib/twilio-ruby/rest/studio/v1/flow.rb +30 -31
  390. data/lib/twilio-ruby/rest/studio/v1.rb +7 -6
  391. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +211 -0
  392. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +228 -0
  393. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +372 -0
  394. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +449 -0
  395. data/lib/twilio-ruby/rest/{preview/authy/service/entity.rb → studio/v2/flow/flow_revision.rb} +118 -117
  396. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +199 -0
  397. data/lib/twilio-ruby/rest/studio/v2/flow.rb +482 -0
  398. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +117 -0
  399. data/lib/twilio-ruby/rest/studio/v2.rb +51 -0
  400. data/lib/twilio-ruby/rest/studio.rb +19 -5
  401. data/lib/twilio-ruby/rest/supersim/v1/command.rb +368 -0
  402. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +494 -0
  403. data/lib/twilio-ruby/rest/supersim/v1/network.rb +307 -0
  404. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +339 -0
  405. data/lib/twilio-ruby/rest/{preview/acc_security/service.rb → supersim/v1/network_access_profile.rb} +116 -143
  406. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  407. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +443 -0
  408. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  409. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +338 -0
  410. data/lib/twilio-ruby/rest/supersim/v1.rb +131 -0
  411. data/lib/twilio-ruby/rest/supersim.rb +97 -0
  412. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +60 -69
  413. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +71 -75
  414. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +155 -107
  415. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +59 -69
  416. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +77 -73
  417. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +161 -109
  418. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +57 -69
  419. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +76 -73
  420. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +18 -27
  421. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +57 -67
  422. data/lib/twilio-ruby/rest/sync/v1/service.rb +141 -87
  423. data/lib/twilio-ruby/rest/sync/v1.rb +7 -6
  424. data/lib/twilio-ruby/rest/sync.rb +3 -2
  425. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +83 -77
  426. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +131 -85
  427. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +298 -194
  428. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +217 -176
  429. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +114 -26
  430. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +79 -69
  431. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +59 -29
  432. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +57 -54
  433. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +61 -70
  434. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +119 -122
  435. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +309 -155
  436. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +56 -59
  437. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +50 -41
  438. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +43 -39
  439. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +27 -19
  440. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +53 -50
  441. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +131 -117
  442. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +70 -59
  443. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +42 -26
  444. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +65 -54
  445. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +108 -107
  446. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +59 -54
  447. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +34 -24
  448. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +55 -50
  449. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +124 -128
  450. data/lib/twilio-ruby/rest/taskrouter/v1.rb +7 -6
  451. data/lib/twilio-ruby/rest/taskrouter.rb +3 -2
  452. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +42 -43
  453. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +40 -45
  454. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +74 -83
  455. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +65 -62
  456. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +198 -0
  457. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +149 -134
  458. data/lib/twilio-ruby/rest/trunking/v1.rb +8 -6
  459. data/lib/twilio-ruby/rest/trunking.rb +3 -3
  460. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  461. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  462. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  463. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  464. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  465. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  466. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  467. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  468. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  469. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  470. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  471. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  472. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  473. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  474. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  475. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/form.rb +30 -29
  476. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +124 -0
  477. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +201 -0
  478. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +529 -0
  479. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/service/entity/factor.rb +108 -129
  480. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +299 -0
  481. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/service/entity.rb +96 -43
  482. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +370 -0
  483. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +399 -0
  484. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +391 -0
  485. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +356 -0
  486. data/lib/twilio-ruby/rest/verify/{v1 → v2}/service/verification_check.rb +59 -36
  487. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +427 -0
  488. data/lib/twilio-ruby/rest/verify/v2/service.rb +761 -0
  489. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +329 -0
  490. data/lib/twilio-ruby/rest/verify/v2.rb +78 -0
  491. data/lib/twilio-ruby/rest/verify.rb +28 -9
  492. data/lib/twilio-ruby/rest/video/v1/composition.rb +125 -129
  493. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +260 -229
  494. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +54 -63
  495. data/lib/twilio-ruby/rest/video/v1/recording.rb +81 -69
  496. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +54 -63
  497. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +64 -53
  498. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +39 -37
  499. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +175 -0
  500. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +132 -105
  501. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +104 -77
  502. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +144 -0
  503. data/lib/twilio-ruby/rest/video/v1/room.rb +118 -85
  504. data/lib/twilio-ruby/rest/video/v1.rb +35 -34
  505. data/lib/twilio-ruby/rest/video.rb +16 -16
  506. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +496 -0
  507. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -0
  508. data/lib/twilio-ruby/rest/{preview/authy/service.rb → voice/v1/connection_policy.rb} +115 -117
  509. data/lib/twilio-ruby/rest/voice/v1/{voice_permission → dialing_permissions}/bulk_country_update.rb +8 -13
  510. data/lib/twilio-ruby/rest/voice/v1/{voice_permission → dialing_permissions}/country/highrisk_special_prefix.rb +9 -11
  511. data/lib/twilio-ruby/rest/voice/v1/{voice_permission → dialing_permissions}/country.rb +59 -58
  512. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +197 -0
  513. data/lib/twilio-ruby/rest/voice/v1/{voice_permission.rb → dialing_permissions.rb} +21 -23
  514. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +349 -0
  515. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +329 -0
  516. data/lib/twilio-ruby/rest/voice/v1.rb +73 -5
  517. data/lib/twilio-ruby/rest/voice.rb +40 -4
  518. data/lib/twilio-ruby/rest/wireless/v1/command.rb +86 -67
  519. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +86 -88
  520. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +37 -40
  521. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +42 -38
  522. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +198 -151
  523. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +229 -0
  524. data/lib/twilio-ruby/rest/wireless/v1.rb +26 -16
  525. data/lib/twilio-ruby/rest/wireless.rb +10 -4
  526. data/lib/twilio-ruby/rest.rb +13 -0
  527. data/lib/twilio-ruby/security/request_validator.rb +64 -11
  528. data/lib/twilio-ruby/twiml/fax_response.rb +6 -3
  529. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  530. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  531. data/lib/twilio-ruby/twiml/voice_response.rb +278 -34
  532. data/lib/twilio-ruby/util/configuration.rb +22 -5
  533. data/lib/twilio-ruby/version.rb +1 -1
  534. data/lib/twilio-ruby.rb +8 -24
  535. data/sonar-project.properties +13 -0
  536. data/twilio-ruby.gemspec +13 -8
  537. metadata +296 -647
  538. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -405
  539. data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
  540. data/lib/twilio-ruby/rest/authy.rb +0 -55
  541. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
  542. data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
  543. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
  544. data/lib/twilio-ruby/rest/preview/authy.rb +0 -43
  545. data/lib/twilio-ruby/rest/verify/v1/service/verification.rb +0 -192
  546. data/lib/twilio-ruby/rest/verify/v1.rb +0 -43
  547. data/spec/framework/request_spec.rb +0 -36
  548. data/spec/framework/serialize_spec.rb +0 -80
  549. data/spec/holodeck/holodeck.rb +0 -61
  550. data/spec/holodeck/hologram.rb +0 -4
  551. data/spec/http/http_client_spec.rb +0 -122
  552. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
  553. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  554. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  555. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
  556. data/spec/integration/api/v2010/account/address_spec.rb +0 -269
  557. data/spec/integration/api/v2010/account/application_spec.rb +0 -280
  558. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
  559. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
  560. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
  561. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
  562. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
  563. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
  564. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
  565. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
  566. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
  567. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
  568. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
  569. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
  570. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  571. data/spec/integration/api/v2010/account/call_spec.rb +0 -314
  572. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -350
  573. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
  574. data/spec/integration/api/v2010/account/conference_spec.rb +0 -179
  575. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -179
  576. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
  577. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  578. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -185
  579. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -185
  580. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -185
  581. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -341
  582. data/spec/integration/api/v2010/account/key_spec.rb +0 -180
  583. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
  584. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
  585. data/spec/integration/api/v2010/account/message_spec.rb +0 -290
  586. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
  587. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
  588. data/spec/integration/api/v2010/account/notification_spec.rb +0 -174
  589. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
  590. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -169
  591. data/spec/integration/api/v2010/account/queue_spec.rb +0 -242
  592. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
  593. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
  594. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
  595. data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
  596. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
  597. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
  598. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
  599. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
  600. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
  601. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
  602. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  603. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
  604. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  605. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  606. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
  607. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
  608. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -287
  609. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  610. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
  611. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  612. data/spec/integration/api/v2010/account/token_spec.rb +0 -58
  613. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
  614. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
  615. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
  616. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
  617. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
  618. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
  619. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
  620. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
  621. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
  622. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
  623. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
  624. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  625. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  626. data/spec/integration/api/v2010/account_spec.rb +0 -272
  627. data/spec/integration/authy/v1/form_spec.rb +0 -48
  628. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
  629. data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -269
  630. data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
  631. data/spec/integration/authy/v1/service_spec.rb +0 -227
  632. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
  633. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
  634. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
  635. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
  636. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
  637. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -306
  638. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
  639. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
  640. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
  641. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
  642. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
  643. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
  644. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -270
  645. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  646. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  647. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  648. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  649. data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
  650. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  651. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
  652. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  653. data/spec/integration/chat/v1/service_spec.rb +0 -299
  654. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  655. data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
  656. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  657. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -257
  658. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
  659. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
  660. data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
  661. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  662. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
  663. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -192
  664. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  665. data/spec/integration/chat/v2/service_spec.rb +0 -354
  666. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
  667. data/spec/integration/fax/v1/fax_spec.rb +0 -271
  668. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
  669. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  670. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
  671. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
  672. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
  673. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
  674. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
  675. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
  676. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
  677. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  678. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
  679. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  680. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -257
  681. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
  682. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
  683. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
  684. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  685. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
  686. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -192
  687. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  688. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
  689. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -71
  690. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  691. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  692. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
  693. data/spec/integration/messaging/v1/service_spec.rb +0 -263
  694. data/spec/integration/monitor/v1/alert_spec.rb +0 -163
  695. data/spec/integration/monitor/v1/event_spec.rb +0 -150
  696. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  697. data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
  698. data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
  699. data/spec/integration/notify/v1/service_spec.rb +0 -286
  700. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
  701. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
  702. data/spec/integration/preview/acc_security/service_spec.rb +0 -185
  703. data/spec/integration/preview/authy/service/entity_spec.rb +0 -173
  704. data/spec/integration/preview/authy/service_spec.rb +0 -201
  705. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
  706. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  707. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
  708. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
  709. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
  710. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
  711. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
  712. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
  713. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
  714. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
  715. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
  716. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
  717. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
  718. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  719. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
  720. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
  721. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  722. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
  723. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
  724. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
  725. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
  726. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
  727. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
  728. data/spec/integration/preview/sync/service_spec.rb +0 -246
  729. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
  730. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
  731. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
  732. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
  733. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
  734. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
  735. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
  736. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
  737. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
  738. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
  739. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
  740. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
  741. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
  742. data/spec/integration/preview/understand/assistant_spec.rb +0 -274
  743. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  744. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
  745. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
  746. data/spec/integration/preview/wireless/sim_spec.rb +0 -210
  747. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
  748. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  749. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
  750. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  751. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
  752. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
  753. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  754. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
  755. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
  756. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  757. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -232
  758. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
  759. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
  760. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -181
  761. data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
  762. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
  763. data/spec/integration/proxy/v1/service_spec.rb +0 -215
  764. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
  765. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
  766. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
  767. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
  768. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
  769. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
  770. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
  771. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
  772. data/spec/integration/studio/v1/flow_spec.rb +0 -117
  773. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
  774. data/spec/integration/sync/v1/service/document_spec.rb +0 -257
  775. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  776. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
  777. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
  778. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  779. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
  780. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
  781. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  782. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
  783. data/spec/integration/sync/v1/service_spec.rb +0 -254
  784. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
  785. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -159
  786. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
  787. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -129
  788. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
  789. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -81
  790. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
  791. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
  792. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
  793. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
  794. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
  795. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
  796. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
  797. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
  798. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
  799. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
  800. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
  801. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
  802. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -57
  803. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
  804. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -272
  805. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
  806. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -72
  807. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
  808. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
  809. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
  810. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
  811. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
  812. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
  813. data/spec/integration/trunking/v1/trunk_spec.rb +0 -282
  814. data/spec/integration/verify/v1/service/verification_check_spec.rb +0 -52
  815. data/spec/integration/verify/v1/service/verification_spec.rb +0 -52
  816. data/spec/integration/verify/v1/service_spec.rb +0 -215
  817. data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
  818. data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
  819. data/spec/integration/video/v1/composition_spec.rb +0 -325
  820. data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
  821. data/spec/integration/video/v1/recording_spec.rb +0 -179
  822. data/spec/integration/video/v1/room/recording_spec.rb +0 -188
  823. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
  824. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -134
  825. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -187
  826. data/spec/integration/video/v1/room_spec.rb +0 -257
  827. data/spec/integration/voice/v1/voice_permission/bulk_country_update_spec.rb +0 -45
  828. data/spec/integration/voice/v1/voice_permission/country/highrisk_special_prefix_spec.rb +0 -61
  829. data/spec/integration/voice/v1/voice_permission/country_spec.rb +0 -112
  830. data/spec/integration/voice/v1/voice_permission_spec.rb +0 -12
  831. data/spec/integration/wireless/v1/command_spec.rb +0 -263
  832. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -270
  833. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -87
  834. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -67
  835. data/spec/integration/wireless/v1/sim_spec.rb +0 -216
  836. data/spec/jwt/access_token_spec.rb +0 -151
  837. data/spec/jwt/client_capability_spec.rb +0 -104
  838. data/spec/jwt/task_router_spec.rb +0 -172
  839. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  840. data/spec/rest/client_spec.rb +0 -61
  841. data/spec/security/request_validator_spec.rb +0 -86
  842. data/spec/spec_helper.rb +0 -38
  843. data/spec/support/fakeweb.rb +0 -2
  844. data/spec/twilio_spec.rb +0 -15
  845. data/spec/twiml/messaging_response_spec.rb +0 -235
  846. data/spec/twiml/voice_response_spec.rb +0 -847
  847. data/spec/util/configuration_spec.rb +0 -15
  848. data/spec/util/url_encode_spec.rb +0 -12
@@ -3,15 +3,13 @@
3
3
  # \ / _ _ _| _ _
4
4
  # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
5
  # / /
6
- #
6
+ #
7
7
  # frozen_string_literal: true
8
8
 
9
9
  module Twilio
10
10
  module REST
11
11
  class Video < Domain
12
12
  class V1 < Version
13
- ##
14
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
15
13
  class CompositionHookList < ListResource
16
14
  ##
17
15
  # Initialize the CompositionHookList
@@ -29,12 +27,17 @@ module Twilio
29
27
  # Lists CompositionHookInstance records from the API as a list.
30
28
  # Unlike stream(), this operation is eager and will load `limit` records into
31
29
  # memory before returning.
32
- # @param [Boolean] enabled Only show Composition Hooks that are enabled or
33
- # disabled.
34
- # @param [Time] date_created_after Only show Composition Hooks created on or after
35
- # this ISO8601 date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.
36
- # @param [Time] date_created_before Only show Composition Hooks created before
37
- # this this ISO8601 date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.
30
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled`
31
+ # value that matches this parameter.
32
+ # @param [Time] date_created_after Read only CompositionHook resources created on
33
+ # or after this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
34
+ # time zone.
35
+ # @param [Time] date_created_before Read only CompositionHook resources created
36
+ # before this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
37
+ # time zone.
38
+ # @param [String] friendly_name Read only CompositionHook resources with friendly
39
+ # names that match this string. The match is not case sensitive and can include
40
+ # asterisk `*` characters as wildcard match.
38
41
  # @param [Integer] limit Upper limit for the number of records to return. stream()
39
42
  # guarantees to never return more than limit. Default is no limit
40
43
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -42,11 +45,12 @@ module Twilio
42
45
  # but a limit is defined, stream() will attempt to read the limit with the most
43
46
  # efficient page size, i.e. min(limit, 1000)
44
47
  # @return [Array] Array of up to limit results
45
- def list(enabled: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
48
+ def list(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
46
49
  self.stream(
47
50
  enabled: enabled,
48
51
  date_created_after: date_created_after,
49
52
  date_created_before: date_created_before,
53
+ friendly_name: friendly_name,
50
54
  limit: limit,
51
55
  page_size: page_size
52
56
  ).entries
@@ -56,12 +60,17 @@ module Twilio
56
60
  # Streams CompositionHookInstance records from the API as an Enumerable.
57
61
  # This operation lazily loads records as efficiently as possible until the limit
58
62
  # is reached.
59
- # @param [Boolean] enabled Only show Composition Hooks that are enabled or
60
- # disabled.
61
- # @param [Time] date_created_after Only show Composition Hooks created on or after
62
- # this ISO8601 date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.
63
- # @param [Time] date_created_before Only show Composition Hooks created before
64
- # this this ISO8601 date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.
63
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled`
64
+ # value that matches this parameter.
65
+ # @param [Time] date_created_after Read only CompositionHook resources created on
66
+ # or after this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
67
+ # time zone.
68
+ # @param [Time] date_created_before Read only CompositionHook resources created
69
+ # before this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
70
+ # time zone.
71
+ # @param [String] friendly_name Read only CompositionHook resources with friendly
72
+ # names that match this string. The match is not case sensitive and can include
73
+ # asterisk `*` characters as wildcard match.
65
74
  # @param [Integer] limit Upper limit for the number of records to return. stream()
66
75
  # guarantees to never return more than limit. Default is no limit.
67
76
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -69,13 +78,14 @@ module Twilio
69
78
  # but a limit is defined, stream() will attempt to read the limit with the most
70
79
  # efficient page size, i.e. min(limit, 1000)
71
80
  # @return [Enumerable] Enumerable that will yield up to limit results
72
- def stream(enabled: :unset, date_created_after: :unset, date_created_before: :unset, limit: nil, page_size: nil)
81
+ def stream(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, limit: nil, page_size: nil)
73
82
  limits = @version.read_limits(limit, page_size)
74
83
 
75
84
  page = self.page(
76
85
  enabled: enabled,
77
86
  date_created_after: date_created_after,
78
87
  date_created_before: date_created_before,
88
+ friendly_name: friendly_name,
79
89
  page_size: limits[:page_size],
80
90
  )
81
91
 
@@ -99,30 +109,34 @@ module Twilio
99
109
  ##
100
110
  # Retrieve a single page of CompositionHookInstance records from the API.
101
111
  # Request is executed immediately.
102
- # @param [Boolean] enabled Only show Composition Hooks that are enabled or
103
- # disabled.
104
- # @param [Time] date_created_after Only show Composition Hooks created on or after
105
- # this ISO8601 date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.
106
- # @param [Time] date_created_before Only show Composition Hooks created before
107
- # this this ISO8601 date-time, given as `YYYY-MM-DDThh:mm:ss-hh:mm`.
112
+ # @param [Boolean] enabled Read only CompositionHook resources with an `enabled`
113
+ # value that matches this parameter.
114
+ # @param [Time] date_created_after Read only CompositionHook resources created on
115
+ # or after this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
116
+ # time zone.
117
+ # @param [Time] date_created_before Read only CompositionHook resources created
118
+ # before this {ISO 8601}[https://en.wikipedia.org/wiki/ISO_8601] datetime with
119
+ # time zone.
120
+ # @param [String] friendly_name Read only CompositionHook resources with friendly
121
+ # names that match this string. The match is not case sensitive and can include
122
+ # asterisk `*` characters as wildcard match.
108
123
  # @param [String] page_token PageToken provided by the API
109
124
  # @param [Integer] page_number Page Number, this value is simply for client state
110
125
  # @param [Integer] page_size Number of records to return, defaults to 50
111
126
  # @return [Page] Page of CompositionHookInstance
112
- def page(enabled: :unset, date_created_after: :unset, date_created_before: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
127
+ def page(enabled: :unset, date_created_after: :unset, date_created_before: :unset, friendly_name: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
113
128
  params = Twilio::Values.of({
114
129
  'Enabled' => enabled,
115
130
  'DateCreatedAfter' => Twilio.serialize_iso8601_datetime(date_created_after),
116
131
  'DateCreatedBefore' => Twilio.serialize_iso8601_datetime(date_created_before),
132
+ 'FriendlyName' => friendly_name,
117
133
  'PageToken' => page_token,
118
134
  'Page' => page_number,
119
135
  'PageSize' => page_size,
120
136
  })
121
- response = @version.page(
122
- 'GET',
123
- @uri,
124
- params
125
- )
137
+
138
+ response = @version.page('GET', @uri, params: params)
139
+
126
140
  CompositionHookPage.new(@version, response, @solution)
127
141
  end
128
142
 
@@ -140,62 +154,72 @@ module Twilio
140
154
  end
141
155
 
142
156
  ##
143
- # Retrieve a single page of CompositionHookInstance records from the API.
144
- # Request is executed immediately.
145
- # @param [String] friendly_name Friendly name of the Composition Hook to be shown
146
- # in the console.
147
- # @param [Boolean] enabled When activated, the Composition Hook is enabled and a
148
- # composition will be triggered for every Video room completed by this account
149
- # from this point onwards; `false` indicates the Composition Hook is left
150
- # inactive.
151
- # @param [Hash] video_layout A JSON object defining the video layout of the
152
- # Composition Hook in terms of regions. See the section [Managing Video
153
- # Layouts](#managing-video-layouts) below for further information.
154
- # @param [String] audio_sources An array of audio sources to merge. All the
155
- # specified sources must belong to the same Group Room. It can include:
156
- # * Zero or more Track names. These can be specified using wildcards (e.g.
157
- # `student*`). The use of `[*]` has semantics "all if any" meaning zero or more
158
- # (i.e. all) depending on whether the Group Room had audio tracks.
159
- # @param [String] audio_sources_excluded An array of audio sources to exclude from
160
- # the Composition Hook. Any new Composition triggered by the Composition Hook
161
- # shall include all audio sources specified in `AudioSources` except for the ones
162
- # specified in `AudioSourcesExcluded`. This parameter may include:
163
- # * Zero or more Track names. These can be specified using wildcards (e.g.
164
- # `student*`)
165
- # @param [String] resolution A string representing the numbers of pixels for rows
166
- # (width) and columns (height) of the generated composed video. This string must
167
- # have the format `{width}x{height}`. This parameter must comply with the
168
- # following constraints:
169
- # * `width >= 16 && width <= 1280`
170
- # * `height >= 16 && height <= 1280`
171
- # * `width * height <= 921,600`
172
- # Typical values are:
157
+ # Create the CompositionHookInstance
158
+ # @param [String] friendly_name A descriptive string that you create to describe
159
+ # the resource. It can be up to 100 characters long and it must be unique within
160
+ # the account.
161
+ # @param [Boolean] enabled Whether the composition hook is active. When `true`,
162
+ # the composition hook will be triggered for every completed Group Room in the
163
+ # account. When `false`, the composition hook will never be triggered.
164
+ # @param [Hash] video_layout An object that describes the video layout of the
165
+ # composition hook in terms of regions. See {Specifying Video
166
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
167
+ # for more info.
168
+ # @param [Array[String]] audio_sources An array of track names from the same group
169
+ # room to merge into the compositions created by the composition hook. Can include
170
+ # zero or more track names. A composition triggered by the composition hook
171
+ # includes all audio sources specified in `audio_sources` except those specified
172
+ # in `audio_sources_excluded`. The track names in this parameter can include an
173
+ # asterisk as a wild card character, which matches zero or more characters in a
174
+ # track name. For example, `student*` includes tracks named `student` as well as
175
+ # `studentTeam`.
176
+ # @param [Array[String]] audio_sources_excluded An array of track names to
177
+ # exclude. A composition triggered by the composition hook includes all audio
178
+ # sources specified in `audio_sources` except for those specified in
179
+ # `audio_sources_excluded`. The track names in this parameter can include an
180
+ # asterisk as a wild card character, which matches zero or more characters in a
181
+ # track name. For example, `student*` excludes `student` as well as `studentTeam`.
182
+ # This parameter can also be empty.
183
+ # @param [String] resolution A string that describes the columns (width) and rows
184
+ # (height) of the generated composed video in pixels. Defaults to `640x480`.
185
+ # The string's format is `{width}x{height}` where:
186
+ #
187
+ # * 16 <= `{width}` <= 1280
188
+ # * 16 <= `{height}` <= 1280
189
+ # * `{width}` * `{height}` <= 921,600
190
+ #
191
+ # Typical values are:
192
+ #
173
193
  # * HD = `1280x720`
174
194
  # * PAL = `1024x576`
175
195
  # * VGA = `640x480`
176
196
  # * CIF = `320x240`
177
- # Note that the `Resolution` implicitly imposes an aspect ratio to the resulting
178
- # composition. When the original video tracks get constrained by this aspect ratio
179
- # they are scaled-down to fit. You can find detailed information in the [Managing
180
- # Video Layouts](#managing-video-layouts) section. Defaults to `640x480`.
181
- # @param [composition_hook.Format] format Container format of the Composition
182
- # media files created by the Composition Hook. Can be any of the following: `mp4`,
183
- # `webm`. The use of `mp4` or `webm` makes mandatory the specification of
184
- # `AudioSources` and/or one `VideoLayout` element containing a valid
185
- # `video_sources` list, otherwise an error is fired. Defaults to `webm`.
186
- # @param [String] status_callback A URL that Twilio sends asynchronous webhook
187
- # requests to on every composition event. If not provided, status callback events
188
- # will not be dispatched.
189
- # @param [String] status_callback_method HTTP method Twilio should use when
190
- # requesting the above URL. Defaults to `POST`.
191
- # @param [Boolean] trim When activated, clips all the intervals where there is no
192
- # active media in the Compositions triggered by the Composition Hook. This results
193
- # in shorter compositions in cases when the Room was created but no Participant
194
- # joined for some time, or if all the Participants left the room and joined at a
195
- # later stage, as those gaps will be removed. You can find further information in
196
- # the [Managing Video Layouts](#managing-video-layouts) section. Defaults to
197
- # `true`.
198
- # @return [CompositionHookInstance] Newly created CompositionHookInstance
197
+ #
198
+ # Note that the `resolution` imposes an aspect ratio to the resulting composition.
199
+ # When the original video tracks are constrained by the aspect ratio, they are
200
+ # scaled to fit. See {Specifying Video
201
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
202
+ # for more info.
203
+ # @param [composition_hook.Format] format The container format of the media files
204
+ # used by the compositions created by the composition hook. Can be: `mp4` or
205
+ # `webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources` must have
206
+ # one or more tracks and/or a `video_layout` element must contain a valid
207
+ # `video_sources` list, otherwise an error occurs.
208
+ # @param [String] status_callback The URL we should call using the
209
+ # `status_callback_method` to send status information to your application on every
210
+ # composition event. If not provided, status callback events will not be
211
+ # dispatched.
212
+ # @param [String] status_callback_method The HTTP method we should use to call
213
+ # `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
214
+ # @param [Boolean] trim Whether to clip the intervals where there is no active
215
+ # media in the Compositions triggered by the composition hook. The default is
216
+ # `true`. Compositions with `trim` enabled are shorter when the Room is created
217
+ # and no Participant joins for a while as well as if all the Participants leave
218
+ # the room and join later, because those gaps will be removed. See {Specifying
219
+ # Video
220
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
221
+ # for more info.
222
+ # @return [CompositionHookInstance] Created CompositionHookInstance
199
223
  def create(friendly_name: nil, enabled: :unset, video_layout: :unset, audio_sources: :unset, audio_sources_excluded: :unset, resolution: :unset, format: :unset, status_callback: :unset, status_callback_method: :unset, trim: :unset)
200
224
  data = Twilio::Values.of({
201
225
  'FriendlyName' => friendly_name,
@@ -210,11 +234,7 @@ module Twilio
210
234
  'Trim' => trim,
211
235
  })
212
236
 
213
- payload = @version.create(
214
- 'POST',
215
- @uri,
216
- data: data
217
- )
237
+ payload = @version.create('POST', @uri, data: data)
218
238
 
219
239
  CompositionHookInstance.new(@version, payload, )
220
240
  end
@@ -226,8 +246,6 @@ module Twilio
226
246
  end
227
247
  end
228
248
 
229
- ##
230
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
231
249
  class CompositionHookPage < Page
232
250
  ##
233
251
  # Initialize the CompositionHookPage
@@ -257,14 +275,11 @@ module Twilio
257
275
  end
258
276
  end
259
277
 
260
- ##
261
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
262
278
  class CompositionHookContext < InstanceContext
263
279
  ##
264
280
  # Initialize the CompositionHookContext
265
281
  # @param [Version] version Version that contains the resource
266
- # @param [String] sid The Composition Hook Sid that uniquely identifies the
267
- # Composition Hook to fetch.
282
+ # @param [String] sid The SID of the CompositionHook resource to fetch.
268
283
  # @return [CompositionHookContext] CompositionHookContext
269
284
  def initialize(version, sid)
270
285
  super(version)
@@ -275,82 +290,87 @@ module Twilio
275
290
  end
276
291
 
277
292
  ##
278
- # Fetch a CompositionHookInstance
293
+ # Fetch the CompositionHookInstance
279
294
  # @return [CompositionHookInstance] Fetched CompositionHookInstance
280
295
  def fetch
281
- params = Twilio::Values.of({})
282
-
283
- payload = @version.fetch(
284
- 'GET',
285
- @uri,
286
- params,
287
- )
296
+ payload = @version.fetch('GET', @uri)
288
297
 
289
298
  CompositionHookInstance.new(@version, payload, sid: @solution[:sid], )
290
299
  end
291
300
 
292
301
  ##
293
- # Deletes the CompositionHookInstance
294
- # @return [Boolean] true if delete succeeds, true otherwise
302
+ # Delete the CompositionHookInstance
303
+ # @return [Boolean] true if delete succeeds, false otherwise
295
304
  def delete
296
- @version.delete('delete', @uri)
305
+ @version.delete('DELETE', @uri)
297
306
  end
298
307
 
299
308
  ##
300
309
  # Update the CompositionHookInstance
301
- # @param [String] friendly_name Friendly name of the Composition Hook to be shown
302
- # in the console.
303
- # @param [Boolean] enabled When activated, the Composition Hook is enabled and a
304
- # composition will be triggered for every Video room completed by this account
305
- # from this point onwards; `false` indicates the Composition Hook is left
306
- # inactive.
307
- # @param [Hash] video_layout A JSON object defining the video layout of the
308
- # Composition Hook in terms of regions. See the section [Managing Video
309
- # Layouts](#managing-video-layouts) below for further information.
310
- # @param [String] audio_sources An array of audio sources to merge. All the
311
- # specified sources must belong to the same Group Room. It can include:
312
- # * Zero or more Track names. These can be specified using wildcards (e.g.
313
- # `student*`). The use of `[*]` has semantics "all if any" meaning zero or more
314
- # (i.e. all) depending on whether the Group Room had audio tracks.
315
- # @param [String] audio_sources_excluded An array of audio sources to exclude from
316
- # the Composition Hook. Any new Composition triggered by the Composition Hook
317
- # shall include all audio sources specified in `AudioSources` except for the ones
318
- # specified in `AudioSourcesExcluded`. This parameter may include:
319
- # * Zero or more Track names. These can be specified using wildcards (e.g.
320
- # `student*`)
321
- # @param [Boolean] trim When activated, clips all the intervals where there is no
322
- # active media in the Compositions triggered by the Composition Hook. This results
323
- # in shorter compositions in cases when the Room was created but no Participant
324
- # joined for some time, or if all the Participants left the room and joined at a
325
- # later stage, as those gaps will be removed. You can find further information in
326
- # the [Managing Video Layouts](#managing-video-layouts) section. Defaults to
327
- # `true`.
328
- # @param [composition_hook.Format] format Container format of the Composition
329
- # media files created by the Composition Hook. Can be any of the following: `mp4`,
330
- # `webm`. The use of `mp4` or `webm` makes mandatory the specification of
331
- # `AudioSources` and/or one `VideoLayout` element containing a valid
332
- # `video_sources` list, otherwise an error is fired. Defaults to `webm`.
333
- # @param [String] resolution A string representing the numbers of pixels for rows
334
- # (width) and columns (height) of the generated composed video. This string must
335
- # have the format `{width}x{height}`. This parameter must comply with the
336
- # following constraints:
337
- # * `width >= 16 && width <= 1280`
338
- # * `height >= 16 && height <= 1280`
339
- # * `width * height <= 921,600`
340
- # Typical values are:
310
+ # @param [String] friendly_name A descriptive string that you create to describe
311
+ # the resource. It can be up to 100 characters long and it must be unique within
312
+ # the account.
313
+ # @param [Boolean] enabled Whether the composition hook is active. When `true`,
314
+ # the composition hook will be triggered for every completed Group Room in the
315
+ # account. When `false`, the composition hook never triggers.
316
+ # @param [Hash] video_layout A JSON object that describes the video layout of the
317
+ # composition hook in terms of regions. See {Specifying Video
318
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
319
+ # for more info.
320
+ # @param [Array[String]] audio_sources An array of track names from the same group
321
+ # room to merge into the compositions created by the composition hook. Can include
322
+ # zero or more track names. A composition triggered by the composition hook
323
+ # includes all audio sources specified in `audio_sources` except those specified
324
+ # in `audio_sources_excluded`. The track names in this parameter can include an
325
+ # asterisk as a wild card character, which matches zero or more characters in a
326
+ # track name. For example, `student*` includes tracks named `student` as well as
327
+ # `studentTeam`.
328
+ # @param [Array[String]] audio_sources_excluded An array of track names to
329
+ # exclude. A composition triggered by the composition hook includes all audio
330
+ # sources specified in `audio_sources` except for those specified in
331
+ # `audio_sources_excluded`. The track names in this parameter can include an
332
+ # asterisk as a wild card character, which matches zero or more characters in a
333
+ # track name. For example, `student*` excludes `student` as well as `studentTeam`.
334
+ # This parameter can also be empty.
335
+ # @param [Boolean] trim Whether to clip the intervals where there is no active
336
+ # media in the compositions triggered by the composition hook. The default is
337
+ # `true`. Compositions with `trim` enabled are shorter when the Room is created
338
+ # and no Participant joins for a while as well as if all the Participants leave
339
+ # the room and join later, because those gaps will be removed. See {Specifying
340
+ # Video
341
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
342
+ # for more info.
343
+ # @param [composition_hook.Format] format The container format of the media files
344
+ # used by the compositions created by the composition hook. Can be: `mp4` or
345
+ # `webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources` must have
346
+ # one or more tracks and/or a `video_layout` element must contain a valid
347
+ # `video_sources` list, otherwise an error occurs.
348
+ # @param [String] resolution A string that describes the columns (width) and rows
349
+ # (height) of the generated composed video in pixels. Defaults to `640x480`.
350
+ # The string's format is `{width}x{height}` where:
351
+ #
352
+ # * 16 <= `{width}` <= 1280
353
+ # * 16 <= `{height}` <= 1280
354
+ # * `{width}` * `{height}` <= 921,600
355
+ #
356
+ # Typical values are:
357
+ #
341
358
  # * HD = `1280x720`
342
359
  # * PAL = `1024x576`
343
360
  # * VGA = `640x480`
344
361
  # * CIF = `320x240`
345
- # Note that the `Resolution` implicitly imposes an aspect ratio to the resulting
346
- # composition. When the original video tracks get constrained by this aspect ratio
347
- # they are scaled-down to fit. You can find detailed information in the [Managing
348
- # Video Layouts](#managing-video-layouts) section. Defaults to `640x480`.
349
- # @param [String] status_callback A URL that Twilio sends asynchronous webhook
350
- # requests to on every composition event. If not provided, status callback events
351
- # will not be dispatched.
352
- # @param [String] status_callback_method HTTP method Twilio should use when
353
- # requesting the above URL. Defaults to `POST`.
362
+ #
363
+ # Note that the `resolution` imposes an aspect ratio to the resulting composition.
364
+ # When the original video tracks are constrained by the aspect ratio, they are
365
+ # scaled to fit. See {Specifying Video
366
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
367
+ # for more info.
368
+ # @param [String] status_callback The URL we should call using the
369
+ # `status_callback_method` to send status information to your application on every
370
+ # composition event. If not provided, status callback events will not be
371
+ # dispatched.
372
+ # @param [String] status_callback_method The HTTP method we should use to call
373
+ # `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
354
374
  # @return [CompositionHookInstance] Updated CompositionHookInstance
355
375
  def update(friendly_name: nil, enabled: :unset, video_layout: :unset, audio_sources: :unset, audio_sources_excluded: :unset, trim: :unset, format: :unset, resolution: :unset, status_callback: :unset, status_callback_method: :unset)
356
376
  data = Twilio::Values.of({
@@ -366,11 +386,7 @@ module Twilio
366
386
  'StatusCallbackMethod' => status_callback_method,
367
387
  })
368
388
 
369
- payload = @version.update(
370
- 'POST',
371
- @uri,
372
- data: data,
373
- )
389
+ payload = @version.update('POST', @uri, data: data)
374
390
 
375
391
  CompositionHookInstance.new(@version, payload, sid: @solution[:sid], )
376
392
  end
@@ -381,17 +397,21 @@ module Twilio
381
397
  context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
382
398
  "#<Twilio.Video.V1.CompositionHookContext #{context}>"
383
399
  end
400
+
401
+ ##
402
+ # Provide a detailed, user friendly representation
403
+ def inspect
404
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
405
+ "#<Twilio.Video.V1.CompositionHookContext #{context}>"
406
+ end
384
407
  end
385
408
 
386
- ##
387
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
388
409
  class CompositionHookInstance < InstanceResource
389
410
  ##
390
411
  # Initialize the CompositionHookInstance
391
412
  # @param [Version] version Version that contains the resource
392
413
  # @param [Hash] payload payload that contains response from Twilio
393
- # @param [String] sid The Composition Hook Sid that uniquely identifies the
394
- # Composition Hook to fetch.
414
+ # @param [String] sid The SID of the CompositionHook resource to fetch.
395
415
  # @return [CompositionHookInstance] CompositionHookInstance
396
416
  def initialize(version, payload, sid: nil)
397
417
  super(version)
@@ -402,7 +422,7 @@ module Twilio
402
422
  'friendly_name' => payload['friendly_name'],
403
423
  'enabled' => payload['enabled'],
404
424
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
405
- 'date_updated' => payload['date_updated'],
425
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
406
426
  'sid' => payload['sid'],
407
427
  'audio_sources' => payload['audio_sources'],
408
428
  'audio_sources_excluded' => payload['audio_sources_excluded'],
@@ -432,164 +452,175 @@ module Twilio
432
452
  end
433
453
 
434
454
  ##
435
- # @return [String] Twilio Account SID.
455
+ # @return [String] The SID of the Account that created the resource
436
456
  def account_sid
437
457
  @properties['account_sid']
438
458
  end
439
459
 
440
460
  ##
441
- # @return [String] Friendly name of the Composition Hook to be shown in the console.
461
+ # @return [String] The string that you assigned to describe the resource
442
462
  def friendly_name
443
463
  @properties['friendly_name']
444
464
  end
445
465
 
446
466
  ##
447
- # @return [Boolean] Boolean flag for activating the Composition Hook.
467
+ # @return [Boolean] Whether the CompositionHook is active
448
468
  def enabled
449
469
  @properties['enabled']
450
470
  end
451
471
 
452
472
  ##
453
- # @return [Time] Date when the Composition Hook Resource was created.
473
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was created
454
474
  def date_created
455
475
  @properties['date_created']
456
476
  end
457
477
 
458
478
  ##
459
- # @return [String] Date when the Composition Hook was last updated.
479
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
460
480
  def date_updated
461
481
  @properties['date_updated']
462
482
  end
463
483
 
464
484
  ##
465
- # @return [String] A 34-character string that uniquely identifies this Composition Hook.
485
+ # @return [String] The unique string that identifies the resource
466
486
  def sid
467
487
  @properties['sid']
468
488
  end
469
489
 
470
490
  ##
471
- # @return [String] A list of audio sources related to this Composition Hook.
491
+ # @return [Array[String]] The array of track names to include in the compositions created by the composition hook
472
492
  def audio_sources
473
493
  @properties['audio_sources']
474
494
  end
475
495
 
476
496
  ##
477
- # @return [String] A list of audio sources excluded related to this Composition Hook.
497
+ # @return [Array[String]] The array of track names to exclude from the compositions created by the composition hook
478
498
  def audio_sources_excluded
479
499
  @properties['audio_sources_excluded']
480
500
  end
481
501
 
482
502
  ##
483
- # @return [Hash] The JSON video layout description.
503
+ # @return [Hash] A JSON object that describes the video layout of the Composition
484
504
  def video_layout
485
505
  @properties['video_layout']
486
506
  end
487
507
 
488
508
  ##
489
- # @return [String] Pixel resolution of the composed video.
509
+ # @return [String] The dimensions of the video image in pixels expressed as columns (width) and rows (height)
490
510
  def resolution
491
511
  @properties['resolution']
492
512
  end
493
513
 
494
514
  ##
495
- # @return [Boolean] Boolean flag for clipping intervals that have no media.
515
+ # @return [Boolean] Whether intervals with no media are clipped
496
516
  def trim
497
517
  @properties['trim']
498
518
  end
499
519
 
500
520
  ##
501
- # @return [composition_hook.Format] The file format for the Compositions triggered by the Composition Hook.
521
+ # @return [composition_hook.Format] The container format of the media files used by the compositions created by the composition hook
502
522
  def format
503
523
  @properties['format']
504
524
  end
505
525
 
506
526
  ##
507
- # @return [String] The status_callback
527
+ # @return [String] The URL to send status information to your application
508
528
  def status_callback
509
529
  @properties['status_callback']
510
530
  end
511
531
 
512
532
  ##
513
- # @return [String] The status_callback_method
533
+ # @return [String] The HTTP method we should use to call status_callback
514
534
  def status_callback_method
515
535
  @properties['status_callback_method']
516
536
  end
517
537
 
518
538
  ##
519
- # @return [String] The absolute URL for this resource.
539
+ # @return [String] The absolute URL of the resource
520
540
  def url
521
541
  @properties['url']
522
542
  end
523
543
 
524
544
  ##
525
- # Fetch a CompositionHookInstance
545
+ # Fetch the CompositionHookInstance
526
546
  # @return [CompositionHookInstance] Fetched CompositionHookInstance
527
547
  def fetch
528
548
  context.fetch
529
549
  end
530
550
 
531
551
  ##
532
- # Deletes the CompositionHookInstance
533
- # @return [Boolean] true if delete succeeds, true otherwise
552
+ # Delete the CompositionHookInstance
553
+ # @return [Boolean] true if delete succeeds, false otherwise
534
554
  def delete
535
555
  context.delete
536
556
  end
537
557
 
538
558
  ##
539
559
  # Update the CompositionHookInstance
540
- # @param [String] friendly_name Friendly name of the Composition Hook to be shown
541
- # in the console.
542
- # @param [Boolean] enabled When activated, the Composition Hook is enabled and a
543
- # composition will be triggered for every Video room completed by this account
544
- # from this point onwards; `false` indicates the Composition Hook is left
545
- # inactive.
546
- # @param [Hash] video_layout A JSON object defining the video layout of the
547
- # Composition Hook in terms of regions. See the section [Managing Video
548
- # Layouts](#managing-video-layouts) below for further information.
549
- # @param [String] audio_sources An array of audio sources to merge. All the
550
- # specified sources must belong to the same Group Room. It can include:
551
- # * Zero or more Track names. These can be specified using wildcards (e.g.
552
- # `student*`). The use of `[*]` has semantics "all if any" meaning zero or more
553
- # (i.e. all) depending on whether the Group Room had audio tracks.
554
- # @param [String] audio_sources_excluded An array of audio sources to exclude from
555
- # the Composition Hook. Any new Composition triggered by the Composition Hook
556
- # shall include all audio sources specified in `AudioSources` except for the ones
557
- # specified in `AudioSourcesExcluded`. This parameter may include:
558
- # * Zero or more Track names. These can be specified using wildcards (e.g.
559
- # `student*`)
560
- # @param [Boolean] trim When activated, clips all the intervals where there is no
561
- # active media in the Compositions triggered by the Composition Hook. This results
562
- # in shorter compositions in cases when the Room was created but no Participant
563
- # joined for some time, or if all the Participants left the room and joined at a
564
- # later stage, as those gaps will be removed. You can find further information in
565
- # the [Managing Video Layouts](#managing-video-layouts) section. Defaults to
566
- # `true`.
567
- # @param [composition_hook.Format] format Container format of the Composition
568
- # media files created by the Composition Hook. Can be any of the following: `mp4`,
569
- # `webm`. The use of `mp4` or `webm` makes mandatory the specification of
570
- # `AudioSources` and/or one `VideoLayout` element containing a valid
571
- # `video_sources` list, otherwise an error is fired. Defaults to `webm`.
572
- # @param [String] resolution A string representing the numbers of pixels for rows
573
- # (width) and columns (height) of the generated composed video. This string must
574
- # have the format `{width}x{height}`. This parameter must comply with the
575
- # following constraints:
576
- # * `width >= 16 && width <= 1280`
577
- # * `height >= 16 && height <= 1280`
578
- # * `width * height <= 921,600`
579
- # Typical values are:
560
+ # @param [String] friendly_name A descriptive string that you create to describe
561
+ # the resource. It can be up to 100 characters long and it must be unique within
562
+ # the account.
563
+ # @param [Boolean] enabled Whether the composition hook is active. When `true`,
564
+ # the composition hook will be triggered for every completed Group Room in the
565
+ # account. When `false`, the composition hook never triggers.
566
+ # @param [Hash] video_layout A JSON object that describes the video layout of the
567
+ # composition hook in terms of regions. See {Specifying Video
568
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
569
+ # for more info.
570
+ # @param [Array[String]] audio_sources An array of track names from the same group
571
+ # room to merge into the compositions created by the composition hook. Can include
572
+ # zero or more track names. A composition triggered by the composition hook
573
+ # includes all audio sources specified in `audio_sources` except those specified
574
+ # in `audio_sources_excluded`. The track names in this parameter can include an
575
+ # asterisk as a wild card character, which matches zero or more characters in a
576
+ # track name. For example, `student*` includes tracks named `student` as well as
577
+ # `studentTeam`.
578
+ # @param [Array[String]] audio_sources_excluded An array of track names to
579
+ # exclude. A composition triggered by the composition hook includes all audio
580
+ # sources specified in `audio_sources` except for those specified in
581
+ # `audio_sources_excluded`. The track names in this parameter can include an
582
+ # asterisk as a wild card character, which matches zero or more characters in a
583
+ # track name. For example, `student*` excludes `student` as well as `studentTeam`.
584
+ # This parameter can also be empty.
585
+ # @param [Boolean] trim Whether to clip the intervals where there is no active
586
+ # media in the compositions triggered by the composition hook. The default is
587
+ # `true`. Compositions with `trim` enabled are shorter when the Room is created
588
+ # and no Participant joins for a while as well as if all the Participants leave
589
+ # the room and join later, because those gaps will be removed. See {Specifying
590
+ # Video
591
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
592
+ # for more info.
593
+ # @param [composition_hook.Format] format The container format of the media files
594
+ # used by the compositions created by the composition hook. Can be: `mp4` or
595
+ # `webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources` must have
596
+ # one or more tracks and/or a `video_layout` element must contain a valid
597
+ # `video_sources` list, otherwise an error occurs.
598
+ # @param [String] resolution A string that describes the columns (width) and rows
599
+ # (height) of the generated composed video in pixels. Defaults to `640x480`.
600
+ # The string's format is `{width}x{height}` where:
601
+ #
602
+ # * 16 <= `{width}` <= 1280
603
+ # * 16 <= `{height}` <= 1280
604
+ # * `{width}` * `{height}` <= 921,600
605
+ #
606
+ # Typical values are:
607
+ #
580
608
  # * HD = `1280x720`
581
609
  # * PAL = `1024x576`
582
610
  # * VGA = `640x480`
583
611
  # * CIF = `320x240`
584
- # Note that the `Resolution` implicitly imposes an aspect ratio to the resulting
585
- # composition. When the original video tracks get constrained by this aspect ratio
586
- # they are scaled-down to fit. You can find detailed information in the [Managing
587
- # Video Layouts](#managing-video-layouts) section. Defaults to `640x480`.
588
- # @param [String] status_callback A URL that Twilio sends asynchronous webhook
589
- # requests to on every composition event. If not provided, status callback events
590
- # will not be dispatched.
591
- # @param [String] status_callback_method HTTP method Twilio should use when
592
- # requesting the above URL. Defaults to `POST`.
612
+ #
613
+ # Note that the `resolution` imposes an aspect ratio to the resulting composition.
614
+ # When the original video tracks are constrained by the aspect ratio, they are
615
+ # scaled to fit. See {Specifying Video
616
+ # Layouts}[https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts]
617
+ # for more info.
618
+ # @param [String] status_callback The URL we should call using the
619
+ # `status_callback_method` to send status information to your application on every
620
+ # composition event. If not provided, status callback events will not be
621
+ # dispatched.
622
+ # @param [String] status_callback_method The HTTP method we should use to call
623
+ # `status_callback`. Can be: `POST` or `GET` and the default is `POST`.
593
624
  # @return [CompositionHookInstance] Updated CompositionHookInstance
594
625
  def update(friendly_name: nil, enabled: :unset, video_layout: :unset, audio_sources: :unset, audio_sources_excluded: :unset, trim: :unset, format: :unset, resolution: :unset, status_callback: :unset, status_callback_method: :unset)
595
626
  context.update(