twilio-ruby 5.31.1 → 5.54.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 (860) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +19 -1
  3. data/.rubocop_todo.yml +8 -39
  4. data/.travis.yml +29 -25
  5. data/CHANGES.md +880 -1
  6. data/CODE_OF_CONDUCT.md +73 -0
  7. data/CONTRIBUTING.md +2 -2
  8. data/Gemfile +0 -9
  9. data/ISSUE_TEMPLATE.md +17 -13
  10. data/{LICENSE.md → LICENSE} +2 -2
  11. data/Makefile +6 -15
  12. data/PULL_REQUEST_TEMPLATE.md +31 -0
  13. data/README.md +60 -6
  14. data/Rakefile +0 -54
  15. data/githooks/pre-commit +0 -0
  16. data/lib/twilio-ruby.rb +9 -17
  17. data/lib/twilio-ruby/framework/error.rb +3 -3
  18. data/lib/twilio-ruby/framework/version.rb +7 -11
  19. data/lib/twilio-ruby/http/http_client.rb +3 -1
  20. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  21. data/lib/twilio-ruby/jwt/jwt.rb +6 -0
  22. data/lib/twilio-ruby/jwt/task_router.rb +2 -2
  23. data/lib/twilio-ruby/rest/accounts.rb +12 -0
  24. data/lib/twilio-ruby/rest/accounts/v1.rb +14 -0
  25. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  26. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +13 -30
  27. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +13 -30
  28. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  29. data/lib/twilio-ruby/rest/api.rb +2 -2
  30. data/lib/twilio-ruby/rest/api/v2010.rb +5 -4
  31. data/lib/twilio-ruby/rest/api/v2010/account.rb +10 -27
  32. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +16 -33
  33. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +5 -7
  34. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +22 -37
  35. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +10 -18
  36. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +9 -17
  37. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +35 -28
  38. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +35 -28
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +35 -28
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +35 -28
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +35 -28
  42. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +35 -28
  43. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +35 -28
  44. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +2 -8
  45. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +221 -142
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  47. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +49 -65
  48. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +17 -28
  49. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +12 -34
  50. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +375 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +38 -43
  52. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +24 -22
  53. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +98 -61
  54. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +13 -25
  55. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +16 -28
  56. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +37 -40
  57. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +15 -28
  58. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +9 -17
  59. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +23 -16
  60. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +23 -16
  61. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +23 -16
  62. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +11 -23
  63. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +126 -127
  64. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +9 -12
  65. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +12 -20
  66. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +3 -8
  67. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +3 -8
  68. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +9 -17
  69. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +13 -25
  70. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +45 -62
  71. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +12 -24
  72. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +15 -23
  73. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +12 -20
  74. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +12 -20
  75. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +15 -23
  76. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +10 -22
  77. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +10 -22
  78. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +13 -30
  79. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +13 -30
  80. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +96 -37
  81. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +2 -2
  82. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +2 -2
  83. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +15 -28
  84. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +15 -28
  85. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +2 -2
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +15 -28
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +13 -26
  88. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +12 -25
  89. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +14 -31
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +14 -31
  91. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +6 -11
  92. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +12 -20
  93. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +9 -11
  94. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +9 -11
  95. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +9 -11
  96. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +9 -11
  97. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +9 -11
  98. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +9 -11
  99. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +9 -11
  100. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +9 -11
  101. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +9 -11
  102. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +32 -48
  103. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +18 -23
  104. data/lib/twilio-ruby/rest/autopilot.rb +6 -0
  105. data/lib/twilio-ruby/rest/autopilot/v1.rb +12 -4
  106. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +25 -58
  107. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +7 -17
  108. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +6 -12
  109. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +16 -33
  110. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +27 -36
  111. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +16 -33
  112. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +61 -55
  113. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +7 -17
  114. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +19 -36
  115. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +21 -34
  116. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +44 -54
  117. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +12 -22
  118. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +9 -15
  119. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +16 -33
  120. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +194 -0
  121. data/lib/twilio-ruby/rest/bulkexports.rb +56 -0
  122. data/lib/twilio-ruby/rest/bulkexports/v1.rb +62 -0
  123. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +243 -0
  124. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +286 -0
  125. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +286 -0
  126. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +255 -0
  127. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +226 -0
  128. data/lib/twilio-ruby/rest/chat/v1.rb +10 -8
  129. data/lib/twilio-ruby/rest/chat/v1/credential.rb +13 -30
  130. data/lib/twilio-ruby/rest/chat/v1/service.rb +52 -69
  131. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +22 -39
  132. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +34 -47
  133. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +44 -61
  134. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +20 -37
  135. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +27 -44
  136. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +21 -38
  137. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +5 -7
  138. data/lib/twilio-ruby/rest/chat/v2.rb +10 -8
  139. data/lib/twilio-ruby/rest/chat/v2/credential.rb +13 -30
  140. data/lib/twilio-ruby/rest/chat/v2/service.rb +52 -69
  141. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +34 -42
  142. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +55 -57
  143. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +34 -47
  144. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +91 -93
  145. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +59 -61
  146. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +52 -66
  147. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +27 -44
  148. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +39 -43
  149. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +34 -42
  150. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +30 -42
  151. data/lib/twilio-ruby/rest/client.rb +98 -17
  152. data/lib/twilio-ruby/rest/conversations.rb +39 -3
  153. data/lib/twilio-ruby/rest/conversations/v1.rb +77 -9
  154. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  155. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  156. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +106 -56
  157. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +95 -56
  158. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +355 -0
  159. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +136 -65
  160. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +36 -58
  161. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  162. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  163. data/lib/twilio-ruby/rest/{authy → conversations}/v1/service.rb +139 -90
  164. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  165. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +278 -0
  166. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  167. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +588 -0
  168. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +541 -0
  169. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  170. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +541 -0
  171. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  172. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  173. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +437 -0
  174. data/lib/twilio-ruby/rest/conversations/v1/user.rb +416 -0
  175. data/lib/twilio-ruby/rest/events.rb +72 -0
  176. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  177. data/lib/twilio-ruby/rest/events/v1/event_type.rb +298 -0
  178. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  179. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +290 -0
  180. data/lib/twilio-ruby/rest/events/v1/sink.rb +418 -0
  181. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  182. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  183. data/lib/twilio-ruby/rest/events/v1/subscription.rb +397 -0
  184. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +346 -0
  185. data/lib/twilio-ruby/rest/fax/v1.rb +5 -4
  186. data/lib/twilio-ruby/rest/fax/v1/fax.rb +41 -57
  187. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +9 -17
  188. data/lib/twilio-ruby/rest/flex_api.rb +1 -1
  189. data/lib/twilio-ruby/rest/flex_api/v1.rb +16 -13
  190. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +18 -30
  191. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +48 -31
  192. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +134 -118
  193. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +15 -32
  194. data/lib/twilio-ruby/rest/insights.rb +8 -0
  195. data/lib/twilio-ruby/rest/insights/v1.rb +21 -4
  196. data/lib/twilio-ruby/rest/insights/v1/call.rb +3 -9
  197. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +3 -5
  198. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +3 -5
  199. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +18 -16
  200. data/lib/twilio-ruby/rest/insights/v1/room.rb +499 -0
  201. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  202. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  203. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +16 -16
  204. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +42 -98
  205. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +211 -343
  206. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +45 -89
  207. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +35 -80
  208. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +41 -101
  209. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +44 -89
  210. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +32 -69
  211. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +42 -81
  212. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +15 -23
  213. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +16 -14
  214. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +42 -96
  215. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +129 -235
  216. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +32 -67
  217. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +75 -127
  218. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +35 -75
  219. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +76 -154
  220. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +80 -136
  221. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +49 -119
  222. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +32 -71
  223. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +59 -87
  224. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +32 -70
  225. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +37 -78
  226. data/lib/twilio-ruby/rest/lookups.rb +1 -1
  227. data/lib/twilio-ruby/rest/lookups/v1.rb +6 -5
  228. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +28 -32
  229. data/lib/twilio-ruby/rest/messaging.rb +23 -12
  230. data/lib/twilio-ruby/rest/messaging/v1.rb +37 -21
  231. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +328 -0
  232. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  233. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  234. data/lib/twilio-ruby/rest/messaging/v1/service.rb +170 -92
  235. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +16 -29
  236. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +16 -29
  237. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +16 -29
  238. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +426 -0
  239. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +125 -0
  240. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  241. data/lib/twilio-ruby/rest/monitor/v1.rb +10 -8
  242. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +26 -34
  243. data/lib/twilio-ruby/rest/monitor/v1/event.rb +21 -29
  244. data/lib/twilio-ruby/rest/notify/v1.rb +10 -8
  245. data/lib/twilio-ruby/rest/notify/v1/credential.rb +25 -36
  246. data/lib/twilio-ruby/rest/notify/v1/service.rb +57 -55
  247. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +38 -50
  248. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +42 -39
  249. data/lib/twilio-ruby/rest/numbers.rb +44 -0
  250. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  251. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +189 -0
  252. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +512 -0
  253. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +309 -0
  254. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +320 -0
  255. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +358 -0
  256. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +273 -0
  257. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +314 -0
  258. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +371 -0
  259. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +273 -0
  260. data/lib/twilio-ruby/rest/preview.rb +12 -30
  261. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +14 -10
  262. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +20 -17
  263. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +96 -13
  264. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +32 -55
  265. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +32 -15
  266. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +27 -27
  267. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +5 -4
  268. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +13 -30
  269. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +13 -30
  270. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +13 -30
  271. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +13 -30
  272. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +13 -30
  273. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +10 -8
  274. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +38 -50
  275. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +14 -13
  276. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +22 -39
  277. data/lib/twilio-ruby/rest/preview/marketplace.rb +10 -8
  278. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +6 -14
  279. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +6 -14
  280. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +13 -30
  281. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +7 -19
  282. data/lib/twilio-ruby/rest/preview/sync.rb +5 -4
  283. data/lib/twilio-ruby/rest/preview/sync/service.rb +13 -30
  284. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +19 -33
  285. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +10 -22
  286. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +12 -25
  287. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +26 -36
  288. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +10 -22
  289. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +12 -25
  290. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +26 -36
  291. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +10 -22
  292. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +17 -31
  293. data/lib/twilio-ruby/rest/preview/trusted_comms/{business.rb → branded_channel.rb} +65 -59
  294. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  295. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +195 -0
  296. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +11 -11
  297. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +25 -11
  298. data/lib/twilio-ruby/rest/preview/understand.rb +5 -4
  299. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +13 -30
  300. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +4 -14
  301. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +4 -14
  302. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +3 -9
  303. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +13 -30
  304. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +12 -25
  305. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +13 -30
  306. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +13 -30
  307. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +4 -14
  308. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +13 -30
  309. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +14 -27
  310. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +13 -30
  311. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +4 -14
  312. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +3 -9
  313. data/lib/twilio-ruby/rest/preview/wireless.rb +15 -12
  314. data/lib/twilio-ruby/rest/preview/wireless/command.rb +9 -22
  315. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +15 -32
  316. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +7 -19
  317. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +3 -7
  318. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +2 -2
  319. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +12 -20
  320. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +2 -2
  321. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +11 -19
  322. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +2 -2
  323. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +12 -20
  324. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +3 -9
  325. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +3 -3
  326. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +12 -20
  327. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +8 -12
  328. data/lib/twilio-ruby/rest/proxy/v1.rb +5 -4
  329. data/lib/twilio-ruby/rest/proxy/v1/service.rb +28 -45
  330. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +26 -41
  331. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +65 -41
  332. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +15 -23
  333. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +33 -33
  334. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +19 -32
  335. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +21 -38
  336. data/lib/twilio-ruby/rest/serverless/v1.rb +5 -4
  337. data/lib/twilio-ruby/rest/serverless/v1/service.rb +49 -47
  338. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +23 -40
  339. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +15 -23
  340. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +61 -39
  341. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  342. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +22 -37
  343. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +22 -35
  344. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +47 -23
  345. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +31 -48
  346. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +21 -38
  347. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +47 -25
  348. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +241 -0
  349. data/lib/twilio-ruby/rest/studio.rb +16 -3
  350. data/lib/twilio-ruby/rest/studio/v1.rb +5 -4
  351. data/lib/twilio-ruby/rest/studio/v1/flow.rb +9 -17
  352. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +12 -25
  353. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +3 -9
  354. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +6 -14
  355. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +3 -9
  356. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +41 -32
  357. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +3 -9
  358. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +6 -14
  359. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +3 -9
  360. data/lib/twilio-ruby/rest/studio/v2.rb +51 -0
  361. data/lib/twilio-ruby/rest/studio/v2/flow.rb +482 -0
  362. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +449 -0
  363. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +211 -0
  364. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +372 -0
  365. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +228 -0
  366. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +327 -0
  367. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +199 -0
  368. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +117 -0
  369. data/lib/twilio-ruby/rest/supersim.rb +97 -0
  370. data/lib/twilio-ruby/rest/supersim/v1.rb +131 -0
  371. data/lib/twilio-ruby/rest/supersim/v1/command.rb +368 -0
  372. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +494 -0
  373. data/lib/twilio-ruby/rest/supersim/v1/network.rb +307 -0
  374. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +361 -0
  375. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +339 -0
  376. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +414 -0
  377. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  378. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +338 -0
  379. data/lib/twilio-ruby/rest/sync/v1.rb +5 -4
  380. data/lib/twilio-ruby/rest/sync/v1/service.rb +16 -41
  381. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +41 -68
  382. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +16 -36
  383. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +32 -61
  384. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +75 -86
  385. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +16 -36
  386. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +32 -61
  387. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +82 -95
  388. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +17 -37
  389. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +28 -59
  390. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +8 -19
  391. data/lib/twilio-ruby/rest/taskrouter/v1.rb +5 -4
  392. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +29 -47
  393. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +15 -31
  394. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +21 -23
  395. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +72 -54
  396. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +33 -41
  397. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +29 -46
  398. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +21 -38
  399. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +16 -13
  400. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +18 -8
  401. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +9 -13
  402. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +12 -14
  403. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +17 -37
  404. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +33 -41
  405. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +7 -19
  406. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +7 -11
  407. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +8 -12
  408. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +4 -8
  409. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +9 -13
  410. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +25 -42
  411. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +7 -11
  412. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +3 -7
  413. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +9 -13
  414. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +7 -11
  415. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +4 -8
  416. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +9 -13
  417. data/lib/twilio-ruby/rest/trunking/v1.rb +5 -4
  418. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +70 -98
  419. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +14 -27
  420. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +15 -27
  421. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +13 -30
  422. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +15 -27
  423. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +198 -0
  424. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  425. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  426. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  427. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  428. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  429. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  430. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  431. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  432. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  433. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  434. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  435. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  436. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  437. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  438. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  439. data/lib/twilio-ruby/rest/verify.rb +18 -0
  440. data/lib/twilio-ruby/rest/verify/v2.rb +38 -4
  441. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/form.rb +19 -25
  442. data/lib/twilio-ruby/rest/verify/v2/service.rb +241 -36
  443. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +124 -0
  444. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/service/entity.rb +87 -41
  445. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +499 -0
  446. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +202 -0
  447. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/service/entity/factor.rb +92 -125
  448. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +299 -0
  449. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +25 -42
  450. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +16 -33
  451. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +16 -33
  452. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +41 -38
  453. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +9 -15
  454. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +408 -0
  455. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +329 -0
  456. data/lib/twilio-ruby/rest/video/v1.rb +20 -16
  457. data/lib/twilio-ruby/rest/video/v1/composition.rb +41 -56
  458. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +72 -88
  459. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +16 -32
  460. data/lib/twilio-ruby/rest/video/v1/recording.rb +21 -29
  461. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +16 -32
  462. data/lib/twilio-ruby/rest/video/v1/room.rb +51 -40
  463. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +15 -23
  464. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +16 -28
  465. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +6 -14
  466. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +6 -22
  467. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +6 -14
  468. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +144 -0
  469. data/lib/twilio-ruby/rest/voice.rb +36 -0
  470. data/lib/twilio-ruby/rest/voice/v1.rb +68 -0
  471. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +496 -0
  472. data/lib/twilio-ruby/rest/{preview/acc_security/service.rb → voice/v1/connection_policy.rb} +111 -144
  473. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -0
  474. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +3 -6
  475. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +3 -8
  476. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +29 -37
  477. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +7 -9
  478. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +4 -14
  479. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +349 -0
  480. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +329 -0
  481. data/lib/twilio-ruby/rest/wireless/v1.rb +15 -12
  482. data/lib/twilio-ruby/rest/wireless/v1/command.rb +19 -32
  483. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +25 -41
  484. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +32 -44
  485. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +12 -28
  486. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +13 -15
  487. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +9 -11
  488. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  489. data/lib/twilio-ruby/twiml/voice_response.rb +57 -18
  490. data/lib/twilio-ruby/util/configuration.rb +13 -1
  491. data/lib/twilio-ruby/version.rb +1 -1
  492. data/twilio-ruby.gemspec +12 -6
  493. metadata +216 -732
  494. data/lib/twilio-ruby/rest/authy.rb +0 -55
  495. data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
  496. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -412
  497. data/lib/twilio-ruby/rest/autopilot/v1/assistant/export_assistant.rb +0 -222
  498. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -272
  499. data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -513
  500. data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -439
  501. data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -458
  502. data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -444
  503. data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -299
  504. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
  505. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
  506. data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
  507. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -248
  508. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -111
  509. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/success_rate.rb +0 -264
  510. data/lib/twilio-ruby/rest/preview/trusted_comms/device.rb +0 -146
  511. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -347
  512. data/lib/twilio-ruby/rest/trunking/v1/trunk/terminating_sip_domain.rb +0 -418
  513. data/spec/framework/request_spec.rb +0 -36
  514. data/spec/framework/serialize_spec.rb +0 -80
  515. data/spec/holodeck/holodeck.rb +0 -61
  516. data/spec/holodeck/hologram.rb +0 -4
  517. data/spec/http/http_client_spec.rb +0 -122
  518. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
  519. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  520. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  521. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
  522. data/spec/integration/api/v2010/account/address_spec.rb +0 -273
  523. data/spec/integration/api/v2010/account/application_spec.rb +0 -279
  524. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
  525. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
  526. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
  527. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
  528. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
  529. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
  530. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
  531. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
  532. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
  533. data/spec/integration/api/v2010/account/balance_spec.rb +0 -45
  534. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
  535. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
  536. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
  537. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  538. data/spec/integration/api/v2010/account/call_spec.rb +0 -624
  539. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -477
  540. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
  541. data/spec/integration/api/v2010/account/conference_spec.rb +0 -433
  542. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -201
  543. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
  544. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  545. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -191
  546. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -191
  547. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -191
  548. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -345
  549. data/spec/integration/api/v2010/account/key_spec.rb +0 -180
  550. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
  551. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
  552. data/spec/integration/api/v2010/account/message_spec.rb +0 -473
  553. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
  554. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
  555. data/spec/integration/api/v2010/account/notification_spec.rb +0 -140
  556. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
  557. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -210
  558. data/spec/integration/api/v2010/account/queue_spec.rb +0 -248
  559. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
  560. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
  561. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
  562. data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
  563. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
  564. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
  565. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
  566. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
  567. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
  568. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
  569. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  570. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
  571. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  572. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  573. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
  574. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
  575. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -295
  576. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  577. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
  578. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  579. data/spec/integration/api/v2010/account/token_spec.rb +0 -60
  580. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
  581. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -114
  582. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -114
  583. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -114
  584. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -114
  585. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -114
  586. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -114
  587. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -114
  588. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -114
  589. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -111
  590. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
  591. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  592. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  593. data/spec/integration/api/v2010/account_spec.rb +0 -286
  594. data/spec/integration/authy/v1/form_spec.rb +0 -48
  595. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
  596. data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -273
  597. data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
  598. data/spec/integration/authy/v1/service_spec.rb +0 -227
  599. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
  600. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
  601. data/spec/integration/autopilot/v1/assistant/export_assistant_spec.rb +0 -49
  602. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
  603. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
  604. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
  605. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -290
  606. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
  607. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
  608. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
  609. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
  610. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
  611. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
  612. data/spec/integration/autopilot/v1/assistant/webhook_spec.rb +0 -246
  613. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -286
  614. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  615. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  616. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  617. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  618. data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
  619. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  620. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
  621. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  622. data/spec/integration/chat/v1/service_spec.rb +0 -299
  623. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  624. data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
  625. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  626. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -261
  627. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
  628. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
  629. data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
  630. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  631. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
  632. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -251
  633. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  634. data/spec/integration/chat/v2/service_spec.rb +0 -354
  635. data/spec/integration/conversations/v1/conversation/message_spec.rb +0 -293
  636. data/spec/integration/conversations/v1/conversation/participant_spec.rb +0 -290
  637. data/spec/integration/conversations/v1/conversation/webhook_spec.rb +0 -286
  638. data/spec/integration/conversations/v1/conversation_spec.rb +0 -222
  639. data/spec/integration/conversations/v1/webhook_spec.rb +0 -88
  640. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
  641. data/spec/integration/fax/v1/fax_spec.rb +0 -271
  642. data/spec/integration/flex_api/v1/channel_spec.rb +0 -191
  643. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -449
  644. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -263
  645. data/spec/integration/flex_api/v1/web_channel_spec.rb +0 -220
  646. data/spec/integration/insights/v1/call/event_spec.rb +0 -167
  647. data/spec/integration/insights/v1/call/metric_spec.rb +0 -155
  648. data/spec/integration/insights/v1/call/summary_spec.rb +0 -63
  649. data/spec/integration/insights/v1/call_spec.rb +0 -47
  650. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
  651. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  652. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
  653. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
  654. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
  655. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
  656. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
  657. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
  658. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
  659. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  660. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
  661. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  662. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -261
  663. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
  664. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
  665. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
  666. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  667. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
  668. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -251
  669. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  670. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
  671. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -337
  672. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  673. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  674. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -179
  675. data/spec/integration/messaging/v1/service_spec.rb +0 -271
  676. data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
  677. data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
  678. data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
  679. data/spec/integration/messaging/v1/session_spec.rb +0 -227
  680. data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
  681. data/spec/integration/monitor/v1/alert_spec.rb +0 -140
  682. data/spec/integration/monitor/v1/event_spec.rb +0 -150
  683. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  684. data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
  685. data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
  686. data/spec/integration/notify/v1/service_spec.rb +0 -294
  687. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
  688. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
  689. data/spec/integration/preview/acc_security/service_spec.rb +0 -185
  690. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
  691. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +0 -129
  692. data/spec/integration/preview/bulk_exports/export/job_spec.rb +0 -77
  693. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  694. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
  695. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
  696. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
  697. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
  698. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
  699. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
  700. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
  701. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
  702. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
  703. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
  704. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
  705. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  706. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
  707. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
  708. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  709. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
  710. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
  711. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
  712. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
  713. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
  714. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
  715. data/spec/integration/preview/sync/service_spec.rb +0 -246
  716. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  717. data/spec/integration/preview/trusted_comms/business/insights/success_rate_spec.rb +0 -58
  718. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  719. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -46
  720. data/spec/integration/preview/trusted_comms/cps_spec.rb +0 -43
  721. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -54
  722. data/spec/integration/preview/trusted_comms/device_spec.rb +0 -45
  723. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
  724. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
  725. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
  726. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
  727. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
  728. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
  729. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
  730. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
  731. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
  732. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
  733. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
  734. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
  735. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
  736. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
  737. data/spec/integration/preview/understand/assistant_spec.rb +0 -274
  738. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  739. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
  740. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
  741. data/spec/integration/preview/wireless/sim_spec.rb +0 -210
  742. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
  743. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  744. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
  745. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  746. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
  747. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
  748. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  749. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
  750. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
  751. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  752. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -236
  753. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
  754. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
  755. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -243
  756. data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
  757. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
  758. data/spec/integration/proxy/v1/service_spec.rb +0 -218
  759. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -95
  760. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -205
  761. data/spec/integration/serverless/v1/service/build_spec.rb +0 -212
  762. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -137
  763. data/spec/integration/serverless/v1/service/environment/log_spec.rb +0 -98
  764. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -211
  765. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -173
  766. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -95
  767. data/spec/integration/serverless/v1/service/function_spec.rb +0 -205
  768. data/spec/integration/serverless/v1/service_spec.rb +0 -206
  769. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
  770. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
  771. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
  772. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
  773. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
  774. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
  775. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
  776. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
  777. data/spec/integration/studio/v1/flow_spec.rb +0 -117
  778. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
  779. data/spec/integration/sync/v1/service/document_spec.rb +0 -257
  780. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  781. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
  782. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
  783. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  784. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
  785. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
  786. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  787. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
  788. data/spec/integration/sync/v1/service_spec.rb +0 -266
  789. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
  790. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -165
  791. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
  792. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -316
  793. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
  794. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -82
  795. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
  796. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
  797. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
  798. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
  799. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
  800. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
  801. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
  802. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
  803. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
  804. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
  805. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
  806. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
  807. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -58
  808. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
  809. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -270
  810. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
  811. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -73
  812. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
  813. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
  814. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
  815. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
  816. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
  817. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
  818. data/spec/integration/trunking/v1/trunk/terminating_sip_domain_spec.rb +0 -231
  819. data/spec/integration/trunking/v1/trunk_spec.rb +0 -368
  820. data/spec/integration/verify/v2/service/messaging_configuration_spec.rb +0 -231
  821. data/spec/integration/verify/v2/service/rate_limit/bucket_spec.rb +0 -249
  822. data/spec/integration/verify/v2/service/rate_limit_spec.rb +0 -221
  823. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -54
  824. data/spec/integration/verify/v2/service/verification_spec.rb +0 -277
  825. data/spec/integration/verify/v2/service_spec.rb +0 -243
  826. data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
  827. data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
  828. data/spec/integration/video/v1/composition_spec.rb +0 -350
  829. data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
  830. data/spec/integration/video/v1/recording_spec.rb +0 -179
  831. data/spec/integration/video/v1/room/recording_spec.rb +0 -188
  832. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
  833. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -105
  834. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -97
  835. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -190
  836. data/spec/integration/video/v1/room_spec.rb +0 -257
  837. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  838. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -61
  839. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -112
  840. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -77
  841. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  842. data/spec/integration/wireless/v1/command_spec.rb +0 -289
  843. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -282
  844. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -89
  845. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -115
  846. data/spec/integration/wireless/v1/sim_spec.rb +0 -329
  847. data/spec/integration/wireless/v1/usage_record_spec.rb +0 -111
  848. data/spec/jwt/access_token_spec.rb +0 -151
  849. data/spec/jwt/client_capability_spec.rb +0 -104
  850. data/spec/jwt/task_router_spec.rb +0 -172
  851. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  852. data/spec/rest/client_spec.rb +0 -83
  853. data/spec/security/request_validator_spec.rb +0 -125
  854. data/spec/spec_helper.rb +0 -38
  855. data/spec/support/fakeweb.rb +0 -2
  856. data/spec/twilio_spec.rb +0 -17
  857. data/spec/twiml/messaging_response_spec.rb +0 -235
  858. data/spec/twiml/voice_response_spec.rb +0 -847
  859. data/spec/util/configuration_spec.rb +0 -21
  860. data/spec/util/url_encode_spec.rb +0 -12
@@ -1,125 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Twilio::Security::RequestValidator do
4
- describe 'configuration' do
5
- after(:each) do
6
- Twilio.instance_variable_set('@configuration', nil)
7
- end
8
-
9
- it 'should set the auth token from a configuration block' do
10
- Twilio.configure do |config|
11
- config.auth_token = 'someToken'
12
- end
13
-
14
- validator = Twilio::Security::RequestValidator.new
15
- expect(validator.instance_variable_get('@auth_token')).to eq('someToken')
16
- end
17
-
18
- it 'should overwrite the auth token if passed to initializer' do
19
- Twilio.configure do |config|
20
- config.auth_token = 'someToken'
21
- end
22
-
23
- validator = Twilio::Security::RequestValidator.new 'otherToken'
24
- expect(validator.instance_variable_get('@auth_token')).to eq('otherToken')
25
- end
26
-
27
- it 'should throw an argument error if the auth token isn\'t set' do
28
- expect { Twilio::Security::RequestValidator.new }.to raise_error(ArgumentError)
29
- end
30
- end
31
-
32
- describe 'validations' do
33
- let(:token) { '12345' }
34
-
35
- let(:validator) { Twilio::Security::RequestValidator.new token }
36
-
37
- let(:url) { 'https://mycompany.com/myapp.php?foo=1&bar=2' }
38
-
39
- let(:default_signature) { 'RSOYDt4T1cUTdK1PDd93/VVr8B8=' }
40
-
41
- let(:body) { '{"property": "value", "boolean": true}' }
42
-
43
- let(:body_hash) { '0a1ff7634d9ab3b95db5c9a2dfe9416e41502b283a80c7cf19632632f96e6620' }
44
-
45
- let(:params) do
46
- {
47
- 'From' => '+14158675309',
48
- 'To' => '+18005551212',
49
- 'CallSid' => 'CA1234567890ABCDE',
50
- 'Caller' => '+14158675309',
51
- 'Digits' => '1234'
52
- }
53
- end
54
-
55
- it 'should build a correct signature' do
56
- expect(validator.build_signature_for(url, params)).to eq(default_signature)
57
- end
58
- it 'should validate an authentic Twilio request' do
59
- expect(validator.validate(url, params, default_signature)).to eq(true)
60
- end
61
-
62
- it 'should not validate a request with wrong signature' do
63
- expect(validator.validate(url, params, 'fake_signature')).to eq(false)
64
- end
65
-
66
- it 'should hash body correctly' do
67
- expect(validator.build_hash_for(body)).to eq(body_hash)
68
- end
69
-
70
- it 'should validate requests with body correctly' do
71
- url_with_hash = "#{url}&bodySHA256=#{body_hash}"
72
- expect(validator.validate(url_with_hash, body, 'a9nBmqA0ju/hNViExpshrM61xv4=')).to eq(true)
73
- end
74
-
75
- it 'should validate with no other GET parameters' do
76
- url_with_hash = "https://mycompany.com/myapp.php?bodySHA256=#{body_hash}"
77
- expect(validator.validate(url_with_hash, body, 'y77kIzt2vzLz71DgmJGsen2scGs=')).to eq(true)
78
- end
79
-
80
- it 'should fail validation with body but no signature' do
81
- expect(validator.validate(url, body, default_signature)).to eq(false)
82
- end
83
-
84
- it 'should validate https urls with ports by stripping them' do
85
- url_with_port = url.sub('.com', '.com:1234')
86
- expect(validator.validate(url_with_port, params, default_signature)).to eq(true)
87
- end
88
-
89
- it 'should validate http urls with ports' do
90
- http_url_with_port = url.sub('.com', '.com:1234')
91
- http_url_with_port = http_url_with_port.sub('https', 'http')
92
- signature = 'Zmvh+3yNM1Phv2jhDCwEM3q5ebU=' # hash of http url with port 1234
93
- expect(validator.validate(http_url_with_port, params, signature)).to eq(true)
94
- end
95
-
96
- it 'should validate https urls without ports by adding standard port 443' do
97
- signature = 'kvajT1Ptam85bY51eRf/AJRuM3w=' # hash of https url with port 443
98
- expect(validator.validate(url, params, signature)).to eq(true)
99
- end
100
-
101
- it 'should validate http urls without ports by adding standard port 80' do
102
- http_url = url.sub('https', 'http')
103
- signature = '0ZXoZLH/DfblKGATFgpif+LLRf4=' # hash of http url with port 80
104
- expect(validator.validate(http_url, params, signature)).to eq(true)
105
- end
106
-
107
- it 'should validate urls with credentials' do
108
- url_with_creds = 'https://user:pass@mycompany.com/myapp.php?foo=1&bar=2'
109
- signature = 'CukzLTc1tT5dXEDIHm/tKBanW10=' # expected hash of the url
110
- expect(validator.validate(url_with_creds, params, signature)).to eq(true)
111
- end
112
-
113
- it 'should validate urls with just username' do
114
- url_with_creds = 'https://user@mycompany.com/myapp.php?foo=1&bar=2'
115
- signature = '2YRLlVAflCqxaNicjMpJcSTgzSs=' # expected hash of the url
116
- expect(validator.validate(url_with_creds, params, signature)).to eq(true)
117
- end
118
-
119
- it 'should validate urls with credentials by adding port' do
120
- url_with_creds = 'https://user:pass@mycompany.com/myapp.php?foo=1&bar=2'
121
- signature = 'ZQFR1PTIZXF2MXB8ZnKCvnnA+rI=' # expected hash of the url with port 443
122
- expect(validator.validate(url_with_creds, params, signature)).to eq(true)
123
- end
124
- end
125
- end
data/spec/spec_helper.rb DELETED
@@ -1,38 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
-
3
- require 'bundler'
4
- Bundler.setup
5
-
6
- Dir.glob(File.expand_path('../support/**/*.rb', __FILE__), &method(:require))
7
-
8
- require_relative './holodeck/holodeck.rb'
9
- require_relative './holodeck/hologram.rb'
10
-
11
- require 'twilio-ruby'
12
- require 'rack'
13
- require 'rspec/matchers'
14
- require 'equivalent-xml'
15
-
16
- RSpec.configure do |config|
17
- config.expect_with :rspec do |c|
18
- c.syntax = :expect
19
- end
20
-
21
- config.before(:each) do
22
- @client = Twilio::REST::Client.new('AC' + 'a' * 32, 'AUTHTOKEN')
23
- @holodeck = Holodeck.new
24
- @client.http_client = @holodeck
25
- end
26
- end
27
-
28
- def account_sid
29
- ENV['ACCOUNT_SID']
30
- end
31
-
32
- def auth_token
33
- ENV['AUTH_TOKEN']
34
- end
35
-
36
- def parse(twiml_response)
37
- Nokogiri::XML::Document.parse(twiml_response.to_s, &:noblanks)
38
- end
@@ -1,2 +0,0 @@
1
- require 'fakeweb'
2
- FakeWeb.allow_net_connect = false
data/spec/twilio_spec.rb DELETED
@@ -1,17 +0,0 @@
1
- describe Twilio do
2
- after(:each) do
3
- Twilio.instance_variable_set('@configuration', nil)
4
- end
5
-
6
- it 'should set the configuration with a config block' do
7
- Twilio.configure do |config|
8
- config.account_sid = 'someSid'
9
- config.auth_token = 'someToken'
10
- config.http_client = 'someClient'
11
- end
12
-
13
- expect(Twilio.account_sid).to eq('someSid')
14
- expect(Twilio.auth_token).to eq('someToken')
15
- expect(Twilio.http_client).to eq('someClient')
16
- end
17
- end
@@ -1,235 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Twilio::TwiML::MessagingResponse 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::MessagingResponse.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::MessagingResponse.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 allow comments' do
24
- twiml = Twilio::TwiML::MessagingResponse.new
25
- twiml.comment 'This is awesome'
26
- expect(twiml.to_xml).to match(/<!--This is awesome-->/)
27
- end
28
-
29
- it 'should allow text nodes' do
30
- expected_doc = parse <<-XML
31
- <Response>Look no tags</Response>
32
- XML
33
- twiml = Twilio::TwiML::MessagingResponse.new
34
- twiml.add_text 'Look no tags'
35
- expect(parse(twiml)).to be_equivalent_to(expected_doc).respecting_element_order
36
- end
37
-
38
- it 'should allow generic child nodes' do
39
- expected_doc = parse <<-XML
40
- <Response>
41
- <message tag="global">
42
- <bold>Hello</bold>
43
- </alexa>
44
- </Response>
45
- XML
46
-
47
- twiml = Twilio::TwiML::MessagingResponse.new
48
- twiml.add_child('message', tag: 'global') do |custom|
49
- custom.add_child('bold', 'Hello')
50
- end
51
-
52
- expect(parse(twiml)).to be_equivalent_to(expected_doc).respecting_element_order
53
- end
54
-
55
- it 'should allow mixed text and generic nodes' do
56
- expected_doc = parse <<-XML
57
- <Response>
58
- before
59
- <Child>content</Child>
60
- after
61
- </Response>
62
- XML
63
-
64
- twiml = Twilio::TwiML::MessagingResponse.new
65
- twiml.add_text('before')
66
- .add_child('Child', 'content')
67
- .add_text('after')
68
-
69
- expect(parse(twiml)).to be_equivalent_to(expected_doc).respecting_element_order
70
- end
71
-
72
- it 'should allow populated response' do
73
- expected_doc = parse <<-XML
74
- <Response>
75
- <Message>Hello</Message>
76
- <Redirect>example.com</Redirect>
77
- </Response>
78
- XML
79
- response = Twilio::TwiML::MessagingResponse.new
80
- response.message(body: 'Hello')
81
- response.redirect('example.com')
82
- doc = parse(response)
83
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
84
- end
85
-
86
- it 'should allow chaining' do
87
- expected_doc = parse <<-XML
88
- <Response>
89
- <Message>Hello</Message>
90
- <Redirect>example.com</Redirect>
91
- </Response>
92
- XML
93
- response = Twilio::TwiML::MessagingResponse.new.message(body: 'Hello').redirect('example.com')
94
- doc = parse(response)
95
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
96
- end
97
-
98
- it 'should allow nesting' do
99
- expected_doc = parse <<-XML
100
- <Response>
101
- <Message>
102
- Hello
103
- <Media>foobar</Media>
104
- </Message>
105
- </Response>
106
- XML
107
- response = Twilio::TwiML::MessagingResponse.new
108
- response.message(body: 'Hello') do |message|
109
- message.media('foobar')
110
- end
111
- doc = parse(response)
112
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
113
- end
114
-
115
- it 'should allow nesting and chaining' do
116
- expected_doc = parse <<-XML
117
- <Response>
118
- <Message>
119
- Hello
120
- <Media>foobar</Media>
121
- </Message>
122
- <Redirect>example.com</Redirec>
123
- </Response>
124
- XML
125
- response = Twilio::TwiML::MessagingResponse.new
126
- response.message(body: 'Hello') do |message|
127
- message.media('foobar')
128
- end
129
-
130
- response.redirect('example.com')
131
-
132
- doc = parse(response)
133
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
134
- end
135
-
136
- it 'should allow nesting from the initializer' do
137
- expected_doc = parse <<-XML
138
- <Response>
139
- <Message>Hello</Message>
140
- <Redirect>example.com</Redirec>
141
- </Response>
142
- XML
143
- response = Twilio::TwiML::MessagingResponse.new do |res|
144
- res.message(body: 'Hello')
145
- res.redirect('example.com')
146
- end
147
- doc = parse(response)
148
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
149
- end
150
- end
151
-
152
- context 'Testing Message' do
153
- it 'should allow a body' do
154
- expected_doc = parse <<-XML
155
- <Response>
156
- <Message>Hello</Message>
157
- </Response>
158
- XML
159
- response = Twilio::TwiML::MessagingResponse.new
160
- response.message(body: 'Hello')
161
- doc = parse(response)
162
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
163
- end
164
-
165
- it 'should allow appending Body' do
166
- expected_doc = parse <<-XML
167
- <Response>
168
- <Message><Body>Hello World</Body></Message>
169
- </Response>
170
- XML
171
- body = Twilio::TwiML::Body.new('Hello World')
172
- message = Twilio::TwiML::Message.new
173
-
174
- response = Twilio::TwiML::MessagingResponse.new
175
- message.append(body)
176
- response.append(message)
177
-
178
- doc = parse(response)
179
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
180
- end
181
-
182
- it 'should allow appending Body and Media' do
183
- expected_doc = parse <<-XML
184
- <Response>
185
- <Message>
186
- <Body>Hello World</Body>
187
- <Media>hey.jpg</Media>
188
- </Message>
189
- </Response>
190
- XML
191
- body = Twilio::TwiML::Body.new('Hello World')
192
- media = Twilio::TwiML::Media.new('hey.jpg')
193
- message = Twilio::TwiML::Message.new
194
-
195
- response = Twilio::TwiML::MessagingResponse.new
196
- message.append(body)
197
- message.append(media)
198
- response.append(message)
199
-
200
- doc = parse(response)
201
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
202
- end
203
-
204
- it 'should allow and preserve new lines in messages' do
205
- expected_doc = parse <<-XML
206
- <Response>
207
- <Message>Hello
208
- World
209
- </Message>
210
- </Response>
211
- XML
212
-
213
- response = Twilio::TwiML::MessagingResponse.new
214
- response.message(body: "Hello\nWorld")
215
-
216
- doc = parse(response)
217
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
218
- end
219
- end
220
-
221
- context 'Testing Redirect' do
222
- it 'should allow MessagingResponse.redirect' do
223
- expected_doc = parse <<-XML
224
- <Response>
225
- <Redirect>example.com</Redirect>
226
- </Response>
227
- XML
228
- response = Twilio::TwiML::MessagingResponse.new
229
- response.redirect('example.com')
230
-
231
- doc = parse(response)
232
- expect(doc).to be_equivalent_to(expected_doc).respecting_element_order
233
- end
234
- end
235
- end
@@ -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