twilio-ruby 5.5.1 → 5.58.3

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 (811) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +1 -0
  3. data/.gitignore +5 -0
  4. data/.rubocop.yml +22 -3
  5. data/.rubocop_todo.yml +86 -75
  6. data/.travis.yml +51 -16
  7. data/CHANGES.md +2000 -0
  8. data/CODE_OF_CONDUCT.md +73 -0
  9. data/CONTRIBUTING.md +4 -2
  10. data/Dockerfile +9 -0
  11. data/Gemfile +1 -8
  12. data/ISSUE_TEMPLATE.md +17 -13
  13. data/{LICENSE.md → LICENSE} +2 -2
  14. data/Makefile +18 -14
  15. data/PULL_REQUEST_TEMPLATE.md +31 -0
  16. data/README.md +121 -53
  17. data/Rakefile +0 -54
  18. data/VERSIONS.md +9 -10
  19. data/examples/examples.rb +1 -1
  20. data/examples/print_call_log.rb +1 -1
  21. data/githooks/pre-commit +0 -0
  22. data/lib/rack/twilio_webhook_authentication.rb +2 -0
  23. data/lib/twilio-ruby/framework/request.rb +2 -0
  24. data/lib/twilio-ruby/framework/response.rb +2 -0
  25. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +3 -1
  26. data/lib/twilio-ruby/framework/rest/error.rb +51 -0
  27. data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +2 -0
  28. data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +2 -0
  29. data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +3 -1
  30. data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +2 -0
  31. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +10 -21
  32. data/lib/twilio-ruby/framework/serialize.rb +2 -0
  33. data/lib/twilio-ruby/framework/twilio_response.rb +2 -0
  34. data/lib/twilio-ruby/framework/values.rb +2 -0
  35. data/lib/twilio-ruby/http/http_client.rb +32 -15
  36. data/lib/twilio-ruby/http.rb +5 -0
  37. data/lib/twilio-ruby/jwt/access_token.rb +12 -3
  38. data/lib/twilio-ruby/jwt/client_capability.rb +3 -1
  39. data/lib/twilio-ruby/jwt/jwt.rb +8 -0
  40. data/lib/twilio-ruby/jwt/task_router.rb +4 -2
  41. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  42. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +57 -56
  43. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +56 -62
  44. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +11 -8
  45. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  46. data/lib/twilio-ruby/rest/accounts/v1.rb +16 -0
  47. data/lib/twilio-ruby/rest/accounts.rb +14 -0
  48. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +43 -37
  49. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +124 -93
  50. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +181 -176
  51. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +40 -35
  52. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +189 -85
  53. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +500 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +189 -85
  55. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +500 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +500 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +189 -85
  58. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +500 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +129 -26
  60. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +125 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +80 -63
  63. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +65 -55
  64. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +76 -69
  65. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +375 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +184 -63
  67. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +461 -261
  68. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +341 -117
  69. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +469 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +154 -79
  71. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +97 -70
  72. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +51 -42
  73. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +58 -57
  74. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +176 -79
  75. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +175 -79
  76. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +175 -79
  77. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +318 -259
  78. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +46 -43
  79. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +27 -20
  80. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +54 -46
  81. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +218 -156
  82. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +15 -17
  83. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +15 -17
  84. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +58 -54
  85. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +64 -61
  86. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +59 -42
  87. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +98 -91
  88. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +58 -49
  89. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +52 -44
  90. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +58 -43
  91. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +110 -70
  92. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +88 -78
  93. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +40 -33
  94. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +63 -57
  95. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +49 -51
  96. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +348 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +348 -0
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +163 -0
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +348 -0
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +137 -0
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +135 -0
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +59 -55
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +58 -55
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +220 -103
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +101 -63
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +45 -51
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +15 -11
  108. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +20 -21
  109. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +50 -43
  110. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +82 -33
  111. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +82 -33
  112. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +82 -33
  113. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +82 -33
  114. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +82 -33
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +82 -33
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +82 -33
  117. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +82 -33
  118. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +85 -54
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +117 -104
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +8 -5
  121. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +43 -32
  122. data/lib/twilio-ruby/rest/api/v2010/account.rb +114 -92
  123. data/lib/twilio-ruby/rest/api/v2010.rb +11 -4
  124. data/lib/twilio-ruby/rest/api.rb +39 -26
  125. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +220 -0
  126. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +214 -0
  127. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +399 -0
  128. data/lib/twilio-ruby/rest/{preview/understand/service/intent.rb → autopilot/v1/assistant/field_type.rb} +145 -148
  129. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +392 -0
  130. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +469 -0
  131. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +218 -0
  132. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +386 -0
  133. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +456 -0
  134. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +255 -0
  135. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +237 -0
  136. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +507 -0
  137. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +420 -0
  138. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +650 -0
  139. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +194 -0
  140. data/lib/twilio-ruby/rest/autopilot/v1.rb +52 -0
  141. data/lib/twilio-ruby/rest/autopilot.rb +53 -0
  142. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +286 -0
  143. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +286 -0
  144. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +255 -0
  145. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +243 -0
  146. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +226 -0
  147. data/lib/twilio-ruby/rest/bulkexports/v1.rb +62 -0
  148. data/lib/twilio-ruby/rest/bulkexports.rb +56 -0
  149. data/lib/twilio-ruby/rest/chat/v1/credential.rb +101 -70
  150. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +82 -54
  151. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +100 -65
  152. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +89 -69
  153. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +96 -77
  154. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +74 -62
  155. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +25 -19
  156. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +85 -71
  157. data/lib/twilio-ruby/rest/chat/v1/service.rb +355 -342
  158. data/lib/twilio-ruby/rest/chat/v1.rb +16 -10
  159. data/lib/twilio-ruby/rest/chat/v2/credential.rb +99 -70
  160. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +83 -50
  161. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +77 -54
  162. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +175 -79
  163. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +150 -85
  164. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +478 -0
  165. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +178 -91
  166. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +76 -62
  167. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +77 -46
  168. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +206 -22
  169. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +112 -77
  170. data/lib/twilio-ruby/rest/chat/v2/service.rb +251 -166
  171. data/lib/twilio-ruby/rest/chat/v2.rb +14 -10
  172. data/lib/twilio-ruby/rest/chat.rb +6 -2
  173. data/lib/twilio-ruby/rest/client.rb +216 -43
  174. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  175. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  176. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +355 -0
  177. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +502 -0
  178. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +502 -0
  179. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +410 -0
  180. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +562 -0
  181. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +278 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  188. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +548 -0
  189. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +541 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  191. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +595 -0
  192. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  194. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  195. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +481 -0
  196. data/lib/twilio-ruby/rest/{preview/proxy → conversations/v1}/service.rb +165 -170
  197. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  198. data/lib/twilio-ruby/rest/conversations/v1/user.rb +451 -0
  199. data/lib/twilio-ruby/rest/conversations/v1.rb +126 -0
  200. data/lib/twilio-ruby/rest/conversations.rb +95 -0
  201. data/lib/twilio-ruby/rest/events/v1/event_type.rb +298 -0
  202. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +290 -0
  203. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  204. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  205. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  206. data/lib/twilio-ruby/rest/events/v1/sink.rb +418 -0
  207. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +346 -0
  208. data/lib/twilio-ruby/rest/events/v1/subscription.rb +397 -0
  209. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  210. data/lib/twilio-ruby/rest/events.rb +72 -0
  211. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +43 -42
  212. data/lib/twilio-ruby/rest/fax/v1/fax.rb +128 -114
  213. data/lib/twilio-ruby/rest/fax/v1.rb +9 -5
  214. data/lib/twilio-ruby/rest/fax.rb +4 -1
  215. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +340 -0
  216. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +462 -0
  217. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +565 -0
  218. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +341 -0
  219. data/lib/twilio-ruby/rest/flex_api/v1.rb +83 -0
  220. data/lib/twilio-ruby/rest/flex_api.rb +71 -0
  221. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +233 -0
  222. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  223. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  224. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +262 -0
  225. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +252 -0
  226. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +307 -0
  227. data/lib/twilio-ruby/rest/insights/v1/call.rb +236 -0
  228. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  229. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  230. data/lib/twilio-ruby/rest/insights/v1/room.rb +499 -0
  231. data/lib/twilio-ruby/rest/insights/v1.rb +67 -0
  232. data/lib/twilio-ruby/rest/insights.rb +60 -0
  233. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +33 -41
  234. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +30 -34
  235. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +32 -40
  236. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +30 -38
  237. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +40 -48
  238. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +39 -47
  239. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +7 -7
  240. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +34 -42
  241. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +45 -147
  242. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +16 -12
  243. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +33 -41
  244. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +40 -34
  245. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +30 -34
  246. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +64 -44
  247. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +52 -41
  248. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +422 -0
  249. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +90 -53
  250. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +39 -47
  251. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +28 -27
  252. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +167 -12
  253. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +59 -48
  254. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +51 -55
  255. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +16 -12
  256. data/lib/twilio-ruby/rest/ip_messaging.rb +6 -4
  257. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +70 -35
  258. data/lib/twilio-ruby/rest/lookups/v1.rb +10 -5
  259. data/lib/twilio-ruby/rest/lookups.rb +5 -1
  260. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +388 -0
  261. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  262. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  263. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +58 -49
  264. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +58 -50
  265. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +54 -51
  266. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +433 -0
  267. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +129 -0
  268. data/lib/twilio-ruby/rest/messaging/v1/service.rb +261 -117
  269. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  270. data/lib/twilio-ruby/rest/messaging/v1.rb +45 -5
  271. data/lib/twilio-ruby/rest/messaging.rb +30 -1
  272. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +82 -66
  273. data/lib/twilio-ruby/rest/monitor/v1/event.rb +84 -56
  274. data/lib/twilio-ruby/rest/monitor/v1.rb +14 -10
  275. data/lib/twilio-ruby/rest/monitor.rb +6 -2
  276. data/lib/twilio-ruby/rest/notify/v1/credential.rb +98 -70
  277. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +113 -72
  278. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +129 -50
  279. data/lib/twilio-ruby/rest/notify/v1/service.rb +191 -163
  280. data/lib/twilio-ruby/rest/notify/v1.rb +16 -10
  281. data/lib/twilio-ruby/rest/notify.rb +6 -2
  282. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +309 -0
  283. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +320 -0
  284. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +517 -0
  285. data/lib/twilio-ruby/rest/{preview/proxy/service/phone_number.rb → numbers/v2/regulatory_compliance/end_user.rb} +143 -125
  286. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +273 -0
  287. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +314 -0
  288. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +371 -0
  289. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +273 -0
  290. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +189 -0
  291. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  292. data/lib/twilio-ruby/rest/numbers.rb +44 -0
  293. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +101 -16
  294. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +275 -0
  295. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +249 -0
  296. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +72 -22
  297. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +43 -34
  298. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +16 -10
  299. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +35 -43
  300. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +36 -44
  301. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +33 -41
  302. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +36 -44
  303. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +43 -51
  304. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +7 -4
  305. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +403 -0
  306. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +122 -72
  307. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +154 -72
  308. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +12 -8
  309. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +33 -29
  310. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +33 -34
  311. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +39 -39
  312. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +65 -74
  313. data/lib/twilio-ruby/rest/preview/marketplace.rb +14 -12
  314. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +26 -29
  315. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +42 -47
  316. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +42 -43
  317. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +26 -29
  318. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +34 -38
  319. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +43 -44
  320. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +26 -29
  321. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +34 -38
  322. data/lib/twilio-ruby/rest/preview/sync/service.rb +39 -47
  323. data/lib/twilio-ruby/rest/preview/sync.rb +7 -4
  324. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  325. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +225 -0
  326. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +195 -0
  327. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +186 -0
  328. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +277 -0
  329. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +65 -0
  330. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +212 -0
  331. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +212 -0
  332. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +206 -0
  333. data/lib/twilio-ruby/rest/preview/understand/{service → assistant}/field_type/field_value.rb +77 -66
  334. data/lib/twilio-ruby/rest/preview/understand/{service → assistant}/field_type.rb +79 -71
  335. data/lib/twilio-ruby/rest/preview/understand/{service → assistant}/model_build.rb +88 -66
  336. data/lib/twilio-ruby/rest/preview/understand/{service → assistant}/query.rb +105 -90
  337. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +212 -0
  338. data/lib/twilio-ruby/rest/preview/understand/{service/intent → assistant/task}/field.rb +75 -73
  339. data/lib/twilio-ruby/rest/preview/understand/{service/intent → assistant/task}/sample.rb +114 -93
  340. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +241 -0
  341. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +225 -0
  342. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +495 -0
  343. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +629 -0
  344. data/lib/twilio-ruby/rest/preview/understand.rb +13 -9
  345. data/lib/twilio-ruby/rest/preview/wireless/command.rb +25 -29
  346. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +37 -45
  347. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +19 -14
  348. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +24 -27
  349. data/lib/twilio-ruby/rest/preview/wireless.rb +17 -12
  350. data/lib/twilio-ruby/rest/preview.rb +53 -34
  351. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +35 -30
  352. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +9 -5
  353. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +34 -29
  354. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +9 -5
  355. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +35 -30
  356. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +27 -24
  357. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +12 -8
  358. data/lib/twilio-ruby/rest/pricing/v1.rb +2 -0
  359. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  360. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  361. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +282 -0
  362. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +227 -0
  363. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +146 -0
  364. data/lib/twilio-ruby/rest/pricing/v2.rb +72 -0
  365. data/lib/twilio-ruby/rest/pricing.rb +30 -2
  366. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +116 -57
  367. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +64 -96
  368. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +67 -60
  369. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +83 -118
  370. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +138 -127
  371. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +87 -53
  372. data/lib/twilio-ruby/rest/proxy/v1/service.rb +183 -101
  373. data/lib/twilio-ruby/rest/proxy/v1.rb +9 -5
  374. data/lib/twilio-ruby/rest/proxy.rb +4 -1
  375. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +334 -0
  376. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +387 -0
  377. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  378. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +391 -0
  379. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +349 -0
  380. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +394 -0
  381. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +407 -0
  382. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +454 -0
  383. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +241 -0
  384. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +364 -0
  385. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +387 -0
  386. data/lib/twilio-ruby/rest/{preview/understand → serverless/v1}/service.rb +172 -179
  387. data/lib/twilio-ruby/rest/serverless/v1.rb +44 -0
  388. data/lib/twilio-ruby/rest/serverless.rb +47 -0
  389. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +210 -0
  390. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +225 -0
  391. data/lib/twilio-ruby/rest/{preview/studio → studio/v1}/flow/engagement/step.rb +69 -51
  392. data/lib/twilio-ruby/rest/{preview/studio → studio/v1}/flow/engagement.rb +94 -77
  393. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +211 -0
  394. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +228 -0
  395. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +372 -0
  396. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +456 -0
  397. data/lib/twilio-ruby/rest/{preview/studio → studio/v1}/flow.rb +73 -61
  398. data/lib/twilio-ruby/rest/studio/v1.rb +44 -0
  399. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +211 -0
  400. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +228 -0
  401. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +372 -0
  402. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +449 -0
  403. data/lib/twilio-ruby/rest/{preview/proxy/service/short_code.rb → studio/v2/flow/flow_revision.rb} +116 -129
  404. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +199 -0
  405. data/lib/twilio-ruby/rest/studio/v2/flow.rb +482 -0
  406. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +117 -0
  407. data/lib/twilio-ruby/rest/studio/v2.rb +51 -0
  408. data/lib/twilio-ruby/rest/studio.rb +60 -0
  409. data/lib/twilio-ruby/rest/supersim/v1/command.rb +368 -0
  410. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +494 -0
  411. data/lib/twilio-ruby/rest/supersim/v1/network.rb +307 -0
  412. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +339 -0
  413. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +361 -0
  414. data/lib/twilio-ruby/rest/{notify/v1/service/segment.rb → supersim/v1/sim/billing_period.rb} +66 -58
  415. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +443 -0
  416. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  417. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +338 -0
  418. data/lib/twilio-ruby/rest/supersim/v1.rb +131 -0
  419. data/lib/twilio-ruby/rest/supersim.rb +97 -0
  420. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +66 -72
  421. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +83 -78
  422. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +159 -87
  423. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +65 -72
  424. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +89 -78
  425. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +169 -89
  426. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +63 -72
  427. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +88 -78
  428. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +21 -24
  429. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +79 -74
  430. data/lib/twilio-ruby/rest/sync/v1/service.rb +159 -85
  431. data/lib/twilio-ruby/rest/sync/v1.rb +8 -5
  432. data/lib/twilio-ruby/rest/sync.rb +4 -1
  433. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +105 -66
  434. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +139 -70
  435. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +317 -156
  436. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +227 -113
  437. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +121 -31
  438. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +82 -46
  439. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +66 -30
  440. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +60 -31
  441. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +64 -32
  442. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +137 -92
  443. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +313 -156
  444. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +62 -56
  445. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +59 -29
  446. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +61 -36
  447. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +36 -24
  448. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +59 -34
  449. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +158 -100
  450. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +84 -47
  451. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +49 -27
  452. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +68 -31
  453. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +130 -84
  454. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +85 -46
  455. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +44 -28
  456. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +61 -30
  457. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +163 -98
  458. data/lib/twilio-ruby/rest/taskrouter/v1.rb +8 -5
  459. data/lib/twilio-ruby/rest/taskrouter.rb +4 -1
  460. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +57 -48
  461. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +49 -48
  462. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +97 -71
  463. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +75 -68
  464. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +198 -0
  465. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +185 -89
  466. data/lib/twilio-ruby/rest/trunking/v1.rb +9 -5
  467. data/lib/twilio-ruby/rest/trunking.rb +4 -1
  468. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  469. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  470. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  471. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  472. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  473. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  474. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  475. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  476. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  477. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  478. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  479. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  480. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  481. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  482. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  483. data/lib/twilio-ruby/rest/verify/v2/form.rb +191 -0
  484. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +124 -0
  485. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +205 -0
  486. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +533 -0
  487. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +455 -0
  488. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +299 -0
  489. data/lib/twilio-ruby/rest/{notify/v1/service/user.rb → verify/v2/service/entity.rb} +153 -143
  490. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +370 -0
  491. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +399 -0
  492. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +391 -0
  493. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +356 -0
  494. data/lib/twilio-ruby/rest/{preview/acc_security → verify/v2}/service/verification_check.rb +62 -37
  495. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +427 -0
  496. data/lib/twilio-ruby/rest/verify/v2/service.rb +761 -0
  497. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +329 -0
  498. data/lib/twilio-ruby/rest/verify/v2/verification_template.rb +206 -0
  499. data/lib/twilio-ruby/rest/verify/v2.rb +85 -0
  500. data/lib/twilio-ruby/rest/verify.rb +71 -0
  501. data/lib/twilio-ruby/rest/video/v1/composition.rb +496 -0
  502. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +657 -0
  503. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +269 -0
  504. data/lib/twilio-ruby/rest/video/v1/recording.rb +101 -59
  505. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +269 -0
  506. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +97 -56
  507. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +43 -34
  508. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +175 -0
  509. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +340 -0
  510. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +136 -60
  511. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +144 -0
  512. data/lib/twilio-ruby/rest/video/v1/room.rb +139 -86
  513. data/lib/twilio-ruby/rest/video/v1.rb +60 -10
  514. data/lib/twilio-ruby/rest/video.rb +36 -2
  515. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +496 -0
  516. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -0
  517. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +362 -0
  518. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +128 -0
  519. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +190 -0
  520. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +404 -0
  521. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +197 -0
  522. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +129 -0
  523. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +349 -0
  524. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +329 -0
  525. data/lib/twilio-ruby/rest/voice/v1.rb +103 -0
  526. data/lib/twilio-ruby/rest/voice.rb +80 -0
  527. data/lib/twilio-ruby/rest/wireless/v1/command.rb +133 -69
  528. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +98 -85
  529. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +40 -43
  530. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +46 -30
  531. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +210 -110
  532. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +229 -0
  533. data/lib/twilio-ruby/rest/wireless/v1.rb +27 -15
  534. data/lib/twilio-ruby/rest/wireless.rb +14 -3
  535. data/lib/twilio-ruby/rest.rb +13 -0
  536. data/lib/twilio-ruby/security/request_validator.rb +104 -8
  537. data/lib/twilio-ruby/twiml/fax_response.rb +7 -2
  538. data/lib/twilio-ruby/twiml/messaging_response.rb +5 -2
  539. data/lib/twilio-ruby/twiml/twiml.rb +63 -12
  540. data/lib/twilio-ruby/twiml/voice_response.rb +720 -49
  541. data/lib/twilio-ruby/util/configuration.rb +24 -5
  542. data/lib/twilio-ruby/util.rb +2 -0
  543. data/lib/twilio-ruby/version.rb +1 -1
  544. data/lib/twilio-ruby.rb +10 -24
  545. data/sonar-project.properties +13 -0
  546. data/twilio-ruby.gemspec +15 -10
  547. metadata +368 -556
  548. data/lib/twilio-ruby/framework/error.rb +0 -33
  549. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +0 -260
  550. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +0 -431
  551. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -183
  552. data/lib/twilio-ruby/rest/preview/acc_security/service.rb +0 -386
  553. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -41
  554. data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +0 -435
  555. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +0 -453
  556. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +0 -512
  557. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +0 -495
  558. data/lib/twilio-ruby/rest/preview/proxy.rb +0 -41
  559. data/lib/twilio-ruby/rest/preview/studio.rb +0 -41
  560. data/spec/framework/request_spec.rb +0 -36
  561. data/spec/framework/serialize_spec.rb +0 -80
  562. data/spec/holodeck/holodeck.rb +0 -61
  563. data/spec/holodeck/hologram.rb +0 -4
  564. data/spec/http/http_client_spec.rb +0 -122
  565. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -224
  566. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -224
  567. data/spec/integration/accounts/v1/credential_spec.rb +0 -10
  568. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -105
  569. data/spec/integration/api/v2010/account/address_spec.rb +0 -267
  570. data/spec/integration/api/v2010/account/application_spec.rb +0 -284
  571. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -137
  572. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -101
  573. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -100
  574. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -100
  575. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -128
  576. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -137
  577. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -149
  578. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -179
  579. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -186
  580. data/spec/integration/api/v2010/account/call_spec.rb +0 -312
  581. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -280
  582. data/spec/integration/api/v2010/account/conference_spec.rb +0 -174
  583. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -177
  584. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
  585. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -221
  586. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -183
  587. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -183
  588. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -183
  589. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -339
  590. data/spec/integration/api/v2010/account/key_spec.rb +0 -178
  591. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -48
  592. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -162
  593. data/spec/integration/api/v2010/account/message_spec.rb +0 -293
  594. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -45
  595. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -45
  596. data/spec/integration/api/v2010/account/notification_spec.rb +0 -172
  597. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -193
  598. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -167
  599. data/spec/integration/api/v2010/account/queue_spec.rb +0 -240
  600. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -175
  601. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -166
  602. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -174
  603. data/spec/integration/api/v2010/account/recording_spec.rb +0 -179
  604. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -180
  605. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -178
  606. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -254
  607. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -242
  608. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -208
  609. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -218
  610. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -285
  611. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  612. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -252
  613. data/spec/integration/api/v2010/account/sip_spec.rb +0 -10
  614. data/spec/integration/api/v2010/account/token_spec.rb +0 -56
  615. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -167
  616. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -111
  617. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -111
  618. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -111
  619. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -111
  620. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -111
  621. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -111
  622. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -111
  623. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -111
  624. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -108
  625. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -283
  626. data/spec/integration/api/v2010/account/usage_spec.rb +0 -10
  627. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -46
  628. data/spec/integration/api/v2010/account_spec.rb +0 -254
  629. data/spec/integration/chat/v1/credential_spec.rb +0 -221
  630. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -208
  631. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -282
  632. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -292
  633. data/spec/integration/chat/v1/service/channel_spec.rb +0 -275
  634. data/spec/integration/chat/v1/service/role_spec.rb +0 -261
  635. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -92
  636. data/spec/integration/chat/v1/service/user_spec.rb +0 -264
  637. data/spec/integration/chat/v1/service_spec.rb +0 -297
  638. data/spec/integration/chat/v2/credential_spec.rb +0 -221
  639. data/spec/integration/chat/v2/service/binding_spec.rb +0 -175
  640. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -208
  641. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -255
  642. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -403
  643. data/spec/integration/chat/v2/service/channel_spec.rb +0 -275
  644. data/spec/integration/chat/v2/service/role_spec.rb +0 -261
  645. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -178
  646. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -92
  647. data/spec/integration/chat/v2/service/user_spec.rb +0 -268
  648. data/spec/integration/chat/v2/service_spec.rb +0 -351
  649. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -126
  650. data/spec/integration/fax/v1/fax_spec.rb +0 -269
  651. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -221
  652. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -208
  653. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -282
  654. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -292
  655. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -275
  656. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -261
  657. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -92
  658. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -264
  659. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -297
  660. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -221
  661. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -175
  662. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -208
  663. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -255
  664. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -403
  665. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -275
  666. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -261
  667. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -178
  668. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -92
  669. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -268
  670. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -351
  671. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -60
  672. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -168
  673. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -199
  674. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -171
  675. data/spec/integration/messaging/v1/service_spec.rb +0 -261
  676. data/spec/integration/monitor/v1/alert_spec.rb +0 -161
  677. data/spec/integration/monitor/v1/event_spec.rb +0 -148
  678. data/spec/integration/notify/v1/credential_spec.rb +0 -221
  679. data/spec/integration/notify/v1/service/binding_spec.rb +0 -223
  680. data/spec/integration/notify/v1/service/notification_spec.rb +0 -97
  681. data/spec/integration/notify/v1/service/segment_spec.rb +0 -84
  682. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +0 -116
  683. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +0 -266
  684. data/spec/integration/notify/v1/service/user_spec.rb +0 -211
  685. data/spec/integration/notify/v1/service_spec.rb +0 -280
  686. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -50
  687. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -50
  688. data/spec/integration/preview/acc_security/service_spec.rb +0 -183
  689. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -56
  690. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -77
  691. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -43
  692. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -236
  693. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -231
  694. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -247
  695. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -235
  696. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -244
  697. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -211
  698. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -307
  699. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
  700. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
  701. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -162
  702. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -252
  703. data/spec/integration/preview/proxy/service/phone_number_spec.rb +0 -171
  704. data/spec/integration/preview/proxy/service/session/interaction_spec.rb +0 -104
  705. data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +0 -164
  706. data/spec/integration/preview/proxy/service/session/participant_spec.rb +0 -224
  707. data/spec/integration/preview/proxy/service/session_spec.rb +0 -216
  708. data/spec/integration/preview/proxy/service/short_code_spec.rb +0 -171
  709. data/spec/integration/preview/proxy/service_spec.rb +0 -200
  710. data/spec/integration/preview/studio/flow/engagement/step_spec.rb +0 -96
  711. data/spec/integration/preview/studio/flow/engagement_spec.rb +0 -171
  712. data/spec/integration/preview/studio/flow_spec.rb +0 -115
  713. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -202
  714. data/spec/integration/preview/sync/service/document_spec.rb +0 -252
  715. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -252
  716. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -202
  717. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -207
  718. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -252
  719. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -202
  720. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -207
  721. data/spec/integration/preview/sync/service_spec.rb +0 -244
  722. data/spec/integration/preview/understand/service/field_type/field_value_spec.rb +0 -205
  723. data/spec/integration/preview/understand/service/field_type_spec.rb +0 -244
  724. data/spec/integration/preview/understand/service/intent/field_spec.rb +0 -205
  725. data/spec/integration/preview/understand/service/intent/sample_spec.rb +0 -247
  726. data/spec/integration/preview/understand/service/intent_spec.rb +0 -252
  727. data/spec/integration/preview/understand/service/model_build_spec.rb +0 -231
  728. data/spec/integration/preview/understand/service/query_spec.rb +0 -300
  729. data/spec/integration/preview/understand/service_spec.rb +0 -256
  730. data/spec/integration/preview/wireless/command_spec.rb +0 -167
  731. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -260
  732. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -49
  733. data/spec/integration/preview/wireless/sim_spec.rb +0 -208
  734. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -137
  735. data/spec/integration/pricing/v1/messaging_spec.rb +0 -10
  736. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -128
  737. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -10
  738. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -266
  739. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -54
  740. data/spec/integration/pricing/v1/voice_spec.rb +0 -10
  741. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -182
  742. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -134
  743. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -164
  744. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -227
  745. data/spec/integration/proxy/v1/service/session_spec.rb +0 -228
  746. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -180
  747. data/spec/integration/proxy/v1/service_spec.rb +0 -213
  748. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -202
  749. data/spec/integration/sync/v1/service/document_spec.rb +0 -255
  750. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -255
  751. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -202
  752. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -255
  753. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -255
  754. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -202
  755. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -255
  756. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -45
  757. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -247
  758. data/spec/integration/sync/v1/service_spec.rb +0 -252
  759. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -234
  760. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -157
  761. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -192
  762. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -127
  763. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -94
  764. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -79
  765. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -106
  766. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -144
  767. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -296
  768. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -324
  769. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -192
  770. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -201
  771. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -90
  772. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -87
  773. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -68
  774. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -114
  775. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -292
  776. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -95
  777. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -55
  778. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -69
  779. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -270
  780. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -92
  781. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -70
  782. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -103
  783. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -293
  784. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -190
  785. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -190
  786. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -250
  787. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -265
  788. data/spec/integration/trunking/v1/trunk_spec.rb +0 -276
  789. data/spec/integration/video/v1/recording_spec.rb +0 -169
  790. data/spec/integration/video/v1/room/recording_spec.rb +0 -146
  791. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -94
  792. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -182
  793. data/spec/integration/video/v1/room_spec.rb +0 -255
  794. data/spec/integration/wireless/v1/command_spec.rb +0 -164
  795. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -268
  796. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -85
  797. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -65
  798. data/spec/integration/wireless/v1/sim_spec.rb +0 -214
  799. data/spec/jwt/access_token_spec.rb +0 -149
  800. data/spec/jwt/client_capability_spec.rb +0 -104
  801. data/spec/jwt/task_router_spec.rb +0 -172
  802. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  803. data/spec/rest/client_spec.rb +0 -49
  804. data/spec/security/request_validator_spec.rb +0 -113
  805. data/spec/spec_helper.rb +0 -32
  806. data/spec/support/fakeweb.rb +0 -2
  807. data/spec/twilio_spec.rb +0 -15
  808. data/spec/twiml/messaging_response_spec.rb +0 -95
  809. data/spec/twiml/voice_response_spec.rb +0 -479
  810. data/spec/util/configuration_spec.rb +0 -15
  811. data/spec/util/url_encode_spec.rb +0 -12
@@ -3,6 +3,8 @@
3
3
  # \ / _ _ _| _ _
4
4
  # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
5
  # / /
6
+ #
7
+ # frozen_string_literal: true
6
8
 
7
9
  module Twilio
8
10
  module TwiML
@@ -16,6 +18,18 @@ module Twilio
16
18
  yield(self) if block_given?
17
19
  end
18
20
 
21
+ ##
22
+ # Create a new <Connect> element
23
+ # action:: Action URL
24
+ # method:: Action URL method
25
+ # keyword_args:: additional attributes
26
+ def connect(action: nil, method: nil, **keyword_args)
27
+ connect = Connect.new(action: action, method: method, **keyword_args)
28
+
29
+ yield(connect) if block_given?
30
+ append(connect)
31
+ end
32
+
19
33
  ##
20
34
  # Create a new <Dial> element
21
35
  # number:: Phone number to dial
@@ -29,11 +43,16 @@ module Twilio
29
43
  # trim:: Trim the recording
30
44
  # recording_status_callback:: Recording status callback URL
31
45
  # recording_status_callback_method:: Recording status callback URL method
46
+ # recording_status_callback_event:: Recording status callback events
32
47
  # answer_on_bridge:: Preserve the ringing behavior of the inbound call until the Dialed call picks up
33
48
  # ring_tone:: Ringtone allows you to override the ringback tone that Twilio will play back to the caller while executing the Dial
49
+ # recording_track:: To indicate which audio track should be recorded
50
+ # sequential:: Used to determine if child TwiML nouns should be dialed in order, one after the other (sequential) or dial all at once (parallel). Default is false, parallel
51
+ # refer_url:: Webhook that will receive future SIP REFER requests
52
+ # refer_method:: The HTTP method to use for the refer Webhook
34
53
  # keyword_args:: additional attributes
35
- def dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, answer_on_bridge: nil, ring_tone: nil, **keyword_args)
36
- dial = Dial.new(number: number, action: action, method: method, timeout: timeout, hangup_on_star: hangup_on_star, time_limit: time_limit, caller_id: caller_id, record: record, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, answer_on_bridge: answer_on_bridge, ring_tone: ring_tone, **keyword_args)
54
+ def dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, answer_on_bridge: nil, ring_tone: nil, recording_track: nil, sequential: nil, refer_url: nil, refer_method: nil, **keyword_args)
55
+ dial = Dial.new(number: number, action: action, method: method, timeout: timeout, hangup_on_star: hangup_on_star, time_limit: time_limit, caller_id: caller_id, record: record, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, recording_status_callback_event: recording_status_callback_event, answer_on_bridge: answer_on_bridge, ring_tone: ring_tone, recording_track: recording_track, sequential: sequential, refer_url: refer_url, refer_method: refer_method, **keyword_args)
37
56
 
38
57
  yield(dial) if block_given?
39
58
  append(dial)
@@ -78,9 +97,13 @@ module Twilio
78
97
  # language:: Language to use
79
98
  # hints:: Speech recognition hints
80
99
  # barge_in:: Stop playing media upon speech
100
+ # debug:: Allow debug for gather
101
+ # action_on_empty_result:: Force webhook to the action URL event if there is no input
102
+ # speech_model:: Specify the model that is best suited for your use case
103
+ # enhanced:: Use enhanced speech model
81
104
  # keyword_args:: additional attributes
82
- def gather(input: nil, action: nil, method: nil, timeout: nil, speech_timeout: nil, max_speech_time: nil, profanity_filter: nil, finish_on_key: nil, num_digits: nil, partial_result_callback: nil, partial_result_callback_method: nil, language: nil, hints: nil, barge_in: nil, **keyword_args)
83
- gather = Gather.new(input: input, action: action, method: method, timeout: timeout, speech_timeout: speech_timeout, max_speech_time: max_speech_time, profanity_filter: profanity_filter, finish_on_key: finish_on_key, num_digits: num_digits, partial_result_callback: partial_result_callback, partial_result_callback_method: partial_result_callback_method, language: language, hints: hints, barge_in: barge_in, **keyword_args)
105
+ def gather(input: nil, action: nil, method: nil, timeout: nil, speech_timeout: nil, max_speech_time: nil, profanity_filter: nil, finish_on_key: nil, num_digits: nil, partial_result_callback: nil, partial_result_callback_method: nil, language: nil, hints: nil, barge_in: nil, debug: nil, action_on_empty_result: nil, speech_model: nil, enhanced: nil, **keyword_args)
106
+ gather = Gather.new(input: input, action: action, method: method, timeout: timeout, speech_timeout: speech_timeout, max_speech_time: max_speech_time, profanity_filter: profanity_filter, finish_on_key: finish_on_key, num_digits: num_digits, partial_result_callback: partial_result_callback, partial_result_callback_method: partial_result_callback_method, language: language, hints: hints, barge_in: barge_in, debug: debug, action_on_empty_result: action_on_empty_result, speech_model: speech_model, enhanced: enhanced, **keyword_args)
84
107
 
85
108
  yield(gather) if block_given?
86
109
  append(gather)
@@ -141,11 +164,12 @@ module Twilio
141
164
  # trim:: Trim the recording
142
165
  # recording_status_callback:: Status callback URL
143
166
  # recording_status_callback_method:: Status callback URL method
167
+ # recording_status_callback_event:: Recording status callback events
144
168
  # transcribe:: Transcribe the recording
145
169
  # transcribe_callback:: Transcribe callback URL
146
170
  # keyword_args:: additional attributes
147
- def record(action: nil, method: nil, timeout: nil, finish_on_key: nil, max_length: nil, play_beep: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, transcribe: nil, transcribe_callback: nil, **keyword_args)
148
- append(Record.new(action: action, method: method, timeout: timeout, finish_on_key: finish_on_key, max_length: max_length, play_beep: play_beep, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, transcribe: transcribe, transcribe_callback: transcribe_callback, **keyword_args))
171
+ def record(action: nil, method: nil, timeout: nil, finish_on_key: nil, max_length: nil, play_beep: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, transcribe: nil, transcribe_callback: nil, **keyword_args)
172
+ append(Record.new(action: action, method: method, timeout: timeout, finish_on_key: finish_on_key, max_length: max_length, play_beep: play_beep, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, recording_status_callback_event: recording_status_callback_event, transcribe: transcribe, transcribe_callback: transcribe_callback, **keyword_args))
149
173
  end
150
174
 
151
175
  ##
@@ -172,8 +196,11 @@ module Twilio
172
196
  # loop:: Times to loop message
173
197
  # language:: Message langauge
174
198
  # keyword_args:: additional attributes
175
- def say(message, voice: nil, loop: nil, language: nil, **keyword_args)
176
- append(Say.new(message, voice: voice, loop: loop, language: language, **keyword_args))
199
+ def say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args)
200
+ say = Say.new(message: message, voice: voice, loop: loop, language: language, **keyword_args)
201
+
202
+ yield(say) if block_given?
203
+ append(say)
177
204
  end
178
205
 
179
206
  ##
@@ -188,15 +215,306 @@ module Twilio
188
215
  def sms(message, to: nil, from: nil, action: nil, method: nil, status_callback: nil, **keyword_args)
189
216
  append(Sms.new(message, to: to, from: from, action: action, method: method, status_callback: status_callback, **keyword_args))
190
217
  end
218
+
219
+ ##
220
+ # Create a new <Pay> element
221
+ # input:: Input type Twilio should accept
222
+ # action:: Action URL
223
+ # bank_account_type:: Bank account type for ach transactions. If set, payment method attribute must be provided and value should be set to ach-debit. defaults to consumer-checking
224
+ # status_callback:: Status callback URL
225
+ # status_callback_method:: Status callback method
226
+ # timeout:: Time to wait to gather input
227
+ # max_attempts:: Maximum number of allowed retries when gathering input
228
+ # security_code:: Prompt for security code
229
+ # postal_code:: Prompt for postal code and it should be true/false or default postal code
230
+ # min_postal_code_length:: Prompt for minimum postal code length
231
+ # payment_connector:: Unique name for payment connector
232
+ # payment_method:: Payment method to be used. defaults to credit-card
233
+ # token_type:: Type of token
234
+ # charge_amount:: Amount to process. If value is greater than 0 then make the payment else create a payment token
235
+ # currency:: Currency of the amount attribute
236
+ # description:: Details regarding the payment
237
+ # valid_card_types:: Comma separated accepted card types
238
+ # language:: Language to use
239
+ # keyword_args:: additional attributes
240
+ def pay(input: nil, action: nil, bank_account_type: nil, status_callback: nil, status_callback_method: nil, timeout: nil, max_attempts: nil, security_code: nil, postal_code: nil, min_postal_code_length: nil, payment_connector: nil, payment_method: nil, token_type: nil, charge_amount: nil, currency: nil, description: nil, valid_card_types: nil, language: nil, **keyword_args)
241
+ pay = Pay.new(input: input, action: action, bank_account_type: bank_account_type, status_callback: status_callback, status_callback_method: status_callback_method, timeout: timeout, max_attempts: max_attempts, security_code: security_code, postal_code: postal_code, min_postal_code_length: min_postal_code_length, payment_connector: payment_connector, payment_method: payment_method, token_type: token_type, charge_amount: charge_amount, currency: currency, description: description, valid_card_types: valid_card_types, language: language, **keyword_args)
242
+
243
+ yield(pay) if block_given?
244
+ append(pay)
245
+ end
246
+
247
+ ##
248
+ # Create a new <Prompt> element
249
+ # for_:: Name of the payment source data element
250
+ # error_type:: Type of error
251
+ # card_type:: Type of the credit card
252
+ # attempt:: Current attempt count
253
+ # keyword_args:: additional attributes
254
+ def prompt(for_: nil, error_type: nil, card_type: nil, attempt: nil, **keyword_args)
255
+ prompt = Prompt.new(for_: for_, error_type: error_type, card_type: card_type, attempt: attempt, **keyword_args)
256
+
257
+ yield(prompt) if block_given?
258
+ append(prompt)
259
+ end
260
+
261
+ ##
262
+ # Create a new <Start> element
263
+ # action:: Action URL
264
+ # method:: Action URL method
265
+ # keyword_args:: additional attributes
266
+ def start(action: nil, method: nil, **keyword_args)
267
+ start = Start.new(action: action, method: method, **keyword_args)
268
+
269
+ yield(start) if block_given?
270
+ append(start)
271
+ end
272
+
273
+ ##
274
+ # Create a new <Stop> element
275
+ # keyword_args:: additional attributes
276
+ def stop(**keyword_args)
277
+ stop = Stop.new(**keyword_args)
278
+
279
+ yield(stop) if block_given?
280
+ append(stop)
281
+ end
282
+
283
+ ##
284
+ # Create a new <Refer> element
285
+ # action:: Action URL
286
+ # method:: Action URL method
287
+ # keyword_args:: additional attributes
288
+ def refer(action: nil, method: nil, **keyword_args)
289
+ refer = Refer.new(action: action, method: method, **keyword_args)
290
+
291
+ yield(refer) if block_given?
292
+ append(refer)
293
+ end
191
294
  end
192
295
 
193
296
  ##
194
- # <Sms> TwiML Noun
195
- class Sms < TwiML
196
- def initialize(message, **keyword_args)
297
+ # <Refer> TwiML Verb
298
+ class Refer < TwiML
299
+ def initialize(**keyword_args)
197
300
  super(**keyword_args)
198
- @name = 'Sms'
199
- @value = message
301
+ @name = 'Refer'
302
+
303
+ yield(self) if block_given?
304
+ end
305
+
306
+ ##
307
+ # Create a new <Sip> element
308
+ # sip_url:: SIP URL
309
+ # keyword_args:: additional attributes
310
+ def sip(sip_url, **keyword_args)
311
+ append(ReferSip.new(sip_url, **keyword_args))
312
+ end
313
+ end
314
+
315
+ ##
316
+ # <Sip> TwiML Noun used in <Refer>
317
+ class ReferSip < TwiML
318
+ def initialize(sip_url, **keyword_args)
319
+ super(**keyword_args)
320
+ @name = 'Sip'
321
+ @value = sip_url
322
+ yield(self) if block_given?
323
+ end
324
+ end
325
+
326
+ ##
327
+ # <Stop> TwiML Verb
328
+ class Stop < TwiML
329
+ def initialize(**keyword_args)
330
+ super(**keyword_args)
331
+ @name = 'Stop'
332
+
333
+ yield(self) if block_given?
334
+ end
335
+
336
+ ##
337
+ # Create a new <Stream> element
338
+ # name:: Friendly name given to the Stream
339
+ # connector_name:: Unique name for Stream Connector
340
+ # url:: URL of the remote service where the Stream is routed
341
+ # track:: Track to be streamed to remote service
342
+ # status_callback:: Status Callback URL
343
+ # status_callback_method:: Status Callback URL method
344
+ # keyword_args:: additional attributes
345
+ def stream(name: nil, connector_name: nil, url: nil, track: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
346
+ stream = Stream.new(name: name, connector_name: connector_name, url: url, track: track, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args)
347
+
348
+ yield(stream) if block_given?
349
+ append(stream)
350
+ end
351
+
352
+ ##
353
+ # Create a new <Siprec> element
354
+ # name:: Friendly name given to SIPREC
355
+ # connector_name:: Unique name for Connector
356
+ # track:: Track to be streamed to remote service
357
+ # keyword_args:: additional attributes
358
+ def siprec(name: nil, connector_name: nil, track: nil, **keyword_args)
359
+ siprec = Siprec.new(name: name, connector_name: connector_name, track: track, **keyword_args)
360
+
361
+ yield(siprec) if block_given?
362
+ append(siprec)
363
+ end
364
+ end
365
+
366
+ ##
367
+ # <Siprec> TwiML Noun
368
+ class Siprec < TwiML
369
+ def initialize(**keyword_args)
370
+ super(**keyword_args)
371
+ @name = 'Siprec'
372
+
373
+ yield(self) if block_given?
374
+ end
375
+
376
+ ##
377
+ # Create a new <Parameter> element
378
+ # name:: The name of the custom parameter
379
+ # value:: The value of the custom parameter
380
+ # keyword_args:: additional attributes
381
+ def parameter(name: nil, value: nil, **keyword_args)
382
+ append(Parameter.new(name: name, value: value, **keyword_args))
383
+ end
384
+ end
385
+
386
+ ##
387
+ # <Parameter> TwiML Noun
388
+ class Parameter < TwiML
389
+ def initialize(**keyword_args)
390
+ super(**keyword_args)
391
+ @name = 'Parameter'
392
+
393
+ yield(self) if block_given?
394
+ end
395
+ end
396
+
397
+ ##
398
+ # <Stream> TwiML Noun
399
+ class Stream < TwiML
400
+ def initialize(**keyword_args)
401
+ super(**keyword_args)
402
+ @name = 'Stream'
403
+
404
+ yield(self) if block_given?
405
+ end
406
+
407
+ ##
408
+ # Create a new <Parameter> element
409
+ # name:: The name of the custom parameter
410
+ # value:: The value of the custom parameter
411
+ # keyword_args:: additional attributes
412
+ def parameter(name: nil, value: nil, **keyword_args)
413
+ append(Parameter.new(name: name, value: value, **keyword_args))
414
+ end
415
+ end
416
+
417
+ ##
418
+ # <Start> TwiML Verb
419
+ class Start < TwiML
420
+ def initialize(**keyword_args)
421
+ super(**keyword_args)
422
+ @name = 'Start'
423
+
424
+ yield(self) if block_given?
425
+ end
426
+
427
+ ##
428
+ # Create a new <Stream> element
429
+ # name:: Friendly name given to the Stream
430
+ # connector_name:: Unique name for Stream Connector
431
+ # url:: URL of the remote service where the Stream is routed
432
+ # track:: Track to be streamed to remote service
433
+ # status_callback:: Status Callback URL
434
+ # status_callback_method:: Status Callback URL method
435
+ # keyword_args:: additional attributes
436
+ def stream(name: nil, connector_name: nil, url: nil, track: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
437
+ stream = Stream.new(name: name, connector_name: connector_name, url: url, track: track, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args)
438
+
439
+ yield(stream) if block_given?
440
+ append(stream)
441
+ end
442
+
443
+ ##
444
+ # Create a new <Siprec> element
445
+ # name:: Friendly name given to SIPREC
446
+ # connector_name:: Unique name for Connector
447
+ # track:: Track to be streamed to remote service
448
+ # keyword_args:: additional attributes
449
+ def siprec(name: nil, connector_name: nil, track: nil, **keyword_args)
450
+ siprec = Siprec.new(name: name, connector_name: connector_name, track: track, **keyword_args)
451
+
452
+ yield(siprec) if block_given?
453
+ append(siprec)
454
+ end
455
+ end
456
+
457
+ ##
458
+ # <Prompt> Twiml Verb
459
+ class Prompt < TwiML
460
+ def initialize(**keyword_args)
461
+ super(**keyword_args)
462
+ @name = 'Prompt'
463
+
464
+ yield(self) if block_given?
465
+ end
466
+
467
+ ##
468
+ # Create a new <Say> element
469
+ # message:: Message to say
470
+ # voice:: Voice to use
471
+ # loop:: Times to loop message
472
+ # language:: Message langauge
473
+ # keyword_args:: additional attributes
474
+ def say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args)
475
+ say = Say.new(message: message, voice: voice, loop: loop, language: language, **keyword_args)
476
+
477
+ yield(say) if block_given?
478
+ append(say)
479
+ end
480
+
481
+ ##
482
+ # Create a new <Play> element
483
+ # url:: Media URL
484
+ # loop:: Times to loop media
485
+ # digits:: Play DTMF tones for digits
486
+ # keyword_args:: additional attributes
487
+ def play(url: nil, loop: nil, digits: nil, **keyword_args)
488
+ append(Play.new(url: url, loop: loop, digits: digits, **keyword_args))
489
+ end
490
+
491
+ ##
492
+ # Create a new <Pause> element
493
+ # length:: Length in seconds to pause
494
+ # keyword_args:: additional attributes
495
+ def pause(length: nil, **keyword_args)
496
+ append(Pause.new(length: length, **keyword_args))
497
+ end
498
+ end
499
+
500
+ ##
501
+ # <Pause> TwiML Verb
502
+ class Pause < TwiML
503
+ def initialize(**keyword_args)
504
+ super(**keyword_args)
505
+ @name = 'Pause'
506
+
507
+ yield(self) if block_given?
508
+ end
509
+ end
510
+
511
+ ##
512
+ # <Play> TwiML Verb
513
+ class Play < TwiML
514
+ def initialize(url: nil, **keyword_args)
515
+ super(**keyword_args)
516
+ @name = 'Play'
517
+ @value = url unless url.nil?
200
518
  yield(self) if block_given?
201
519
  end
202
520
  end
@@ -204,9 +522,256 @@ module Twilio
204
522
  ##
205
523
  # <Say> TwiML Verb
206
524
  class Say < TwiML
207
- def initialize(message, **keyword_args)
525
+ def initialize(message: nil, **keyword_args)
208
526
  super(**keyword_args)
209
527
  @name = 'Say'
528
+ @value = message unless message.nil?
529
+ yield(self) if block_given?
530
+ end
531
+
532
+ ##
533
+ # Create a new <Break> element
534
+ # strength:: Set a pause based on strength
535
+ # time:: Set a pause to a specific length of time in seconds or milliseconds, available values: [number]s, [number]ms
536
+ # keyword_args:: additional attributes
537
+ def break(strength: nil, time: nil, **keyword_args)
538
+ append(SsmlBreak.new(strength: strength, time: time, **keyword_args))
539
+ end
540
+
541
+ ##
542
+ # Create a new <Emphasis> element
543
+ # words:: Words to emphasize
544
+ # level:: Specify the degree of emphasis
545
+ # keyword_args:: additional attributes
546
+ def emphasis(words, level: nil, **keyword_args)
547
+ append(SsmlEmphasis.new(words, level: level, **keyword_args))
548
+ end
549
+
550
+ ##
551
+ # Create a new <Lang> element
552
+ # words:: Words to speak
553
+ # xmlLang:: Specify the language
554
+ # keyword_args:: additional attributes
555
+ def lang(words, xmlLang: nil, **keyword_args)
556
+ append(SsmlLang.new(words, xmlLang: xmlLang, **keyword_args))
557
+ end
558
+
559
+ ##
560
+ # Create a new <P> element
561
+ # words:: Words to speak
562
+ # keyword_args:: additional attributes
563
+ def p(words, **keyword_args)
564
+ append(SsmlP.new(words, **keyword_args))
565
+ end
566
+
567
+ ##
568
+ # Create a new <Phoneme> element
569
+ # words:: Words to speak
570
+ # alphabet:: Specify the phonetic alphabet
571
+ # ph:: Specifiy the phonetic symbols for pronunciation
572
+ # keyword_args:: additional attributes
573
+ def phoneme(words, alphabet: nil, ph: nil, **keyword_args)
574
+ append(SsmlPhoneme.new(words, alphabet: alphabet, ph: ph, **keyword_args))
575
+ end
576
+
577
+ ##
578
+ # Create a new <Prosody> element
579
+ # words:: Words to speak
580
+ # volume:: Specify the volume, available values: default, silent, x-soft, soft, medium, loud, x-loud, +ndB, -ndB
581
+ # rate:: Specify the rate, available values: x-slow, slow, medium, fast, x-fast, n%
582
+ # pitch:: Specify the pitch, available values: default, x-low, low, medium, high, x-high, +n%, -n%
583
+ # keyword_args:: additional attributes
584
+ def prosody(words, volume: nil, rate: nil, pitch: nil, **keyword_args)
585
+ append(SsmlProsody.new(words, volume: volume, rate: rate, pitch: pitch, **keyword_args))
586
+ end
587
+
588
+ ##
589
+ # Create a new <S> element
590
+ # words:: Words to speak
591
+ # keyword_args:: additional attributes
592
+ def s(words, **keyword_args)
593
+ append(SsmlS.new(words, **keyword_args))
594
+ end
595
+
596
+ ##
597
+ # Create a new <Say-As> element
598
+ # words:: Words to be interpreted
599
+ # interpretAs:: Specify the type of words are spoken
600
+ # role:: Specify the format of the date when interpret-as is set to date
601
+ # keyword_args:: additional attributes
602
+ def say_as(words, interpretAs: nil, role: nil, **keyword_args)
603
+ append(SsmlSayAs.new(words, interpretAs: interpretAs, role: role, **keyword_args))
604
+ end
605
+
606
+ ##
607
+ # Create a new <Sub> element
608
+ # words:: Words to be substituted
609
+ # aliasAttribute:: Substitute a different word (or pronunciation) for selected text such as an acronym or abbreviation
610
+ # keyword_args:: additional attributes
611
+ def sub(words, aliasAttribute: nil, **keyword_args)
612
+ append(SsmlSub.new(words, aliasAttribute: aliasAttribute, **keyword_args))
613
+ end
614
+
615
+ ##
616
+ # Create a new <W> element
617
+ # words:: Words to speak
618
+ # role:: Customize the pronunciation of words by specifying the word’s part of speech or alternate meaning
619
+ # keyword_args:: additional attributes
620
+ def w(words, role: nil, **keyword_args)
621
+ append(SsmlW.new(words, role: role, **keyword_args))
622
+ end
623
+ end
624
+
625
+ ##
626
+ # Improving Pronunciation by Specifying Parts of Speech in <Say>
627
+ class SsmlW < TwiML
628
+ def initialize(words, **keyword_args)
629
+ super(**keyword_args)
630
+ @name = 'w'
631
+ @value = words
632
+ yield(self) if block_given?
633
+ end
634
+ end
635
+
636
+ ##
637
+ # Pronouncing Acronyms and Abbreviations in <Say>
638
+ class SsmlSub < TwiML
639
+ def initialize(words, **keyword_args)
640
+ super(**keyword_args)
641
+ @name = 'sub'
642
+ @value = words
643
+ yield(self) if block_given?
644
+ end
645
+ end
646
+
647
+ ##
648
+ # Controlling How Special Types of Words Are Spoken in <Say>
649
+ class SsmlSayAs < TwiML
650
+ def initialize(words, **keyword_args)
651
+ super(**keyword_args)
652
+ @name = 'say-as'
653
+ @value = words
654
+ yield(self) if block_given?
655
+ end
656
+ end
657
+
658
+ ##
659
+ # Adding A Pause Between Sentences in <Say>
660
+ class SsmlS < TwiML
661
+ def initialize(words, **keyword_args)
662
+ super(**keyword_args)
663
+ @name = 's'
664
+ @value = words
665
+ yield(self) if block_given?
666
+ end
667
+ end
668
+
669
+ ##
670
+ # Controling Volume, Speaking Rate, and Pitch in <Say>
671
+ class SsmlProsody < TwiML
672
+ def initialize(words, **keyword_args)
673
+ super(**keyword_args)
674
+ @name = 'prosody'
675
+ @value = words
676
+ yield(self) if block_given?
677
+ end
678
+ end
679
+
680
+ ##
681
+ # Using Phonetic Pronunciation in <Say>
682
+ class SsmlPhoneme < TwiML
683
+ def initialize(words, **keyword_args)
684
+ super(**keyword_args)
685
+ @name = 'phoneme'
686
+ @value = words
687
+ yield(self) if block_given?
688
+ end
689
+ end
690
+
691
+ ##
692
+ # Adding a Pause Between Paragraphs in <Say>
693
+ class SsmlP < TwiML
694
+ def initialize(words, **keyword_args)
695
+ super(**keyword_args)
696
+ @name = 'p'
697
+ @value = words
698
+ yield(self) if block_given?
699
+ end
700
+ end
701
+
702
+ ##
703
+ # Specifying Another Language for Specific Words in <Say>
704
+ class SsmlLang < TwiML
705
+ def initialize(words, **keyword_args)
706
+ super(**keyword_args)
707
+ @name = 'lang'
708
+ @value = words
709
+ yield(self) if block_given?
710
+ end
711
+ end
712
+
713
+ ##
714
+ # Emphasizing Words in <Say>
715
+ class SsmlEmphasis < TwiML
716
+ def initialize(words, **keyword_args)
717
+ super(**keyword_args)
718
+ @name = 'emphasis'
719
+ @value = words
720
+ yield(self) if block_given?
721
+ end
722
+ end
723
+
724
+ ##
725
+ # Adding a Pause in <Say>
726
+ class SsmlBreak < TwiML
727
+ def initialize(**keyword_args)
728
+ super(**keyword_args)
729
+ @name = 'break'
730
+
731
+ yield(self) if block_given?
732
+ end
733
+ end
734
+
735
+ ##
736
+ # <Pay> Twiml Verb
737
+ class Pay < TwiML
738
+ def initialize(**keyword_args)
739
+ super(**keyword_args)
740
+ @name = 'Pay'
741
+
742
+ yield(self) if block_given?
743
+ end
744
+
745
+ ##
746
+ # Create a new <Prompt> element
747
+ # for_:: Name of the payment source data element
748
+ # error_type:: Type of error
749
+ # card_type:: Type of the credit card
750
+ # attempt:: Current attempt count
751
+ # keyword_args:: additional attributes
752
+ def prompt(for_: nil, error_type: nil, card_type: nil, attempt: nil, **keyword_args)
753
+ prompt = Prompt.new(for_: for_, error_type: error_type, card_type: card_type, attempt: attempt, **keyword_args)
754
+
755
+ yield(prompt) if block_given?
756
+ append(prompt)
757
+ end
758
+
759
+ ##
760
+ # Create a new <Parameter> element
761
+ # name:: The name of the custom parameter
762
+ # value:: The value of the custom parameter
763
+ # keyword_args:: additional attributes
764
+ def parameter(name: nil, value: nil, **keyword_args)
765
+ append(Parameter.new(name: name, value: value, **keyword_args))
766
+ end
767
+ end
768
+
769
+ ##
770
+ # <Sms> TwiML Noun
771
+ class Sms < TwiML
772
+ def initialize(message, **keyword_args)
773
+ super(**keyword_args)
774
+ @name = 'Sms'
210
775
  @value = message
211
776
  yield(self) if block_given?
212
777
  end
@@ -256,28 +821,6 @@ module Twilio
256
821
  end
257
822
  end
258
823
 
259
- ##
260
- # <Play> TwiML Verb
261
- class Play < TwiML
262
- def initialize(url: nil, **keyword_args)
263
- super(**keyword_args)
264
- @name = 'Play'
265
- @value = url unless url.nil?
266
- yield(self) if block_given?
267
- end
268
- end
269
-
270
- ##
271
- # <Pause> TwiML Verb
272
- class Pause < TwiML
273
- def initialize(**keyword_args)
274
- super(**keyword_args)
275
- @name = 'Pause'
276
-
277
- yield(self) if block_given?
278
- end
279
- end
280
-
281
824
  ##
282
825
  # <Leave> TwiML Verb
283
826
  class Leave < TwiML
@@ -317,8 +860,11 @@ module Twilio
317
860
  # loop:: Times to loop message
318
861
  # language:: Message langauge
319
862
  # keyword_args:: additional attributes
320
- def say(message, voice: nil, loop: nil, language: nil, **keyword_args)
321
- append(Say.new(message, voice: voice, loop: loop, language: language, **keyword_args))
863
+ def say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args)
864
+ say = Say.new(message: message, voice: voice, loop: loop, language: language, **keyword_args)
865
+
866
+ yield(say) if block_given?
867
+ append(say)
322
868
  end
323
869
 
324
870
  ##
@@ -353,9 +899,11 @@ module Twilio
353
899
  ##
354
900
  # Create a new <Task> element
355
901
  # body:: TaskRouter task attributes
902
+ # priority:: Task priority
903
+ # timeout:: Timeout associated with task
356
904
  # keyword_args:: additional attributes
357
- def task(body, **keyword_args)
358
- append(Task.new(body, **keyword_args))
905
+ def task(body, priority: nil, timeout: nil, **keyword_args)
906
+ append(Task.new(body, priority: priority, timeout: timeout, **keyword_args))
359
907
  end
360
908
  end
361
909
 
@@ -393,15 +941,18 @@ module Twilio
393
941
 
394
942
  ##
395
943
  # Create a new <Client> element
396
- # name:: Client name
944
+ # identity:: Client identity
397
945
  # url:: Client URL
398
946
  # method:: Client URL Method
399
947
  # status_callback_event:: Events to trigger status callback
400
948
  # status_callback:: Status Callback URL
401
949
  # status_callback_method:: Status Callback URL Method
402
950
  # keyword_args:: additional attributes
403
- def client(name, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
404
- append(Client.new(name, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
951
+ def client(identity: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
952
+ client = Client.new(identity: identity, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args)
953
+
954
+ yield(client) if block_given?
955
+ append(client)
405
956
  end
406
957
 
407
958
  ##
@@ -416,17 +967,20 @@ module Twilio
416
967
  # max_participants:: Maximum number of participants
417
968
  # record:: Record the conference
418
969
  # region:: Conference region
419
- # whisper:: Call whisper
970
+ # coach:: Call coach
420
971
  # trim:: Trim the conference recording
421
972
  # status_callback_event:: Events to call status callback URL
422
973
  # status_callback:: Status callback URL
423
974
  # status_callback_method:: Status callback URL method
424
975
  # recording_status_callback:: Recording status callback URL
425
976
  # recording_status_callback_method:: Recording status callback URL method
977
+ # recording_status_callback_event:: Recording status callback events
426
978
  # event_callback_url:: Event callback URL
979
+ # jitter_buffer_size:: Size of jitter buffer for participant
980
+ # participant_label:: A label for participant
427
981
  # keyword_args:: additional attributes
428
- def conference(name, muted: nil, beep: nil, start_conference_on_enter: nil, end_conference_on_exit: nil, wait_url: nil, wait_method: nil, max_participants: nil, record: nil, region: nil, whisper: nil, trim: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, recording_status_callback: nil, recording_status_callback_method: nil, event_callback_url: nil, **keyword_args)
429
- append(Conference.new(name, muted: muted, beep: beep, start_conference_on_enter: start_conference_on_enter, end_conference_on_exit: end_conference_on_exit, wait_url: wait_url, wait_method: wait_method, max_participants: max_participants, record: record, region: region, whisper: whisper, trim: trim, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, event_callback_url: event_callback_url, **keyword_args))
982
+ def conference(name, muted: nil, beep: nil, start_conference_on_enter: nil, end_conference_on_exit: nil, wait_url: nil, wait_method: nil, max_participants: nil, record: nil, region: nil, coach: nil, trim: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, event_callback_url: nil, jitter_buffer_size: nil, participant_label: nil, **keyword_args)
983
+ append(Conference.new(name, muted: muted, beep: beep, start_conference_on_enter: start_conference_on_enter, end_conference_on_exit: end_conference_on_exit, wait_url: wait_url, wait_method: wait_method, max_participants: max_participants, record: record, region: region, coach: coach, trim: trim, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, recording_status_callback_event: recording_status_callback_event, event_callback_url: event_callback_url, jitter_buffer_size: jitter_buffer_size, participant_label: participant_label, **keyword_args))
430
984
  end
431
985
 
432
986
  ##
@@ -438,9 +992,10 @@ module Twilio
438
992
  # status_callback_event:: Events to call status callback
439
993
  # status_callback:: Status callback URL
440
994
  # status_callback_method:: Status callback URL method
995
+ # byoc:: BYOC trunk SID (Beta)
441
996
  # keyword_args:: additional attributes
442
- def number(phone_number, send_digits: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
443
- append(Number.new(phone_number, send_digits: send_digits, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args))
997
+ def number(phone_number, send_digits: nil, url: nil, method: nil, status_callback_event: nil, status_callback: nil, status_callback_method: nil, byoc: nil, **keyword_args)
998
+ append(Number.new(phone_number, send_digits: send_digits, url: url, method: method, status_callback_event: status_callback_event, status_callback: status_callback, status_callback_method: status_callback_method, byoc: byoc, **keyword_args))
444
999
  end
445
1000
 
446
1001
  ##
@@ -526,9 +1081,125 @@ module Twilio
526
1081
  ##
527
1082
  # <Client> TwiML Noun
528
1083
  class Client < TwiML
529
- def initialize(name, **keyword_args)
1084
+ def initialize(identity: nil, **keyword_args)
530
1085
  super(**keyword_args)
531
1086
  @name = 'Client'
1087
+ @value = identity unless identity.nil?
1088
+ yield(self) if block_given?
1089
+ end
1090
+
1091
+ ##
1092
+ # Create a new <Identity> element
1093
+ # client_identity:: Identity of the client to dial
1094
+ # keyword_args:: additional attributes
1095
+ def identity(client_identity, **keyword_args)
1096
+ append(Identity.new(client_identity, **keyword_args))
1097
+ end
1098
+
1099
+ ##
1100
+ # Create a new <Parameter> element
1101
+ # name:: The name of the custom parameter
1102
+ # value:: The value of the custom parameter
1103
+ # keyword_args:: additional attributes
1104
+ def parameter(name: nil, value: nil, **keyword_args)
1105
+ append(Parameter.new(name: name, value: value, **keyword_args))
1106
+ end
1107
+ end
1108
+
1109
+ ##
1110
+ # <Identity> TwiML Noun
1111
+ class Identity < TwiML
1112
+ def initialize(client_identity, **keyword_args)
1113
+ super(**keyword_args)
1114
+ @name = 'Identity'
1115
+ @value = client_identity
1116
+ yield(self) if block_given?
1117
+ end
1118
+ end
1119
+
1120
+ ##
1121
+ # <Connect> TwiML Verb
1122
+ class Connect < TwiML
1123
+ def initialize(**keyword_args)
1124
+ super(**keyword_args)
1125
+ @name = 'Connect'
1126
+
1127
+ yield(self) if block_given?
1128
+ end
1129
+
1130
+ ##
1131
+ # Create a new <Room> element
1132
+ # name:: Room name
1133
+ # participant_identity:: Participant identity when connecting to the Room
1134
+ # keyword_args:: additional attributes
1135
+ def room(name, participant_identity: nil, **keyword_args)
1136
+ append(Room.new(name, participant_identity: participant_identity, **keyword_args))
1137
+ end
1138
+
1139
+ ##
1140
+ # Create a new <Autopilot> element
1141
+ # name:: Autopilot assistant sid or unique name
1142
+ # keyword_args:: additional attributes
1143
+ def autopilot(name, **keyword_args)
1144
+ append(Autopilot.new(name, **keyword_args))
1145
+ end
1146
+
1147
+ ##
1148
+ # Create a new <Stream> element
1149
+ # name:: Friendly name given to the Stream
1150
+ # connector_name:: Unique name for Stream Connector
1151
+ # url:: URL of the remote service where the Stream is routed
1152
+ # track:: Track to be streamed to remote service
1153
+ # status_callback:: Status Callback URL
1154
+ # status_callback_method:: Status Callback URL method
1155
+ # keyword_args:: additional attributes
1156
+ def stream(name: nil, connector_name: nil, url: nil, track: nil, status_callback: nil, status_callback_method: nil, **keyword_args)
1157
+ stream = Stream.new(name: name, connector_name: connector_name, url: url, track: track, status_callback: status_callback, status_callback_method: status_callback_method, **keyword_args)
1158
+
1159
+ yield(stream) if block_given?
1160
+ append(stream)
1161
+ end
1162
+
1163
+ ##
1164
+ # Create a new <VirtualAgent> element
1165
+ # connector_name:: Defines the conversation profile Dialogflow needs to use
1166
+ # language:: Language to be used by Dialogflow to transcribe speech
1167
+ # sentiment_analysis:: Whether sentiment analysis needs to be enabled or not
1168
+ # status_callback:: URL to post status callbacks from Twilio
1169
+ # keyword_args:: additional attributes
1170
+ def virtual_agent(connector_name: nil, language: nil, sentiment_analysis: nil, status_callback: nil, **keyword_args)
1171
+ append(VirtualAgent.new(connector_name: connector_name, language: language, sentiment_analysis: sentiment_analysis, status_callback: status_callback, **keyword_args))
1172
+ end
1173
+ end
1174
+
1175
+ ##
1176
+ # <VirtualAgent> TwiML Noun
1177
+ class VirtualAgent < TwiML
1178
+ def initialize(**keyword_args)
1179
+ super(**keyword_args)
1180
+ @name = 'VirtualAgent'
1181
+
1182
+ yield(self) if block_given?
1183
+ end
1184
+ end
1185
+
1186
+ ##
1187
+ # <Autopilot> TwiML Noun
1188
+ class Autopilot < TwiML
1189
+ def initialize(name, **keyword_args)
1190
+ super(**keyword_args)
1191
+ @name = 'Autopilot'
1192
+ @value = name
1193
+ yield(self) if block_given?
1194
+ end
1195
+ end
1196
+
1197
+ ##
1198
+ # <Room> TwiML Noun
1199
+ class Room < TwiML
1200
+ def initialize(name, **keyword_args)
1201
+ super(**keyword_args)
1202
+ @name = 'Room'
532
1203
  @value = name
533
1204
  yield(self) if block_given?
534
1205
  end