twilio-ruby 5.31.1 → 5.54.0

Sign up to get free protection for your applications and to get access to all the features.
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