twilio-ruby 5.45.0 → 5.60.0

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 (691) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop_todo.yml +7 -7
  4. data/.travis.yml +41 -28
  5. data/CHANGES.md +456 -0
  6. data/Gemfile +1 -0
  7. data/LICENSE +1 -1
  8. data/README.md +29 -6
  9. data/examples/examples.rb +1 -1
  10. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +0 -0
  11. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +0 -0
  12. data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  13. data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  14. data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  15. data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
  16. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +0 -0
  17. data/lib/twilio-ruby/http/http_client.rb +15 -3
  18. data/lib/twilio-ruby/http.rb +5 -0
  19. data/lib/twilio-ruby/jwt/access_token.rb +13 -0
  20. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +1 -1
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +4 -4
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +40 -40
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +5 -5
  24. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +8 -8
  25. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +667 -0
  26. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +57 -16
  27. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +23 -19
  28. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
  29. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +3 -3
  30. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +11 -4
  31. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +11 -4
  32. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +11 -4
  33. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +17 -10
  34. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +7 -7
  35. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  36. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  37. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +6 -3
  38. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +1 -1
  39. data/lib/twilio-ruby/rest/api/v2010.rb +5 -4
  40. data/lib/twilio-ruby/rest/api.rb +1 -1
  41. data/lib/twilio-ruby/rest/autopilot/v1.rb +5 -4
  42. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +7 -12
  43. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +20 -10
  44. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +20 -12
  45. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +7 -12
  46. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +5 -11
  47. data/lib/twilio-ruby/rest/bulkexports/v1.rb +14 -10
  48. data/lib/twilio-ruby/rest/bulkexports.rb +4 -2
  49. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +3 -3
  50. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +3 -3
  51. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +6 -6
  52. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +9 -9
  53. data/lib/twilio-ruby/rest/chat/v1/service.rb +5 -5
  54. data/lib/twilio-ruby/rest/chat/v1.rb +10 -8
  55. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +7 -7
  56. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +3 -3
  57. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +3 -3
  58. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +27 -24
  59. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +6 -6
  60. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +9 -9
  61. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +10 -10
  62. data/lib/twilio-ruby/rest/chat/v2/service.rb +5 -5
  63. data/lib/twilio-ruby/rest/chat/v2.rb +10 -8
  64. data/lib/twilio-ruby/rest/client.rb +22 -1
  65. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +9 -9
  66. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +13 -6
  67. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +32 -2
  68. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +9 -9
  69. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +7 -0
  70. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  71. data/lib/twilio-ruby/rest/conversations/v1/role.rb +9 -9
  72. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +7 -7
  73. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +18 -2
  74. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +17 -2
  75. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +13 -6
  76. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +32 -2
  77. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +9 -9
  78. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +7 -0
  79. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  80. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +9 -9
  81. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  82. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +52 -1
  83. data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
  84. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  85. data/lib/twilio-ruby/rest/conversations/v1/user.rb +43 -1
  86. data/lib/twilio-ruby/rest/conversations/v1.rb +32 -20
  87. data/lib/twilio-ruby/rest/conversations.rb +6 -0
  88. data/lib/twilio-ruby/rest/events/v1/event_type.rb +16 -9
  89. data/lib/twilio-ruby/rest/events/v1/schema/{schema_version.rb → version.rb} +41 -41
  90. data/lib/twilio-ruby/rest/events/v1/schema.rb +16 -16
  91. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +3 -3
  92. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +3 -3
  93. data/lib/twilio-ruby/rest/events/v1/sink.rb +49 -11
  94. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +139 -9
  95. data/lib/twilio-ruby/rest/events/v1/subscription.rb +15 -8
  96. data/lib/twilio-ruby/rest/events/v1.rb +20 -16
  97. data/lib/twilio-ruby/rest/fax/v1.rb +5 -4
  98. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +5 -5
  99. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +25 -4
  100. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +101 -83
  101. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +2 -2
  102. data/lib/twilio-ruby/rest/flex_api/v1.rb +16 -13
  103. data/lib/twilio-ruby/rest/flex_api.rb +1 -1
  104. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +233 -0
  105. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  106. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  107. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +8 -9
  108. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  109. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +22 -22
  110. data/lib/twilio-ruby/rest/insights/v1/room.rb +55 -43
  111. data/lib/twilio-ruby/rest/insights/v1.rb +18 -9
  112. data/lib/twilio-ruby/rest/insights.rb +7 -1
  113. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +3 -3
  114. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +3 -3
  115. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +3 -3
  116. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +4 -4
  117. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +3 -3
  118. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +10 -8
  119. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +7 -7
  120. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +3 -3
  121. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +3 -3
  122. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +6 -6
  123. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +3 -3
  124. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +4 -4
  125. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +4 -4
  126. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +3 -3
  127. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +10 -8
  128. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +16 -16
  129. data/lib/twilio-ruby/rest/lookups/v1.rb +5 -4
  130. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +384 -0
  131. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +221 -0
  132. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +390 -0
  133. data/lib/twilio-ruby/rest/media/v1.rb +60 -0
  134. data/lib/twilio-ruby/rest/media.rb +56 -0
  135. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +272 -0
  136. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +424 -0
  137. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  138. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +1 -1
  139. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +1 -1
  140. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +1 -1
  141. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +433 -0
  142. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +129 -0
  143. data/lib/twilio-ruby/rest/messaging/v1/service.rb +144 -26
  144. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  145. data/lib/twilio-ruby/rest/messaging/v1.rb +35 -4
  146. data/lib/twilio-ruby/rest/messaging.rb +20 -0
  147. data/lib/twilio-ruby/rest/monitor/v1.rb +10 -8
  148. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +16 -15
  149. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +18 -18
  150. data/lib/twilio-ruby/rest/notify/v1.rb +10 -8
  151. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +188 -0
  152. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +1 -1
  153. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +188 -0
  154. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +59 -14
  155. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +1 -1
  156. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +1 -1
  157. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +7 -4
  158. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +5 -3
  159. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +5 -3
  160. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +7 -4
  161. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +5 -3
  162. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +14 -10
  163. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +5 -4
  164. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +2 -2
  165. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +13 -13
  166. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +8 -8
  167. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +10 -8
  168. data/lib/twilio-ruby/rest/preview/marketplace.rb +10 -8
  169. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +4 -8
  170. data/lib/twilio-ruby/rest/preview/sync.rb +5 -4
  171. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +5 -4
  172. data/lib/twilio-ruby/rest/preview/understand.rb +5 -4
  173. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +2 -2
  174. data/lib/twilio-ruby/rest/preview/wireless.rb +15 -12
  175. data/lib/twilio-ruby/rest/preview.rb +4 -2
  176. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +2 -2
  177. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +1 -1
  178. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +2 -2
  179. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  180. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  181. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +2 -2
  182. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +1 -1
  183. data/lib/twilio-ruby/rest/pricing/v2.rb +37 -0
  184. data/lib/twilio-ruby/rest/pricing.rb +19 -0
  185. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +1 -1
  186. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +1 -1
  187. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +1 -1
  188. data/lib/twilio-ruby/rest/proxy/v1.rb +5 -4
  189. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +17 -7
  190. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +1 -1
  191. data/lib/twilio-ruby/rest/serverless/v1/service.rb +7 -0
  192. data/lib/twilio-ruby/rest/serverless/v1.rb +5 -4
  193. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +1 -1
  194. data/lib/twilio-ruby/rest/studio/v1.rb +5 -4
  195. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +0 -8
  196. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +0 -8
  197. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +0 -8
  198. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +1 -9
  199. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +2 -10
  200. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +10 -16
  201. data/lib/twilio-ruby/rest/studio/v2/flow.rb +6 -14
  202. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +6 -11
  203. data/lib/twilio-ruby/rest/studio/v2.rb +5 -4
  204. data/lib/twilio-ruby/rest/supersim/v1/command.rb +4 -4
  205. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +86 -13
  206. data/lib/twilio-ruby/rest/supersim/v1/network.rb +5 -5
  207. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +5 -5
  208. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +6 -6
  209. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  210. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +49 -4
  211. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  212. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +3 -3
  213. data/lib/twilio-ruby/rest/supersim/v1.rb +41 -20
  214. data/lib/twilio-ruby/rest/supersim.rb +9 -0
  215. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +0 -8
  216. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +25 -52
  217. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +46 -76
  218. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +0 -8
  219. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +18 -40
  220. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +47 -79
  221. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +1 -9
  222. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +18 -40
  223. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +1 -7
  224. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +14 -38
  225. data/lib/twilio-ruby/rest/sync/v1/service.rb +0 -8
  226. data/lib/twilio-ruby/rest/sync/v1.rb +5 -4
  227. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
  228. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +17 -13
  229. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +48 -24
  230. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +1 -1
  231. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +17 -13
  232. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +1 -1
  233. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +1 -1
  234. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +23 -11
  235. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +1 -1
  236. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +37 -28
  237. data/lib/twilio-ruby/rest/taskrouter/v1.rb +5 -4
  238. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +20 -4
  239. data/lib/twilio-ruby/rest/trunking/v1.rb +5 -4
  240. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  241. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  242. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  243. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  244. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  245. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  246. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  247. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  248. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  249. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  250. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  251. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  252. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  253. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  254. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  255. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +205 -0
  256. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +91 -18
  257. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +47 -56
  258. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +299 -0
  259. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +31 -3
  260. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +8 -6
  261. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +34 -15
  262. data/lib/twilio-ruby/rest/verify/v2/service.rb +61 -3
  263. data/lib/twilio-ruby/rest/verify/v2/template.rb +206 -0
  264. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +329 -0
  265. data/lib/twilio-ruby/rest/verify/v2.rb +33 -8
  266. data/lib/twilio-ruby/rest/verify.rb +15 -0
  267. data/lib/twilio-ruby/rest/video/v1/composition.rb +16 -23
  268. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +26 -34
  269. data/lib/twilio-ruby/rest/video/v1/recording.rb +6 -6
  270. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +1 -1
  271. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +1 -7
  272. data/lib/twilio-ruby/rest/video/v1/room.rb +25 -4
  273. data/lib/twilio-ruby/rest/video/v1.rb +20 -16
  274. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +1 -1
  275. data/lib/twilio-ruby/rest/voice/v1.rb +20 -16
  276. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +4 -4
  277. data/lib/twilio-ruby/rest/wireless/v1.rb +15 -12
  278. data/lib/twilio-ruby/rest.rb +13 -0
  279. data/lib/twilio-ruby/twiml/voice_response.rb +39 -8
  280. data/lib/twilio-ruby/version.rb +1 -1
  281. data/lib/twilio-ruby.rb +5 -15
  282. data/sonar-project.properties +13 -0
  283. data/twilio-ruby.gemspec +1 -1
  284. metadata +60 -826
  285. data/spec/framework/request_spec.rb +0 -36
  286. data/spec/framework/serialize_spec.rb +0 -80
  287. data/spec/framework/version_spec.rb +0 -219
  288. data/spec/holodeck/holodeck.rb +0 -66
  289. data/spec/holodeck/hologram.rb +0 -4
  290. data/spec/http/http_client_spec.rb +0 -122
  291. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +0 -44
  292. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -222
  293. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -222
  294. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  295. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +0 -69
  296. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -106
  297. data/spec/integration/api/v2010/account/address_spec.rb +0 -269
  298. data/spec/integration/api/v2010/account/application_spec.rb +0 -274
  299. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -137
  300. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -102
  301. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -102
  302. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -101
  303. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -102
  304. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -102
  305. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -101
  306. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -102
  307. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -128
  308. data/spec/integration/api/v2010/account/balance_spec.rb +0 -44
  309. data/spec/integration/api/v2010/account/call/event_spec.rb +0 -102
  310. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -138
  311. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -149
  312. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -143
  313. data/spec/integration/api/v2010/account/call/payment_spec.rb +0 -135
  314. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  315. data/spec/integration/api/v2010/account/call_spec.rb +0 -660
  316. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -768
  317. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -234
  318. data/spec/integration/api/v2010/account/conference_spec.rb +0 -458
  319. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -197
  320. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
  321. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -220
  322. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -189
  323. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -189
  324. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -189
  325. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -370
  326. data/spec/integration/api/v2010/account/key_spec.rb +0 -176
  327. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -49
  328. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -161
  329. data/spec/integration/api/v2010/account/message_spec.rb +0 -507
  330. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -46
  331. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -46
  332. data/spec/integration/api/v2010/account/notification_spec.rb +0 -138
  333. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -185
  334. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -208
  335. data/spec/integration/api/v2010/account/queue_spec.rb +0 -244
  336. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -174
  337. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -165
  338. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -173
  339. data/spec/integration/api/v2010/account/recording_spec.rb +0 -184
  340. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -179
  341. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -176
  342. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -252
  343. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -241
  344. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -217
  345. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -217
  346. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  347. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -217
  348. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  349. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  350. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -207
  351. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -217
  352. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -303
  353. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -254
  354. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -251
  355. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  356. data/spec/integration/api/v2010/account/token_spec.rb +0 -71
  357. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -166
  358. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
  359. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
  360. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
  361. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
  362. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
  363. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
  364. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
  365. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
  366. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
  367. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -281
  368. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  369. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  370. data/spec/integration/api/v2010/account_spec.rb +0 -327
  371. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -79
  372. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -46
  373. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -207
  374. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -242
  375. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -236
  376. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -290
  377. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -79
  378. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -204
  379. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -249
  380. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -85
  381. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -49
  382. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -258
  383. data/spec/integration/autopilot/v1/assistant/webhook_spec.rb +0 -242
  384. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -277
  385. data/spec/integration/autopilot/v1/restore_assistant_spec.rb +0 -53
  386. data/spec/integration/bulkexports/v1/export/day_spec.rb +0 -115
  387. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +0 -129
  388. data/spec/integration/bulkexports/v1/export/job_spec.rb +0 -78
  389. data/spec/integration/bulkexports/v1/export_configuration_spec.rb +0 -77
  390. data/spec/integration/bulkexports/v1/export_spec.rb +0 -44
  391. data/spec/integration/chat/v1/credential_spec.rb +0 -219
  392. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -207
  393. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -280
  394. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -290
  395. data/spec/integration/chat/v1/service/channel_spec.rb +0 -272
  396. data/spec/integration/chat/v1/service/role_spec.rb +0 -260
  397. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -93
  398. data/spec/integration/chat/v1/service/user_spec.rb +0 -262
  399. data/spec/integration/chat/v1/service_spec.rb +0 -295
  400. data/spec/integration/chat/v2/credential_spec.rb +0 -219
  401. data/spec/integration/chat/v2/service/binding_spec.rb +0 -174
  402. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -207
  403. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -263
  404. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -406
  405. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -303
  406. data/spec/integration/chat/v2/service/channel_spec.rb +0 -282
  407. data/spec/integration/chat/v2/service/role_spec.rb +0 -260
  408. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -177
  409. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -247
  410. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  411. data/spec/integration/chat/v2/service_spec.rb +0 -350
  412. data/spec/integration/conversations/v1/configuration/webhook_spec.rb +0 -90
  413. data/spec/integration/conversations/v1/configuration_spec.rb +0 -87
  414. data/spec/integration/conversations/v1/conversation/message/delivery_receipt_spec.rb +0 -136
  415. data/spec/integration/conversations/v1/conversation/message_spec.rb +0 -409
  416. data/spec/integration/conversations/v1/conversation/participant_spec.rb +0 -382
  417. data/spec/integration/conversations/v1/conversation/webhook_spec.rb +0 -282
  418. data/spec/integration/conversations/v1/conversation_spec.rb +0 -278
  419. data/spec/integration/conversations/v1/credential_spec.rb +0 -219
  420. data/spec/integration/conversations/v1/role_spec.rb +0 -249
  421. data/spec/integration/conversations/v1/service/binding_spec.rb +0 -166
  422. data/spec/integration/conversations/v1/service/configuration/notification_spec.rb +0 -115
  423. data/spec/integration/conversations/v1/service/configuration_spec.rb +0 -87
  424. data/spec/integration/conversations/v1/service/conversation/message/delivery_receipt_spec.rb +0 -144
  425. data/spec/integration/conversations/v1/service/conversation/message_spec.rb +0 -429
  426. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +0 -407
  427. data/spec/integration/conversations/v1/service/conversation/webhook_spec.rb +0 -299
  428. data/spec/integration/conversations/v1/service/conversation_spec.rb +0 -289
  429. data/spec/integration/conversations/v1/service/role_spec.rb +0 -260
  430. data/spec/integration/conversations/v1/service/user_spec.rb +0 -236
  431. data/spec/integration/conversations/v1/service_spec.rb +0 -174
  432. data/spec/integration/conversations/v1/user_spec.rb +0 -226
  433. data/spec/integration/events/v1/event_type_spec.rb +0 -133
  434. data/spec/integration/events/v1/schema/schema_version_spec.rb +0 -126
  435. data/spec/integration/events/v1/schema_spec.rb +0 -46
  436. data/spec/integration/events/v1/sink/sink_test_spec.rb +0 -42
  437. data/spec/integration/events/v1/sink/sink_validate_spec.rb +0 -44
  438. data/spec/integration/events/v1/sink_spec.rb +0 -217
  439. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +0 -91
  440. data/spec/integration/events/v1/subscription_spec.rb +0 -292
  441. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -125
  442. data/spec/integration/fax/v1/fax_spec.rb +0 -267
  443. data/spec/integration/flex_api/v1/channel_spec.rb +0 -188
  444. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -554
  445. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -259
  446. data/spec/integration/flex_api/v1/web_channel_spec.rb +0 -216
  447. data/spec/integration/insights/v1/call/event_spec.rb +0 -166
  448. data/spec/integration/insights/v1/call/metric_spec.rb +0 -154
  449. data/spec/integration/insights/v1/call/summary_spec.rb +0 -63
  450. data/spec/integration/insights/v1/call_spec.rb +0 -46
  451. data/spec/integration/insights/v1/room/participant_spec.rb +0 -147
  452. data/spec/integration/insights/v1/room_spec.rb +0 -164
  453. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -219
  454. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -207
  455. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -280
  456. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -290
  457. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -272
  458. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -260
  459. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -93
  460. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -262
  461. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -295
  462. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -219
  463. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -174
  464. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -207
  465. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -263
  466. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -406
  467. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -303
  468. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -282
  469. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -260
  470. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -177
  471. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -247
  472. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  473. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -350
  474. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -336
  475. data/spec/integration/messaging/v1/deactivation_spec.rb +0 -40
  476. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -173
  477. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -198
  478. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -176
  479. data/spec/integration/messaging/v1/service_spec.rb +0 -267
  480. data/spec/integration/monitor/v1/alert_spec.rb +0 -138
  481. data/spec/integration/monitor/v1/event_spec.rb +0 -148
  482. data/spec/integration/notify/v1/credential_spec.rb +0 -219
  483. data/spec/integration/notify/v1/service/binding_spec.rb +0 -222
  484. data/spec/integration/notify/v1/service/notification_spec.rb +0 -98
  485. data/spec/integration/notify/v1/service_spec.rb +0 -289
  486. data/spec/integration/numbers/v2/regulatory_compliance/bundle/evaluation_spec.rb +0 -620
  487. data/spec/integration/numbers/v2/regulatory_compliance/bundle/item_assignment_spec.rb +0 -195
  488. data/spec/integration/numbers/v2/regulatory_compliance/bundle_spec.rb +0 -258
  489. data/spec/integration/numbers/v2/regulatory_compliance/end_user_spec.rb +0 -238
  490. data/spec/integration/numbers/v2/regulatory_compliance/end_user_type_spec.rb +0 -141
  491. data/spec/integration/numbers/v2/regulatory_compliance/regulation_spec.rb +0 -181
  492. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_spec.rb +0 -250
  493. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_type_spec.rb +0 -131
  494. data/spec/integration/numbers/v2/regulatory_compliance_spec.rb +0 -12
  495. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -115
  496. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +0 -129
  497. data/spec/integration/preview/bulk_exports/export/job_spec.rb +0 -78
  498. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -77
  499. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -44
  500. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -234
  501. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -228
  502. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -244
  503. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -232
  504. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -241
  505. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -110
  506. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -224
  507. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -389
  508. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
  509. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
  510. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -162
  511. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -250
  512. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -201
  513. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  514. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -255
  515. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -201
  516. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -205
  517. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -255
  518. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -201
  519. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -205
  520. data/spec/integration/preview/sync/service_spec.rb +0 -241
  521. data/spec/integration/preview/trusted_comms/branded_channel/channel_spec.rb +0 -50
  522. data/spec/integration/preview/trusted_comms/branded_channel_spec.rb +0 -47
  523. data/spec/integration/preview/trusted_comms/brands_information_spec.rb +0 -45
  524. data/spec/integration/preview/trusted_comms/cps_spec.rb +0 -44
  525. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -58
  526. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -79
  527. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -79
  528. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -46
  529. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -207
  530. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -242
  531. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -236
  532. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -302
  533. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -79
  534. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -204
  535. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -249
  536. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -85
  537. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -49
  538. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -258
  539. data/spec/integration/preview/understand/assistant_spec.rb +0 -269
  540. data/spec/integration/preview/wireless/command_spec.rb +0 -167
  541. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -257
  542. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -50
  543. data/spec/integration/preview/wireless/sim_spec.rb +0 -207
  544. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -137
  545. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  546. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -128
  547. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  548. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -138
  549. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -55
  550. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  551. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -179
  552. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -61
  553. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  554. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -231
  555. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -133
  556. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -163
  557. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -240
  558. data/spec/integration/proxy/v1/service/session_spec.rb +0 -225
  559. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -225
  560. data/spec/integration/proxy/v1/service_spec.rb +0 -214
  561. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -93
  562. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -202
  563. data/spec/integration/serverless/v1/service/build/build_status_spec.rb +0 -48
  564. data/spec/integration/serverless/v1/service/build_spec.rb +0 -214
  565. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -133
  566. data/spec/integration/serverless/v1/service/environment/log_spec.rb +0 -97
  567. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -207
  568. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -170
  569. data/spec/integration/serverless/v1/service/function/function_version/function_version_content_spec.rb +0 -51
  570. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -96
  571. data/spec/integration/serverless/v1/service/function_spec.rb +0 -202
  572. data/spec/integration/serverless/v1/service_spec.rb +0 -205
  573. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -50
  574. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -53
  575. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -99
  576. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -168
  577. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -50
  578. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -53
  579. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -100
  580. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -214
  581. data/spec/integration/studio/v1/flow_spec.rb +0 -114
  582. data/spec/integration/studio/v2/flow/execution/execution_context_spec.rb +0 -50
  583. data/spec/integration/studio/v2/flow/execution/execution_step/execution_step_context_spec.rb +0 -53
  584. data/spec/integration/studio/v2/flow/execution/execution_step_spec.rb +0 -100
  585. data/spec/integration/studio/v2/flow/execution_spec.rb +0 -211
  586. data/spec/integration/studio/v2/flow/flow_revision_spec.rb +0 -110
  587. data/spec/integration/studio/v2/flow/test_user_spec.rb +0 -85
  588. data/spec/integration/studio/v2/flow_spec.rb +0 -251
  589. data/spec/integration/studio/v2/flow_validate_spec.rb +0 -46
  590. data/spec/integration/supersim/v1/command_spec.rb +0 -184
  591. data/spec/integration/supersim/v1/fleet_spec.rb +0 -214
  592. data/spec/integration/supersim/v1/network_access_profile/network_access_profile_network_spec.rb +0 -176
  593. data/spec/integration/supersim/v1/network_access_profile_spec.rb +0 -219
  594. data/spec/integration/supersim/v1/network_spec.rb +0 -137
  595. data/spec/integration/supersim/v1/sim_spec.rb +0 -323
  596. data/spec/integration/supersim/v1/usage_record_spec.rb +0 -647
  597. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -201
  598. data/spec/integration/sync/v1/service/document_spec.rb +0 -256
  599. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  600. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -201
  601. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -252
  602. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  603. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -201
  604. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -252
  605. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  606. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -244
  607. data/spec/integration/sync/v1/service_spec.rb +0 -261
  608. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -232
  609. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -163
  610. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -222
  611. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -312
  612. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -101
  613. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -83
  614. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -107
  615. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -145
  616. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -290
  617. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -325
  618. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -191
  619. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -185
  620. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -91
  621. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -88
  622. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -69
  623. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -115
  624. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -290
  625. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -96
  626. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -57
  627. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -70
  628. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -266
  629. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -93
  630. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -72
  631. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -104
  632. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -291
  633. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -189
  634. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -189
  635. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -248
  636. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -264
  637. data/spec/integration/trunking/v1/trunk/recording_spec.rb +0 -75
  638. data/spec/integration/trunking/v1/trunk_spec.rb +0 -281
  639. data/spec/integration/verify/v2/form_spec.rb +0 -47
  640. data/spec/integration/verify/v2/service/access_token_spec.rb +0 -44
  641. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +0 -288
  642. data/spec/integration/verify/v2/service/entity/factor_spec.rb +0 -277
  643. data/spec/integration/verify/v2/service/entity_spec.rb +0 -201
  644. data/spec/integration/verify/v2/service/messaging_configuration_spec.rb +0 -228
  645. data/spec/integration/verify/v2/service/rate_limit/bucket_spec.rb +0 -245
  646. data/spec/integration/verify/v2/service/rate_limit_spec.rb +0 -217
  647. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -80
  648. data/spec/integration/verify/v2/service/verification_spec.rb +0 -318
  649. data/spec/integration/verify/v2/service/webhook_spec.rb +0 -258
  650. data/spec/integration/verify/v2/service_spec.rb +0 -279
  651. data/spec/integration/video/v1/composition_hook_spec.rb +0 -407
  652. data/spec/integration/video/v1/composition_settings_spec.rb +0 -85
  653. data/spec/integration/video/v1/composition_spec.rb +0 -347
  654. data/spec/integration/video/v1/recording_settings_spec.rb +0 -85
  655. data/spec/integration/video/v1/recording_spec.rb +0 -176
  656. data/spec/integration/video/v1/room/recording_spec.rb +0 -185
  657. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -94
  658. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -103
  659. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -95
  660. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -187
  661. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +0 -89
  662. data/spec/integration/video/v1/room_spec.rb +0 -296
  663. data/spec/integration/voice/v1/byoc_trunk_spec.rb +0 -245
  664. data/spec/integration/voice/v1/connection_policy/connection_policy_target_spec.rb +0 -242
  665. data/spec/integration/voice/v1/connection_policy_spec.rb +0 -221
  666. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  667. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -60
  668. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -110
  669. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -75
  670. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  671. data/spec/integration/voice/v1/ip_record_spec.rb +0 -219
  672. data/spec/integration/voice/v1/source_ip_mapping_spec.rb +0 -216
  673. data/spec/integration/wireless/v1/command_spec.rb +0 -286
  674. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -277
  675. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -88
  676. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -114
  677. data/spec/integration/wireless/v1/sim_spec.rb +0 -325
  678. data/spec/integration/wireless/v1/usage_record_spec.rb +0 -110
  679. data/spec/jwt/access_token_spec.rb +0 -159
  680. data/spec/jwt/client_capability_spec.rb +0 -104
  681. data/spec/jwt/task_router_spec.rb +0 -172
  682. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  683. data/spec/rest/client_spec.rb +0 -255
  684. data/spec/security/request_validator_spec.rb +0 -125
  685. data/spec/spec_helper.rb +0 -38
  686. data/spec/support/fakeweb.rb +0 -2
  687. data/spec/twilio_spec.rb +0 -17
  688. data/spec/twiml/messaging_response_spec.rb +0 -235
  689. data/spec/twiml/voice_response_spec.rb +0 -847
  690. data/spec/util/configuration_spec.rb +0 -33
  691. data/spec/util/url_encode_spec.rb +0 -12
@@ -1,847 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Twilio::TwiML::VoiceResponse do
4
- context 'Testing Response' do
5
- it 'should allow empty response' do
6
- expected_doc = parse <<-XML
7
- <Response/>
8
- XML
9
- response = Twilio::TwiML::VoiceResponse.new.to_s
10
- doc = parse(response)
11
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
12
- end
13
-
14
- it 'should allow using to_xml instead of to_s' do
15
- expected_doc = parse <<-XML
16
- <Response/>
17
- XML
18
- response = Twilio::TwiML::VoiceResponse.new.to_xml
19
- doc = parse(response)
20
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
21
- end
22
-
23
- it 'should have an xml declaration by default' do
24
- twiml = Twilio::TwiML::VoiceResponse.new.to_xml
25
- expect(twiml).to match(/\A<\?xml version="1.0" encoding="UTF-8"\?>/)
26
- end
27
-
28
- it 'should allow no xml_declaration' do
29
- twiml = Twilio::TwiML::VoiceResponse.new.to_xml(false)
30
- expect(twiml).not_to match(/\A<\?xml version="1.0" encoding="UTF-8"\?>/)
31
- end
32
-
33
- it 'should allow comments' do
34
- twiml = Twilio::TwiML::VoiceResponse.new
35
- twiml.comment 'This is awesome'
36
- expect(twiml.to_xml).to match(/<!--This is awesome-->/)
37
- end
38
-
39
- it 'should allow text nodes' do
40
- expected_doc = parse <<-XML
41
- <Response>Look no tags</Response>
42
- XML
43
- twiml = Twilio::TwiML::VoiceResponse.new
44
- twiml.add_text 'Look no tags'
45
- expect(parse(twiml)).to be_equivalent_to(expected_doc).respecting_element_order
46
- end
47
-
48
- it 'should allow generic child nodes' do
49
- expected_doc = parse <<-XML
50
- <Response>
51
- <alexa omnipresent="true">
52
- <purchase>Kindle</purchase>
53
- </alexa>
54
- </Response>
55
- XML
56
-
57
- twiml = Twilio::TwiML::VoiceResponse.new
58
- twiml.add_child('alexa', omnipresent: 'true') do |alexa|
59
- alexa.add_child('purchase', 'Kindle')
60
- end
61
-
62
- expect(parse(twiml)).to be_equivalent_to(expected_doc).respecting_element_order
63
- end
64
- it 'should allow populated response' do
65
- expected_doc = parse <<-XML
66
- <Response>
67
- <Hangup/>
68
- <Leave/>
69
- <Sms to="+11234567890" from="+10987654321">twilio sms</Sms>
70
- </Response>
71
- XML
72
- response = Twilio::TwiML::VoiceResponse.new
73
- response.hangup
74
- response.leave
75
- response.sms('twilio sms', to: '+11234567890', from: '+10987654321')
76
-
77
- doc = parse(response)
78
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
79
- end
80
-
81
- it 'should allow chaining' do
82
- expected_doc = parse <<-XML
83
- <Response>
84
- <Hangup/>
85
- <Leave/>
86
- <Sms to="+11234567890" from="+10987654321">twilio sms</Sms>
87
- </Response>
88
- XML
89
- response = Twilio::TwiML::VoiceResponse.new.hangup.leave.sms(
90
- 'twilio sms',
91
- to: '+11234567890',
92
- from: '+10987654321'
93
- )
94
-
95
- doc = parse(response)
96
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
97
- end
98
-
99
- it 'should allow nesting' do
100
- expected_doc = parse <<-XML
101
- <Response>
102
- <Hangup/>
103
- <Leave/>
104
- <Sms to="+11234567890" from="+10987654321">twilio sms</Sms>
105
- </Response>
106
- XML
107
- response = Twilio::TwiML::VoiceResponse.new do |r|
108
- r.hangup
109
- r.leave
110
- r.sms('twilio sms', to: '+11234567890', from: '+10987654321')
111
- end
112
-
113
- doc = parse(response)
114
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
115
- end
116
- end
117
-
118
- context 'Testing Say' do
119
- it 'should allow empty say' do
120
- expected_doc = parse <<-XML
121
- <Response>
122
- <Say></Say>
123
- </Response>
124
- XML
125
- response = Twilio::TwiML::VoiceResponse.new
126
- response.say(message: '')
127
-
128
- doc = parse(response)
129
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
130
- end
131
-
132
- it 'should allow populated say' do
133
- expected_doc = parse <<-XML
134
- <Response>
135
- <Say>Hello World</Say>
136
- </Response>
137
- XML
138
- response = Twilio::TwiML::VoiceResponse.new
139
- response.say(message: 'Hello World')
140
-
141
- doc = parse(response)
142
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
143
- end
144
-
145
- it 'should allow unicode say' do
146
- expected_doc = parse <<-XML
147
- <Response>
148
- <Say>nécessaire et d'autres</Say>
149
- </Response>
150
- XML
151
- response = Twilio::TwiML::VoiceResponse.new
152
- response.say(message: 'nécessaire et d\'autres')
153
-
154
- doc = parse(response)
155
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
156
- end
157
-
158
- it 'should allow looping' do
159
- expected_doc = parse <<-XML
160
- <Response>
161
- <Say loop="3">Hello Monkey</Say>
162
- </Response>
163
- XML
164
- response = Twilio::TwiML::VoiceResponse.new
165
- response.say(message: 'Hello Monkey', loop: 3)
166
-
167
- doc = parse(response)
168
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
169
- end
170
-
171
- it 'should allow languages' do
172
- expected_doc = parse <<-XML
173
- <Response>
174
- <Say language="en-gb">Hello Monkey</Say>
175
- </Response>
176
- XML
177
- response = Twilio::TwiML::VoiceResponse.new
178
- response.say(message: 'Hello Monkey', language: 'en-gb')
179
-
180
- doc = parse(response)
181
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
182
- end
183
-
184
- it 'should allow all attributes' do
185
- expected_doc = parse <<-XML
186
- <Response>
187
- <Say loop="3" voice="man" language="fr">Hello Monkey</Say>
188
- </Response>
189
- XML
190
- response = Twilio::TwiML::VoiceResponse.new
191
- response.say(message: 'Hello Monkey', loop: 3, voice: 'man', language: 'fr')
192
-
193
- doc = parse(response)
194
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
195
- end
196
- end
197
-
198
- context 'Testing Play' do
199
- it 'should allow empty play' do
200
- expected_doc = parse <<-XML
201
- <Response>
202
- <Play></Play>
203
- </Response>
204
- XML
205
- response = Twilio::TwiML::VoiceResponse.new
206
- response.play
207
-
208
- doc = parse(response)
209
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
210
- end
211
-
212
- it 'should play hello' do
213
- expected_doc = parse <<-XML
214
- <Response>
215
- <Play>http://hellomonkey.mp3</Play>
216
- </Response>
217
- XML
218
- response = Twilio::TwiML::VoiceResponse.new
219
- response.play(url: 'http://hellomonkey.mp3')
220
- doc = parse(response)
221
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
222
- end
223
-
224
- it 'should play hello on loop' do
225
- expected_doc = parse <<-XML
226
- <Response>
227
- <Play loop="3">http://hellomonkey.mp3</Play>
228
- </Response>
229
- XML
230
- response = Twilio::TwiML::VoiceResponse.new
231
- response.play(url: 'http://hellomonkey.mp3', loop: 3)
232
-
233
- doc = parse(response)
234
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
235
- end
236
-
237
- it 'should play digits' do
238
- expected_doc = parse <<-XML
239
- <Response>
240
- <Play digits="w123"></Play>
241
- </Response>
242
- XML
243
- response = Twilio::TwiML::VoiceResponse.new
244
- response.play(digits: 'w123')
245
-
246
- doc = parse(response)
247
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
248
- end
249
- end
250
-
251
- context 'Testing Record' do
252
- it 'should allow empty record' do
253
- expected_doc = parse <<-XML
254
- <Response>
255
- <Record/>
256
- </Response>
257
- XML
258
- response = Twilio::TwiML::VoiceResponse.new
259
- response.record
260
- doc = parse(response)
261
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
262
- end
263
-
264
- it 'should allow action and method' do
265
- expected_doc = parse <<-XML
266
- <Response>
267
- <Record action="example.com" method="GET" />
268
- </Response>
269
- XML
270
- response = Twilio::TwiML::VoiceResponse.new
271
- response.record(action: 'example.com', method: 'GET')
272
- doc = parse(response)
273
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
274
- end
275
-
276
- it 'should allow max_length, finish_on_key, and timeout' do
277
- expected_doc = parse <<-XML
278
- <Response>
279
- <Record timeout="4" finishOnKey="#" maxLength="30" />
280
- </Response>
281
- XML
282
- response = Twilio::TwiML::VoiceResponse.new
283
- response.record(timeout: 4, finish_on_key: '#', max_length: 30)
284
- doc = parse(response)
285
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
286
- end
287
-
288
- it 'should allow transcribe' do
289
- expected_doc = parse <<-XML
290
- <Response>
291
- <Record transcribeCallback="example.com" />
292
- </Response>
293
- XML
294
- response = Twilio::TwiML::VoiceResponse.new
295
- response.record(transcribe_callback: 'example.com')
296
- doc = parse(response)
297
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
298
- end
299
- end
300
-
301
- context 'Testing Redirect' do
302
- it 'should allow empty redirect' do
303
- expected_doc = parse <<-XML
304
- <Response>
305
- <Redirect/>
306
- </Response>
307
- XML
308
- response = Twilio::TwiML::VoiceResponse.new
309
- response.redirect ''
310
- doc = parse(response)
311
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
312
- end
313
-
314
- it 'should allow method' do
315
- expected_doc = parse <<-XML
316
- <Response>
317
- <Redirect method="POST">example.com</Redirect>
318
- </Response>
319
- XML
320
- response = Twilio::TwiML::VoiceResponse.new
321
- response.redirect('example.com', method: 'POST')
322
- doc = parse(response)
323
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
324
- end
325
-
326
- it 'should allow method and params' do
327
- expected_doc = parse <<-XML
328
- <Response>
329
- <Redirect method="POST">example.com?id=34&amp;action=hey</Redirect>
330
- </Response>
331
- XML
332
- response = Twilio::TwiML::VoiceResponse.new
333
- response.redirect('example.com?id=34&action=hey', method: 'POST')
334
- doc = parse(response)
335
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
336
- end
337
- end
338
-
339
- context 'Testing Hangup' do
340
- it 'should allow hangup' do
341
- expected_doc = parse <<-XML
342
- <Response>
343
- <Hangup/>
344
- </Response>
345
- XML
346
- response = Twilio::TwiML::VoiceResponse.new
347
- response.hangup
348
- doc = parse(response)
349
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
350
- end
351
-
352
- it 'should not allow content in the hangup' do
353
- response = Twilio::TwiML::VoiceResponse.new
354
- expect { response.hangup 'Goodbye' }.to raise_error(ArgumentError)
355
- end
356
- end
357
-
358
- context 'Testing Leave' do
359
- it 'should allow leave' do
360
- expected_doc = parse <<-XML
361
- <Response>
362
- <Leave/>
363
- </Response>
364
- XML
365
- response = Twilio::TwiML::VoiceResponse.new
366
- response.leave
367
- doc = parse(response)
368
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
369
- end
370
-
371
- it 'should not allow content in the leave' do
372
- response = Twilio::TwiML::VoiceResponse.new
373
- expect { response.leave 'Goodbye' }.to raise_error(ArgumentError)
374
- end
375
- end
376
-
377
- context 'Testing Reject' do
378
- it 'should reject with a default reason' do
379
- expected_doc = parse <<-XML
380
- <Response>
381
- <Reject/>
382
- </Response>
383
- XML
384
- response = Twilio::TwiML::VoiceResponse.new
385
- response.reject
386
- doc = parse(response)
387
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
388
- end
389
-
390
- it 'should not allow content in the reject' do
391
- response = Twilio::TwiML::VoiceResponse.new
392
- expect { response.reject 'Goodbye' }.to raise_error(ArgumentError)
393
- end
394
- end
395
-
396
- context 'Testing SMS' do
397
- it 'should allow empty SMS' do
398
- expected_doc = parse <<-XML
399
- <Response>
400
- <Sms/>
401
- </Response>
402
- XML
403
- response = Twilio::TwiML::VoiceResponse.new
404
- response.sms ''
405
- doc = parse(response)
406
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
407
- end
408
-
409
- it 'should allow SMS body' do
410
- expected_doc = parse <<-XML
411
- <Response>
412
- <Sms>Hello, World</Sms>
413
- </Response>
414
- XML
415
- response = Twilio::TwiML::VoiceResponse.new
416
- response.sms 'Hello, World'
417
- doc = parse(response)
418
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
419
- end
420
-
421
- it 'should allow to, from, action, and status_callback' do
422
- expected_doc = parse <<-XML
423
- <Response>
424
- <Sms to="1231231234" from="3453453456" statusCallback="example.com?id=34&amp;action=hey">Hello, World</Sms>
425
- </Response>
426
- XML
427
- response = Twilio::TwiML::VoiceResponse.new
428
- response.sms('Hello, World', to: 1_231_231_234, from: 3_453_453_456, status_callback: 'example.com?id=34&action=hey')
429
- doc = parse(response)
430
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
431
- end
432
-
433
- it 'should allow action and method' do
434
- expected_doc = parse <<-XML
435
- <Response>
436
- <Sms method="POST" action="example.com?id=34&amp;action=hey">Hello</Sms>
437
- </Response>
438
- XML
439
- response = Twilio::TwiML::VoiceResponse.new
440
- response.sms('Hello', method: 'POST', action: 'example.com?id=34&action=hey')
441
- doc = parse(response)
442
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
443
- end
444
- end
445
-
446
- context 'Testing Conference' do
447
- it 'should allow basic conferencing' do
448
- expected_doc = parse <<-XML
449
- <Response>
450
- <Dial>
451
- <Conference beep="false" waitUrl="" startConferenceOnEnter="true" endConferenceOnExit="true">
452
- TestConferenceAttributes
453
- </Conference>
454
- </Dial>
455
- </Response>
456
- XML
457
- dial = Twilio::TwiML::Dial.new
458
- dial.conference(
459
- 'TestConferenceAttributes',
460
- beep: false,
461
- wait_url: '',
462
- start_conference_on_enter: true,
463
- end_conference_on_exit: true
464
- )
465
-
466
- response = Twilio::TwiML::VoiceResponse.new
467
- response.append(dial)
468
- doc = parse(response)
469
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
470
- end
471
-
472
- it 'should allow muted conferencing' do
473
- expected_doc = parse <<-XML
474
- <Response>
475
- <Dial>
476
- <Conference beep="false" waitUrl="" startConferenceOnEnter="true" endConferenceOnExit="true" muted="true">
477
- TestConferenceMutedAttribute
478
- </Conference>
479
- </Dial>
480
- </Response>
481
- XML
482
- dial = Twilio::TwiML::Dial.new
483
- dial.conference(
484
- 'TestConferenceMutedAttribute',
485
- beep: false,
486
- muted: true,
487
- wait_url: '',
488
- start_conference_on_enter: true,
489
- end_conference_on_exit: true
490
- )
491
-
492
- response = Twilio::TwiML::VoiceResponse.new
493
- response.append(dial)
494
- doc = parse(response)
495
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
496
- end
497
- end
498
-
499
- context 'Testing Queue' do
500
- it 'should allow queues in VoiceResponse' do
501
- expected_doc = parse <<-XML
502
- <Response>
503
- <Dial>
504
- <Queue url="" method="GET">TestQueueAttribute</Queue>
505
- </Dial>
506
- </Response>
507
- XML
508
- dial = Twilio::TwiML::Dial.new
509
- dial.queue('TestQueueAttribute', url: '', method: 'GET')
510
-
511
- response = Twilio::TwiML::VoiceResponse.new
512
- response.append(dial)
513
- doc = parse(response)
514
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
515
- end
516
- end
517
-
518
- context 'Testing Echo' do
519
- it 'should allow VoiceResponse Echo' do
520
- expected_doc = parse <<-XML
521
- <Response>
522
- <Echo/>
523
- </Response>
524
- XML
525
- response = Twilio::TwiML::VoiceResponse.new
526
- response.echo
527
- doc = parse(response)
528
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
529
- end
530
- end
531
-
532
- context 'Testing Enqueue' do
533
- it 'should allow VoiceResponse.enqueue' do
534
- expected_doc = parse <<-XML
535
- <Response>
536
- <Enqueue action="act" method="GET" waitUrl="wait" waitUrlMethod="POST">TestEnqueueAttribute</Enqueue>
537
- </Response>
538
- XML
539
- response = Twilio::TwiML::VoiceResponse.new
540
- response.enqueue(
541
- name: 'TestEnqueueAttribute',
542
- action: 'act',
543
- method: 'GET',
544
- wait_url: 'wait',
545
- wait_url_method: 'POST'
546
- )
547
- doc = parse(response)
548
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
549
- end
550
-
551
- it 'should allow Enqueue.task and appending Enqueue' do
552
- task_json = '{"account_sid": "AC123123123"}'
553
- expected_doc = parse <<-XML
554
- <Response>
555
- <Enqueue workflowSid="123123123">
556
- <Task>#{task_json}</Task>
557
- </Enqueue>
558
- </Response>
559
- XML
560
- enqueue_elem = Twilio::TwiML::Enqueue.new(name: nil, workflow_sid: '123123123')
561
- enqueue_elem.task(task_json)
562
-
563
- response = Twilio::TwiML::VoiceResponse.new
564
- response.append(enqueue_elem)
565
- doc = parse(response)
566
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
567
- end
568
-
569
- it 'should allow Enqueue.task with a dictionary and appending Enqueue' do
570
- expected_doc = parse <<-XML
571
- <Response>
572
- <Enqueue workflowSid="123123123">
573
- <Task>{"account_sid":"AC123123123"}</Task>
574
- </Enqueue>
575
- </Response>
576
- XML
577
- enqueue_elem = Twilio::TwiML::Enqueue.new(name: nil, workflow_sid: '123123123')
578
- enqueue_elem.task(account_sid: 'AC123123123')
579
-
580
- response = Twilio::TwiML::VoiceResponse.new
581
- response.append(enqueue_elem)
582
-
583
- doc = parse(response)
584
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
585
- end
586
- end
587
-
588
- context 'Testing Dial' do
589
- it 'should allow VoiceResponse.dial' do
590
- expected_doc = parse <<-XML
591
- <Response>
592
- <Dial>1231231234</Dial>
593
- </Response>
594
- XML
595
- response = Twilio::TwiML::VoiceResponse.new
596
- response.dial(number: '1231231234')
597
- doc = parse(response)
598
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
599
- end
600
-
601
- it 'should allow Dial.sim' do
602
- expected_doc = parse <<-XML
603
- <Response>
604
- <Dial>
605
- <Sim>123123123</Sim>
606
- </Dial>
607
- </Response>
608
- XML
609
- dial = Twilio::TwiML::Dial.new
610
- dial.sim '123123123'
611
-
612
- response = Twilio::TwiML::VoiceResponse.new
613
- response.append(dial)
614
-
615
- doc = parse(response)
616
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
617
- end
618
-
619
- it 'should allow Dial.sip' do
620
- expected_doc = parse <<-XML
621
- <Response>
622
- <Dial>
623
- <Sip>foo@example.com</Sip>
624
- </Dial>
625
- </Response>
626
- XML
627
- dial = Twilio::TwiML::Dial.new
628
- dial.sip 'foo@example.com'
629
-
630
- response = Twilio::TwiML::VoiceResponse.new
631
- response.append(dial)
632
- doc = parse(response)
633
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
634
- end
635
-
636
- it 'should allow Dial.sip with username, password' do
637
- expected_doc = parse <<-XML
638
- <Response>
639
- <Dial>
640
- <Sip username="foo" password="bar">foo@example.com</Sip>
641
- </Dial>
642
- </Response>
643
- XML
644
- dial = Twilio::TwiML::Dial.new
645
- dial.sip('foo@example.com', username: 'foo', password: 'bar')
646
-
647
- response = Twilio::TwiML::VoiceResponse.new
648
- response.append(dial)
649
- doc = parse(response)
650
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
651
- end
652
-
653
- it 'should allow Dial.number' do
654
- expected_doc = parse <<-XML
655
- <Response>
656
- <Dial>
657
- <Number>1231231234</Number>
658
- </Dial>
659
- </Response>
660
- XML
661
- dial = Twilio::TwiML::Dial.new
662
- dial.number '1231231234'
663
-
664
- response = Twilio::TwiML::VoiceResponse.new
665
- response.append(dial)
666
- doc = parse(response)
667
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
668
- end
669
-
670
- it 'should allow Dial.number with params' do
671
- expected_doc = parse <<-XML
672
- <Response>
673
- <Dial>
674
- <Number statusCallback="http://example.com" statusCallbackEvent="initiated completed">1231231234</Number>
675
- </Dial>
676
- </Response>
677
- XML
678
- dial = Twilio::TwiML::Dial.new
679
- dial.number('1231231234', status_callback: 'http://example.com', status_callback_event: 'initiated completed')
680
-
681
- response = Twilio::TwiML::VoiceResponse.new
682
- response.append(dial)
683
- doc = parse(response)
684
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
685
- end
686
-
687
- it 'should allow Dial.conference' do
688
- expected_doc = parse <<-XML
689
- <Response>
690
- <Dial>
691
- <Conference>My Room</Conference>
692
- </Dial>
693
- </Response>
694
- XML
695
- dial = Twilio::TwiML::Dial.new
696
- dial.conference 'My Room'
697
-
698
- response = Twilio::TwiML::VoiceResponse.new
699
- response.append(dial)
700
- doc = parse(response)
701
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
702
- end
703
-
704
- it 'should allow Dial.queue' do
705
- expected_doc = parse <<-XML
706
- <Response>
707
- <Dial>
708
- <Queue>The Cute Queue</Queue>
709
- </Dial>
710
- </Response>
711
- XML
712
- dial = Twilio::TwiML::Dial.new
713
- dial.queue 'The Cute Queue'
714
-
715
- response = Twilio::TwiML::VoiceResponse.new
716
- response.append(dial)
717
- doc = parse(response)
718
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
719
- end
720
-
721
- it 'should allow empty Dial.client' do
722
- expected_doc = parse <<-XML
723
- <Response>
724
- <Dial>
725
- <Client></Client>
726
- </Dial>
727
- </Response>
728
- XML
729
- dial = Twilio::TwiML::Dial.new
730
- dial.client
731
-
732
- response = Twilio::TwiML::VoiceResponse.new
733
- response.append(dial)
734
- doc = parse(response)
735
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
736
- end
737
-
738
- it 'should allow populated Dial.client' do
739
- expected_doc = parse <<-XML
740
- <Response>
741
- <Dial>
742
- <Client>alice</Client>
743
- </Dial>
744
- </Response>
745
- XML
746
- dial = Twilio::TwiML::Dial.new
747
- dial.client identity: 'alice'
748
-
749
- response = Twilio::TwiML::VoiceResponse.new
750
- response.append(dial)
751
- doc = parse(response)
752
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
753
- end
754
-
755
- it 'should allow client identity and parameters' do
756
- expected_doc = parse <<-XML
757
- <Response>
758
- <Dial>
759
- <Client>
760
- <Identity>alice</Identity>
761
- <Parameter name="hello" value="world"/>
762
- </Client>
763
- </Dial>
764
- </Response>
765
- XML
766
- dial = Twilio::TwiML::Dial.new
767
- client = Twilio::TwiML::Client.new
768
- client.identity 'alice'
769
- client.parameter name: 'hello', value: 'world'
770
-
771
- response = Twilio::TwiML::VoiceResponse.new
772
- dial.append(client)
773
- response.append(dial)
774
- doc = parse(response)
775
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
776
- end
777
- end
778
-
779
- context 'Testing Gather' do
780
- it 'should allow empty Gather' do
781
- expected_doc = parse <<-XML
782
- <Response>
783
- <Gather></Gather>
784
- </Response>
785
- XML
786
- response = Twilio::TwiML::VoiceResponse.new
787
- response.gather
788
- doc = parse(response)
789
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
790
- end
791
-
792
- it 'should allow nested Say in Gather' do
793
- expected_doc = parse <<-XML
794
- <Response>
795
- <Gather>
796
- <Say>Hello</Say>
797
- </Gather>
798
- </Response>
799
- XML
800
- gather_elem = Twilio::TwiML::Gather.new
801
- gather_elem.say(message: 'Hello')
802
-
803
- response = Twilio::TwiML::VoiceResponse.new
804
- response.append(gather_elem)
805
- doc = parse(response)
806
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
807
- end
808
-
809
- it 'should allow nested play and pause' do
810
- expected_doc = parse <<-XML
811
- <Response>
812
- <Gather>
813
- <Say>Hey</Say>
814
- <Play>hey.mp3</Play>
815
- <Pause/>
816
- </Gather>
817
- </Response>
818
- XML
819
- gather = Twilio::TwiML::Gather.new
820
- gather.say(message: 'Hey')
821
- gather.play(url: 'hey.mp3')
822
- gather.pause
823
-
824
- response = Twilio::TwiML::VoiceResponse.new
825
- response.append(gather)
826
- doc = parse(response)
827
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
828
- end
829
-
830
- it 'should render ssml attributes correctly' do
831
- expected_doc = parse <<-XML
832
- <Response>
833
- <Say>
834
- <say-as interpret-as="spell-out">Twilio</say-as>
835
- </Say>
836
- </Response>
837
- XML
838
-
839
- response = Twilio::TwiML::VoiceResponse.new
840
- response.say do |s|
841
- s.say_as('Twilio', interpretAs: 'spell-out')
842
- end
843
-
844
- expect(parse(response)).to be_equivalent_to(expected_doc).respecting_element_order
845
- end
846
- end
847
- end