twilio-ruby 5.47.0 → 5.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +125 -0
  3. data/README.md +7 -6
  4. data/lib/twilio-ruby/rest/api.rb +1 -1
  5. data/lib/twilio-ruby/rest/api/v2010.rb +5 -4
  6. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +7 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +4 -4
  8. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +4 -4
  9. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +2 -2
  10. data/lib/twilio-ruby/rest/autopilot/v1.rb +5 -4
  11. data/lib/twilio-ruby/rest/bulkexports/v1.rb +10 -8
  12. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +15 -1
  13. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +15 -1
  14. data/lib/twilio-ruby/rest/chat/v1.rb +10 -8
  15. data/lib/twilio-ruby/rest/chat/v2.rb +10 -8
  16. data/lib/twilio-ruby/rest/client.rb +8 -1
  17. data/lib/twilio-ruby/rest/conversations/v1.rb +25 -20
  18. data/lib/twilio-ruby/rest/events/v1.rb +20 -16
  19. data/lib/twilio-ruby/rest/events/v1/event_type.rb +4 -4
  20. data/lib/twilio-ruby/rest/events/v1/schema.rb +16 -16
  21. data/lib/twilio-ruby/rest/events/v1/schema/{schema_version.rb → version.rb} +41 -41
  22. data/lib/twilio-ruby/rest/events/v1/sink.rb +4 -4
  23. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +3 -3
  24. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +3 -3
  25. data/lib/twilio-ruby/rest/events/v1/subscription.rb +14 -8
  26. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +139 -9
  27. data/lib/twilio-ruby/rest/fax/v1.rb +5 -4
  28. data/lib/twilio-ruby/rest/flex_api/v1.rb +15 -12
  29. data/lib/twilio-ruby/rest/insights.rb +1 -1
  30. data/lib/twilio-ruby/rest/insights/v1.rb +11 -9
  31. data/lib/twilio-ruby/rest/insights/v1/room.rb +55 -43
  32. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +22 -22
  33. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +10 -8
  34. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +10 -8
  35. data/lib/twilio-ruby/rest/lookups/v1.rb +5 -4
  36. data/lib/twilio-ruby/rest/messaging.rb +9 -11
  37. data/lib/twilio-ruby/rest/messaging/v1.rb +20 -26
  38. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +143 -0
  39. data/lib/twilio-ruby/rest/messaging/v1/service.rb +112 -26
  40. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +266 -0
  41. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +125 -0
  42. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  43. data/lib/twilio-ruby/rest/monitor/v1.rb +10 -8
  44. data/lib/twilio-ruby/rest/notify/v1.rb +10 -8
  45. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +10 -8
  46. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +5 -4
  47. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +10 -8
  48. data/lib/twilio-ruby/rest/preview/marketplace.rb +10 -8
  49. data/lib/twilio-ruby/rest/preview/sync.rb +5 -4
  50. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +5 -4
  51. data/lib/twilio-ruby/rest/preview/understand.rb +5 -4
  52. data/lib/twilio-ruby/rest/preview/wireless.rb +15 -12
  53. data/lib/twilio-ruby/rest/proxy/v1.rb +5 -4
  54. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +1 -1
  55. data/lib/twilio-ruby/rest/serverless/v1.rb +5 -4
  56. data/lib/twilio-ruby/rest/studio/v1.rb +5 -4
  57. data/lib/twilio-ruby/rest/studio/v2.rb +5 -4
  58. data/lib/twilio-ruby/rest/supersim.rb +9 -0
  59. data/lib/twilio-ruby/rest/supersim/v1.rb +41 -20
  60. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +55 -3
  61. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +16 -0
  62. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  63. data/lib/twilio-ruby/rest/sync/v1.rb +5 -4
  64. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +9 -16
  65. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +9 -15
  66. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +22 -33
  67. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +9 -15
  68. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +22 -35
  69. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +9 -15
  70. data/lib/twilio-ruby/rest/taskrouter/v1.rb +5 -4
  71. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +12 -13
  72. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +31 -7
  73. data/lib/twilio-ruby/rest/trunking/v1.rb +5 -4
  74. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  75. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  76. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  77. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  78. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  79. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  80. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  81. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  82. data/lib/twilio-ruby/rest/{messaging/v1/use_case.rb → trusthub/v1/policies.rb} +110 -46
  83. data/lib/twilio-ruby/rest/{messaging/v1/campaign.rb → trusthub/v1/supporting_document.rb} +125 -143
  84. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  85. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  86. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  87. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  88. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  89. data/lib/twilio-ruby/rest/verify.rb +9 -0
  90. data/lib/twilio-ruby/rest/verify/v2.rb +26 -8
  91. data/lib/twilio-ruby/rest/verify/v2/service.rb +61 -3
  92. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +24 -0
  93. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +43 -4
  94. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +202 -0
  95. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +41 -52
  96. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +274 -0
  97. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +329 -0
  98. data/lib/twilio-ruby/rest/video/v1.rb +20 -16
  99. data/lib/twilio-ruby/rest/video/v1/room.rb +4 -1
  100. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +0 -6
  101. data/lib/twilio-ruby/rest/voice/v1.rb +20 -16
  102. data/lib/twilio-ruby/rest/wireless/v1.rb +15 -12
  103. data/lib/twilio-ruby/twiml/voice_response.rb +22 -0
  104. data/lib/twilio-ruby/version.rb +1 -1
  105. data/twilio-ruby.gemspec +1 -1
  106. metadata +27 -826
  107. data/spec/framework/request_spec.rb +0 -36
  108. data/spec/framework/serialize_spec.rb +0 -80
  109. data/spec/framework/version_spec.rb +0 -219
  110. data/spec/holodeck/holodeck.rb +0 -66
  111. data/spec/holodeck/hologram.rb +0 -4
  112. data/spec/http/http_client_spec.rb +0 -122
  113. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +0 -44
  114. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -222
  115. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -222
  116. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  117. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +0 -69
  118. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -106
  119. data/spec/integration/api/v2010/account/address_spec.rb +0 -269
  120. data/spec/integration/api/v2010/account/application_spec.rb +0 -274
  121. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -137
  122. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -102
  123. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -102
  124. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -101
  125. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -102
  126. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -102
  127. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -101
  128. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -102
  129. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -128
  130. data/spec/integration/api/v2010/account/balance_spec.rb +0 -44
  131. data/spec/integration/api/v2010/account/call/event_spec.rb +0 -102
  132. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -138
  133. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -149
  134. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -143
  135. data/spec/integration/api/v2010/account/call/payment_spec.rb +0 -135
  136. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  137. data/spec/integration/api/v2010/account/call_spec.rb +0 -660
  138. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -768
  139. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -234
  140. data/spec/integration/api/v2010/account/conference_spec.rb +0 -716
  141. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -197
  142. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
  143. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -220
  144. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -189
  145. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -189
  146. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -189
  147. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -370
  148. data/spec/integration/api/v2010/account/key_spec.rb +0 -176
  149. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -49
  150. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -161
  151. data/spec/integration/api/v2010/account/message_spec.rb +0 -507
  152. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -46
  153. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -46
  154. data/spec/integration/api/v2010/account/notification_spec.rb +0 -138
  155. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -185
  156. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -208
  157. data/spec/integration/api/v2010/account/queue_spec.rb +0 -244
  158. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -174
  159. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -165
  160. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -173
  161. data/spec/integration/api/v2010/account/recording_spec.rb +0 -184
  162. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -179
  163. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -176
  164. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -252
  165. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -241
  166. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -217
  167. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -217
  168. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  169. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -217
  170. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  171. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  172. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -207
  173. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -217
  174. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -303
  175. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -254
  176. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -251
  177. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  178. data/spec/integration/api/v2010/account/token_spec.rb +0 -71
  179. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -166
  180. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
  181. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
  182. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
  183. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
  184. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
  185. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
  186. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
  187. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
  188. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
  189. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -281
  190. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  191. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  192. data/spec/integration/api/v2010/account_spec.rb +0 -327
  193. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -79
  194. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -46
  195. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -207
  196. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -242
  197. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -236
  198. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -290
  199. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -79
  200. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -204
  201. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -249
  202. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -85
  203. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -49
  204. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -258
  205. data/spec/integration/autopilot/v1/assistant/webhook_spec.rb +0 -242
  206. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -277
  207. data/spec/integration/autopilot/v1/restore_assistant_spec.rb +0 -53
  208. data/spec/integration/bulkexports/v1/export/day_spec.rb +0 -115
  209. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +0 -129
  210. data/spec/integration/bulkexports/v1/export/job_spec.rb +0 -78
  211. data/spec/integration/bulkexports/v1/export_configuration_spec.rb +0 -77
  212. data/spec/integration/bulkexports/v1/export_spec.rb +0 -44
  213. data/spec/integration/chat/v1/credential_spec.rb +0 -219
  214. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -207
  215. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -280
  216. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -290
  217. data/spec/integration/chat/v1/service/channel_spec.rb +0 -272
  218. data/spec/integration/chat/v1/service/role_spec.rb +0 -260
  219. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -93
  220. data/spec/integration/chat/v1/service/user_spec.rb +0 -262
  221. data/spec/integration/chat/v1/service_spec.rb +0 -295
  222. data/spec/integration/chat/v2/credential_spec.rb +0 -219
  223. data/spec/integration/chat/v2/service/binding_spec.rb +0 -174
  224. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -207
  225. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -263
  226. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -406
  227. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -303
  228. data/spec/integration/chat/v2/service/channel_spec.rb +0 -282
  229. data/spec/integration/chat/v2/service/role_spec.rb +0 -260
  230. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -177
  231. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -247
  232. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  233. data/spec/integration/chat/v2/service_spec.rb +0 -350
  234. data/spec/integration/conversations/v1/configuration/webhook_spec.rb +0 -90
  235. data/spec/integration/conversations/v1/configuration_spec.rb +0 -87
  236. data/spec/integration/conversations/v1/conversation/message/delivery_receipt_spec.rb +0 -136
  237. data/spec/integration/conversations/v1/conversation/message_spec.rb +0 -409
  238. data/spec/integration/conversations/v1/conversation/participant_spec.rb +0 -402
  239. data/spec/integration/conversations/v1/conversation/webhook_spec.rb +0 -282
  240. data/spec/integration/conversations/v1/conversation_spec.rb +0 -278
  241. data/spec/integration/conversations/v1/credential_spec.rb +0 -219
  242. data/spec/integration/conversations/v1/role_spec.rb +0 -249
  243. data/spec/integration/conversations/v1/service/binding_spec.rb +0 -166
  244. data/spec/integration/conversations/v1/service/configuration/notification_spec.rb +0 -115
  245. data/spec/integration/conversations/v1/service/configuration_spec.rb +0 -89
  246. data/spec/integration/conversations/v1/service/conversation/message/delivery_receipt_spec.rb +0 -144
  247. data/spec/integration/conversations/v1/service/conversation/message_spec.rb +0 -429
  248. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +0 -427
  249. data/spec/integration/conversations/v1/service/conversation/webhook_spec.rb +0 -299
  250. data/spec/integration/conversations/v1/service/conversation_spec.rb +0 -289
  251. data/spec/integration/conversations/v1/service/role_spec.rb +0 -260
  252. data/spec/integration/conversations/v1/service/user_spec.rb +0 -241
  253. data/spec/integration/conversations/v1/service_spec.rb +0 -174
  254. data/spec/integration/conversations/v1/user_spec.rb +0 -231
  255. data/spec/integration/events/v1/event_type_spec.rb +0 -133
  256. data/spec/integration/events/v1/schema/schema_version_spec.rb +0 -126
  257. data/spec/integration/events/v1/schema_spec.rb +0 -46
  258. data/spec/integration/events/v1/sink/sink_test_spec.rb +0 -42
  259. data/spec/integration/events/v1/sink/sink_validate_spec.rb +0 -44
  260. data/spec/integration/events/v1/sink_spec.rb +0 -231
  261. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +0 -91
  262. data/spec/integration/events/v1/subscription_spec.rb +0 -292
  263. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -125
  264. data/spec/integration/fax/v1/fax_spec.rb +0 -267
  265. data/spec/integration/flex_api/v1/channel_spec.rb +0 -188
  266. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -578
  267. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -259
  268. data/spec/integration/flex_api/v1/web_channel_spec.rb +0 -216
  269. data/spec/integration/insights/v1/call/event_spec.rb +0 -166
  270. data/spec/integration/insights/v1/call/metric_spec.rb +0 -154
  271. data/spec/integration/insights/v1/call/summary_spec.rb +0 -64
  272. data/spec/integration/insights/v1/call_spec.rb +0 -46
  273. data/spec/integration/insights/v1/room/participant_spec.rb +0 -147
  274. data/spec/integration/insights/v1/room_spec.rb +0 -164
  275. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -219
  276. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -207
  277. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -280
  278. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -290
  279. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -272
  280. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -260
  281. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -93
  282. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -262
  283. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -295
  284. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -219
  285. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -174
  286. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -207
  287. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -263
  288. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -406
  289. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -303
  290. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -282
  291. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -260
  292. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -177
  293. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -247
  294. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  295. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -350
  296. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -336
  297. data/spec/integration/messaging/v1/brand_registration_spec.rb +0 -143
  298. data/spec/integration/messaging/v1/campaign_spec.rb +0 -194
  299. data/spec/integration/messaging/v1/deactivation_spec.rb +0 -40
  300. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -173
  301. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -198
  302. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -176
  303. data/spec/integration/messaging/v1/service_spec.rb +0 -267
  304. data/spec/integration/messaging/v1/use_case_spec.rb +0 -55
  305. data/spec/integration/monitor/v1/alert_spec.rb +0 -138
  306. data/spec/integration/monitor/v1/event_spec.rb +0 -148
  307. data/spec/integration/notify/v1/credential_spec.rb +0 -219
  308. data/spec/integration/notify/v1/service/binding_spec.rb +0 -222
  309. data/spec/integration/notify/v1/service/notification_spec.rb +0 -98
  310. data/spec/integration/notify/v1/service_spec.rb +0 -289
  311. data/spec/integration/numbers/v2/regulatory_compliance/bundle/evaluation_spec.rb +0 -620
  312. data/spec/integration/numbers/v2/regulatory_compliance/bundle/item_assignment_spec.rb +0 -195
  313. data/spec/integration/numbers/v2/regulatory_compliance/bundle_spec.rb +0 -258
  314. data/spec/integration/numbers/v2/regulatory_compliance/end_user_spec.rb +0 -238
  315. data/spec/integration/numbers/v2/regulatory_compliance/end_user_type_spec.rb +0 -141
  316. data/spec/integration/numbers/v2/regulatory_compliance/regulation_spec.rb +0 -181
  317. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_spec.rb +0 -250
  318. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_type_spec.rb +0 -131
  319. data/spec/integration/numbers/v2/regulatory_compliance_spec.rb +0 -12
  320. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -115
  321. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +0 -129
  322. data/spec/integration/preview/bulk_exports/export/job_spec.rb +0 -78
  323. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -77
  324. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -44
  325. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -234
  326. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -228
  327. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -244
  328. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -232
  329. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -241
  330. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -110
  331. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -224
  332. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -389
  333. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
  334. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
  335. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -162
  336. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -250
  337. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -201
  338. data/spec/integration/preview/sync/service/document_spec.rb +0 -252
  339. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -255
  340. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -201
  341. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -205
  342. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -255
  343. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -201
  344. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -205
  345. data/spec/integration/preview/sync/service_spec.rb +0 -241
  346. data/spec/integration/preview/trusted_comms/branded_channel/channel_spec.rb +0 -50
  347. data/spec/integration/preview/trusted_comms/branded_channel_spec.rb +0 -47
  348. data/spec/integration/preview/trusted_comms/brands_information_spec.rb +0 -45
  349. data/spec/integration/preview/trusted_comms/cps_spec.rb +0 -44
  350. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -58
  351. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -79
  352. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -79
  353. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -46
  354. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -207
  355. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -242
  356. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -236
  357. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -302
  358. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -79
  359. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -204
  360. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -249
  361. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -85
  362. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -49
  363. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -258
  364. data/spec/integration/preview/understand/assistant_spec.rb +0 -269
  365. data/spec/integration/preview/wireless/command_spec.rb +0 -167
  366. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -257
  367. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -50
  368. data/spec/integration/preview/wireless/sim_spec.rb +0 -207
  369. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -137
  370. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  371. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -128
  372. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  373. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -138
  374. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -55
  375. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  376. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -179
  377. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -61
  378. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  379. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -231
  380. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -133
  381. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -163
  382. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -240
  383. data/spec/integration/proxy/v1/service/session_spec.rb +0 -225
  384. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -225
  385. data/spec/integration/proxy/v1/service_spec.rb +0 -214
  386. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -93
  387. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -202
  388. data/spec/integration/serverless/v1/service/build/build_status_spec.rb +0 -48
  389. data/spec/integration/serverless/v1/service/build_spec.rb +0 -224
  390. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -133
  391. data/spec/integration/serverless/v1/service/environment/log_spec.rb +0 -97
  392. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -207
  393. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -170
  394. data/spec/integration/serverless/v1/service/function/function_version/function_version_content_spec.rb +0 -51
  395. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -96
  396. data/spec/integration/serverless/v1/service/function_spec.rb +0 -202
  397. data/spec/integration/serverless/v1/service_spec.rb +0 -205
  398. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -50
  399. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -53
  400. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -99
  401. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -168
  402. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -50
  403. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -53
  404. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -100
  405. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -214
  406. data/spec/integration/studio/v1/flow_spec.rb +0 -114
  407. data/spec/integration/studio/v2/flow/execution/execution_context_spec.rb +0 -50
  408. data/spec/integration/studio/v2/flow/execution/execution_step/execution_step_context_spec.rb +0 -53
  409. data/spec/integration/studio/v2/flow/execution/execution_step_spec.rb +0 -100
  410. data/spec/integration/studio/v2/flow/execution_spec.rb +0 -211
  411. data/spec/integration/studio/v2/flow/flow_revision_spec.rb +0 -110
  412. data/spec/integration/studio/v2/flow/test_user_spec.rb +0 -85
  413. data/spec/integration/studio/v2/flow_spec.rb +0 -251
  414. data/spec/integration/studio/v2/flow_validate_spec.rb +0 -46
  415. data/spec/integration/supersim/v1/command_spec.rb +0 -184
  416. data/spec/integration/supersim/v1/fleet_spec.rb +0 -222
  417. data/spec/integration/supersim/v1/network_access_profile/network_access_profile_network_spec.rb +0 -176
  418. data/spec/integration/supersim/v1/network_access_profile_spec.rb +0 -219
  419. data/spec/integration/supersim/v1/network_spec.rb +0 -137
  420. data/spec/integration/supersim/v1/sim_spec.rb +0 -323
  421. data/spec/integration/supersim/v1/usage_record_spec.rb +0 -647
  422. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -201
  423. data/spec/integration/sync/v1/service/document_spec.rb +0 -254
  424. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  425. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -201
  426. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -252
  427. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  428. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -201
  429. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -252
  430. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  431. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -244
  432. data/spec/integration/sync/v1/service_spec.rb +0 -261
  433. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -232
  434. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -163
  435. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -222
  436. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -312
  437. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -101
  438. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -83
  439. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -107
  440. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -145
  441. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -290
  442. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -325
  443. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -191
  444. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -185
  445. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -91
  446. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -88
  447. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -69
  448. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -115
  449. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -290
  450. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -96
  451. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -57
  452. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -70
  453. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -266
  454. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -93
  455. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -72
  456. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -104
  457. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -291
  458. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -189
  459. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -189
  460. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -248
  461. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -264
  462. data/spec/integration/trunking/v1/trunk/recording_spec.rb +0 -75
  463. data/spec/integration/trunking/v1/trunk_spec.rb +0 -281
  464. data/spec/integration/verify/v2/form_spec.rb +0 -47
  465. data/spec/integration/verify/v2/service/access_token_spec.rb +0 -44
  466. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +0 -288
  467. data/spec/integration/verify/v2/service/entity/factor_spec.rb +0 -277
  468. data/spec/integration/verify/v2/service/entity_spec.rb +0 -201
  469. data/spec/integration/verify/v2/service/messaging_configuration_spec.rb +0 -228
  470. data/spec/integration/verify/v2/service/rate_limit/bucket_spec.rb +0 -245
  471. data/spec/integration/verify/v2/service/rate_limit_spec.rb +0 -217
  472. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -80
  473. data/spec/integration/verify/v2/service/verification_spec.rb +0 -318
  474. data/spec/integration/verify/v2/service/webhook_spec.rb +0 -258
  475. data/spec/integration/verify/v2/service_spec.rb +0 -279
  476. data/spec/integration/video/v1/composition_hook_spec.rb +0 -407
  477. data/spec/integration/video/v1/composition_settings_spec.rb +0 -85
  478. data/spec/integration/video/v1/composition_spec.rb +0 -347
  479. data/spec/integration/video/v1/recording_settings_spec.rb +0 -85
  480. data/spec/integration/video/v1/recording_spec.rb +0 -176
  481. data/spec/integration/video/v1/room/recording_spec.rb +0 -185
  482. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -94
  483. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -103
  484. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -95
  485. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -187
  486. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +0 -89
  487. data/spec/integration/video/v1/room_spec.rb +0 -301
  488. data/spec/integration/voice/v1/byoc_trunk_spec.rb +0 -245
  489. data/spec/integration/voice/v1/connection_policy/connection_policy_target_spec.rb +0 -242
  490. data/spec/integration/voice/v1/connection_policy_spec.rb +0 -221
  491. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  492. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -60
  493. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -110
  494. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -75
  495. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  496. data/spec/integration/voice/v1/ip_record_spec.rb +0 -219
  497. data/spec/integration/voice/v1/source_ip_mapping_spec.rb +0 -216
  498. data/spec/integration/wireless/v1/command_spec.rb +0 -286
  499. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -277
  500. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -88
  501. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -114
  502. data/spec/integration/wireless/v1/sim_spec.rb +0 -325
  503. data/spec/integration/wireless/v1/usage_record_spec.rb +0 -110
  504. data/spec/jwt/access_token_spec.rb +0 -159
  505. data/spec/jwt/client_capability_spec.rb +0 -104
  506. data/spec/jwt/task_router_spec.rb +0 -172
  507. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  508. data/spec/rest/client_spec.rb +0 -255
  509. data/spec/security/request_validator_spec.rb +0 -125
  510. data/spec/spec_helper.rb +0 -38
  511. data/spec/support/fakeweb.rb +0 -2
  512. data/spec/twilio_spec.rb +0 -17
  513. data/spec/twiml/messaging_response_spec.rb +0 -235
  514. data/spec/twiml/voice_response_spec.rb +0 -847
  515. data/spec/util/configuration_spec.rb +0 -33
  516. data/spec/util/url_encode_spec.rb +0 -12
@@ -1,104 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Twilio::JWT::ClientCapability do
4
- describe 'initialization' do
5
- it 'should initialize without optionals' do
6
- clientCapability = Twilio::JWT::ClientCapability.new 'accountSid', 'authToken'
7
- expect(clientCapability.instance_variable_get('@account_sid')).to eq('accountSid')
8
- expect(clientCapability.instance_variable_get('@auth_token')).to eq('authToken')
9
- expect(clientCapability.instance_variable_get('@client_name')).to be_nil
10
- expect(clientCapability.instance_variable_get('@scopes')).to eq([])
11
- end
12
- end
13
-
14
- describe 'ClientCapability scopes' do
15
- before :each do
16
- @clientCapability = Twilio::JWT::ClientCapability.new 'accountSid', 'authToken'
17
- end
18
-
19
- it 'no capabilities' do
20
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq('')
21
- end
22
-
23
- it 'OutgoingClientScope sans params, client name' do
24
- @outgoingScope = Twilio::JWT::ClientCapability::OutgoingClientScope.new('test-application-sid')
25
- @clientCapability.add_scope(@outgoingScope)
26
- escope = 'scope:client:outgoing?appSid=test-application-sid'
27
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
28
- end
29
-
30
- it 'OutgoingClientScope with client-name' do
31
- @outgoingScope = Twilio::JWT::ClientCapability::OutgoingClientScope.new('test-application-sid', 'test-client-name')
32
- @clientCapability.add_scope(@outgoingScope)
33
- escope = 'scope:client:outgoing?appSid=test-application-sid&clientName=test-client-name'
34
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
35
- end
36
-
37
- it 'OutgoingClientScope with params' do
38
- @outgoingScope = Twilio::JWT::ClientCapability::OutgoingClientScope.new('test-application-sid', nil, {'params_key'=>'param_value'})
39
- @clientCapability.add_scope(@outgoingScope)
40
- escope = 'scope:client:outgoing?appSid=test-application-sid&appParams=params_key%3Dparam_value'
41
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
42
- end
43
-
44
- it 'IncomingClientScope' do
45
- @incomingScope = Twilio::JWT::ClientCapability::IncomingClientScope.new('test-client-name')
46
- @clientCapability.add_scope(@incomingScope)
47
- escope = 'scope:client:incoming?clientName=test-client-name'
48
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
49
- end
50
-
51
- it 'EventStreamScope sans filters' do
52
- @eventStreamScope = Twilio::JWT::ClientCapability::EventStreamScope.new
53
- @clientCapability.add_scope(@eventStreamScope)
54
- escope = 'scope:stream:subscribe?path=%2F2010-04-01%2FEvents'
55
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
56
- end
57
-
58
- it 'EventStreamScope with filters' do
59
- @eventStreamScope = Twilio::JWT::ClientCapability::EventStreamScope.new({'param_key'=>'param_value'})
60
- @clientCapability.add_scope(@eventStreamScope)
61
- escope = 'scope:stream:subscribe?path=%2F2010-04-01%2FEvents&params=param_key%3Dparam_value'
62
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
63
- end
64
-
65
- it 'OutgoingClientScope and IncomingClientScope' do
66
- @outgoingScope = Twilio::JWT::ClientCapability::OutgoingClientScope.new('test-application-sid')
67
- @clientCapability.add_scope(@outgoingScope)
68
- @incomingScope = Twilio::JWT::ClientCapability::IncomingClientScope.new('test-client-name')
69
- @clientCapability.add_scope(@incomingScope)
70
- escope = 'scope:client:outgoing?appSid=test-application-sid scope:client:incoming?clientName=test-client-name'
71
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
72
- end
73
-
74
- it 'complete payload' do
75
- @incomingScope = Twilio::JWT::ClientCapability::IncomingClientScope.new('test-client-name')
76
- @clientCapability.add_scope(@incomingScope)
77
- payload, _ = ::JWT.decode(@clientCapability.to_s, 'authToken', true, { algorithm: 'HS256' })
78
- escope = 'scope:client:incoming?clientName=test-client-name'
79
- expect(payload['iss']).to eq('accountSid')
80
- expect(payload['scope']).to eq(escope)
81
- expect(payload['exp']).to be > Time.now.to_i
82
- expect(payload['nbf']).to be <= Time.now.to_i
83
- end
84
- end
85
-
86
- describe 'ClientCapability constructor with scopes' do
87
- it 'Valid scopes in constructor' do
88
- @incomingScope = Twilio::JWT::ClientCapability::IncomingClientScope.new('test-client-name')
89
- @clientCapability = Twilio::JWT::ClientCapability.new 'accountSid', 'authToken', scopes: [@incomingScope]
90
- escope = 'scope:client:incoming?clientName=test-client-name'
91
- expect(@clientCapability.__send__(:_generate_payload)[:scope]).to eq(escope)
92
- end
93
- end
94
- end
95
-
96
- describe Twilio::JWT::Scope do
97
- it 'Scope raise exception' do
98
- class DummyScope
99
- include Twilio::JWT::Scope
100
- end
101
- @dummyScope = DummyScope.new
102
- expect { @dummyScope._generate_payload }.to raise_error(RuntimeError)
103
- end
104
- end
@@ -1,172 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'TaskRouter ' do
4
- def check_policy(method, url, policy, post_filter: {}, query_filter: {}, allow: true)
5
- expect(policy['url']).to eq(url)
6
- expect(policy['method']).to eq(method)
7
- expect(policy['post_filter']).to eq(post_filter)
8
- expect(policy['query_filter']).to eq(query_filter)
9
- expect(policy['allow']).to eq(allow)
10
- end
11
-
12
- describe Twilio::JWT::TaskRouterCapability do
13
- describe 'token initialization' do
14
- before :each do
15
- @taskRouterCapability = Twilio::JWT::TaskRouterCapability.new 'AC123', 'secret', 'WS456', 'CI123'
16
- end
17
-
18
- it 'generate default' do
19
- token = @taskRouterCapability.to_s
20
- payload, _ = JWT.decode token, 'secret'
21
- expect(payload['iss']).to eq('AC123')
22
- expect(payload['workspace_sid']).to eq('WS456')
23
- expect(payload['policies']).not_to be_nil
24
- expect(payload['policies'].size).to eq(2)
25
- end
26
-
27
- it 'add policy' do
28
- @policy = Twilio::JWT::TaskRouterCapability::Policy.new(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.workspace('WK123'), 'GET', true)
29
- @taskRouterCapability.add_policy(@policy)
30
- token = @taskRouterCapability.to_s
31
- payload, _ = JWT.decode token, 'secret'
32
- expect(payload['policies']).not_to be_nil
33
- expect(payload['policies'].size).to eq(3)
34
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123', payload['policies'][0])
35
- check_policy('GET', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', payload['policies'][1])
36
- check_policy('POST', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', payload['policies'][2])
37
- end
38
- end
39
- end
40
-
41
- describe Twilio::JWT::TaskRouterCapability::Policy do
42
- describe 'policy' do
43
- it 'initialize' do
44
- @policy = Twilio::JWT::TaskRouterCapability::Policy.new('test-url',
45
- 'GET',
46
- true,
47
- { 'test-post-key' => 'test-post-value' },
48
- 'test-query-key' => 'test-query-value')
49
-
50
- payload = Hash[@policy._generate_payload.map { |k, v| [k.to_s, v] }]
51
- check_policy('GET',
52
- 'test-url',
53
- payload,
54
- post_filter: { 'test-post-key' => 'test-post-value' },
55
- query_filter: { 'test-query-key' => 'test-query-value' },
56
- allow: true)
57
- end
58
- end
59
-
60
- describe Twilio::JWT::TaskRouterCapability::TaskRouterUtils do
61
- describe 'urls' do
62
- it 'workspaces' do
63
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces'
64
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.workspaces).to eq(expected_url)
65
- end
66
-
67
- it 'workspace' do
68
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123'
69
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.workspace('WK123')).to eq(expected_url)
70
- end
71
-
72
- it 'all_workspaces' do
73
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/**'
74
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_workspaces).to eq(expected_url)
75
- end
76
-
77
- it 'tasks' do
78
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Tasks'
79
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.tasks('WK123')).to eq(expected_url)
80
- end
81
-
82
- it 'task' do
83
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Tasks/TK123'
84
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.task('WK123', 'TK123')).to eq(expected_url)
85
- end
86
-
87
- it 'all_tasks' do
88
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Tasks/**'
89
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_tasks('WK123')).to eq(expected_url)
90
- end
91
-
92
- it 'task_queues' do
93
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/TaskQueues'
94
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.task_queues('WK123')).to eq(expected_url)
95
- end
96
-
97
- it 'task_queue' do
98
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/TaskQueues/WQ123'
99
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.task_queue('WK123', 'WQ123')).to eq(expected_url)
100
- end
101
-
102
- it 'all_task_queues' do
103
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/TaskQueues/**'
104
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_task_queues('WK123')).to eq(expected_url)
105
- end
106
-
107
- it 'activities' do
108
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/AT123/Activities'
109
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.activities('AT123')).to eq(expected_url)
110
- end
111
-
112
- it 'activity' do
113
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Activities/AT123'
114
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.activity('WK123', 'AT123')).to eq(expected_url)
115
- end
116
-
117
- it 'all_activities' do
118
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Activities/**'
119
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_activities('WK123')).to eq(expected_url)
120
- end
121
-
122
- it 'workers' do
123
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers'
124
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.workers('WK123')).to eq(expected_url)
125
- end
126
-
127
- it 'worker' do
128
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123'
129
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.worker('WK123', 'WT123')).to eq(expected_url)
130
- end
131
-
132
- it 'all_workers' do
133
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/**'
134
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_workers('WK123')).to eq(expected_url)
135
- end
136
-
137
- it 'reservations' do
138
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations'
139
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.reservations('WK123', 'WT123')).to eq(expected_url)
140
- end
141
-
142
- it 'reservation' do
143
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations/RS123'
144
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.reservation('WK123', 'WT123', 'RS123')).to eq(expected_url)
145
- end
146
-
147
- it 'all_reservations' do
148
- expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations/**'
149
- expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_reservations('WK123', 'WT123')).to eq(expected_url)
150
- end
151
- end
152
-
153
- describe 'default policies' do
154
- it 'default web_socket_policies' do
155
- @policies = Twilio::JWT::TaskRouterCapability::TaskRouterUtils.web_socket_policies('AC123', 'CI123')
156
- get, post = @policies.map(&:_generate_payload)
157
- check_policy('GET', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', Hash[get.map { |k, v| [k.to_s, v] }])
158
- check_policy('POST', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', Hash[post.map { |k, v| [k.to_s, v] }])
159
- end
160
-
161
- it 'default worker policies' do
162
- @policies = Twilio::JWT::TaskRouterCapability::TaskRouterUtils.worker_policies('WK123', 'WT123')
163
- payload = @policies.map(&:_generate_payload)
164
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Activities', Hash[payload[0].map { |k, v| [k.to_s, v] }])
165
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Tasks/**', Hash[payload[1].map { |k, v| [k.to_s, v] }])
166
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations/**', Hash[payload[2].map { |k, v| [k.to_s, v] }])
167
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123', Hash[payload[3].map { |k, v| [k.to_s, v] }])
168
- end
169
- end
170
- end
171
- end
172
- end
@@ -1,106 +0,0 @@
1
- require 'spec_helper'
2
- require 'rack/mock'
3
-
4
- describe Rack::TwilioWebhookAuthentication do
5
- before do
6
- @app = ->(_env) { [200, { 'Content-Type' => 'text/plain' }, ['Hello']] }
7
- end
8
-
9
- describe 'new' do
10
- it 'should initialize with an app, auth token and a path' do
11
- expect do
12
- Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/)
13
- end.not_to raise_error
14
- end
15
-
16
- it 'should initialize with an app, auth token and paths' do
17
- expect do
18
- Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/, /\/sms/)
19
- end.not_to raise_error
20
- end
21
-
22
- it 'should initialize with an app, dynamic token and paths' do
23
- expect do
24
- Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/, /\/sms/)
25
- end.not_to raise_error
26
- end
27
- end
28
-
29
- describe 'calling against one path with dynamic auth token' do
30
- it 'should allow a request through if it validates' do
31
- auth_token = 'qwerty'
32
- account_sid = 12_345
33
- expect_any_instance_of(Rack::Request).to receive(:post?).and_return(true)
34
- expect_any_instance_of(Rack::Request).to receive(:POST).and_return({ 'AccountSid' => account_sid })
35
- @middleware = Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/) { |asid| auth_token }
36
- request_validator = double('RequestValidator')
37
- expect(Twilio::Security::RequestValidator).to receive(:new).with(auth_token).and_return(request_validator)
38
- expect(request_validator).to receive(:validate).and_return(true)
39
- request = Rack::MockRequest.env_for('/voice')
40
- status, headers, body = @middleware.call(request)
41
- expect(status).to be(200)
42
- end
43
- end
44
-
45
- describe 'calling against one path' do
46
- before do
47
- @middleware = Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/)
48
- end
49
-
50
- it 'should not intercept when the path doesn\'t match' do
51
- expect(Twilio::Security::RequestValidator).to_not receive(:validate)
52
- request = Rack::MockRequest.env_for('/sms')
53
- status, headers, body = @middleware.call(request)
54
- expect(status).to be(200)
55
- end
56
-
57
- it 'should allow a request through if it validates' do
58
- expect_any_instance_of(Twilio::Security::RequestValidator).to(
59
- receive(:validate).and_return(true)
60
- )
61
- request = Rack::MockRequest.env_for('/voice')
62
- status, headers, body = @middleware.call(request)
63
- expect(status).to be(200)
64
- end
65
-
66
- it 'should short circuit a request to 403 if it does not validate' do
67
- expect_any_instance_of(Twilio::Security::RequestValidator).to(
68
- receive(:validate).and_return(false)
69
- )
70
- request = Rack::MockRequest.env_for('/voice')
71
- status, headers, body = @middleware.call(request)
72
- expect(status).to be(403)
73
- end
74
- end
75
-
76
- describe 'calling against many paths' do
77
- before do
78
- @middleware = Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/, /\/sms/)
79
- end
80
-
81
- it 'should not intercept when the path doesn\'t match' do
82
- expect(Twilio::Security::RequestValidator).to_not receive(:validate)
83
- request = Rack::MockRequest.env_for('icesms')
84
- status, headers, body = @middleware.call(request)
85
- expect(status).to be(200)
86
- end
87
-
88
- it 'shold allow a request through if it validates' do
89
- expect_any_instance_of(Twilio::Security::RequestValidator).to(
90
- receive(:validate).and_return(true)
91
- )
92
- request = Rack::MockRequest.env_for('/sms')
93
- status, headers, body = @middleware.call(request)
94
- expect(status).to be(200)
95
- end
96
-
97
- it 'should short circuit a request to 403 if it does not validate' do
98
- expect_any_instance_of(Twilio::Security::RequestValidator).to(
99
- receive(:validate).and_return(false)
100
- )
101
- request = Rack::MockRequest.env_for('/sms')
102
- status, headers, body = @middleware.call(request)
103
- expect(status).to be(403)
104
- end
105
- end
106
- end
@@ -1,255 +0,0 @@
1
- require 'spec_helper'
2
- require 'logger'
3
-
4
- describe Twilio::REST::ObsoleteClient do
5
- it 'raise an exception' do
6
- expect { Twilio::REST::ObsoleteClient.new }.to raise_error(Twilio::REST::ObsoleteError)
7
- end
8
- end
9
-
10
- describe Twilio::REST::BaseClient do
11
- it 'raise an exception' do
12
- expect { Twilio::REST::BaseClient.new }.to raise_error(Twilio::REST::ObsoleteError)
13
- end
14
- end
15
-
16
- describe Twilio::REST::IpMessagingClient do
17
- it 'raise an exception' do
18
- expect { Twilio::REST::IpMessagingClient.new }.to raise_error(Twilio::REST::ObsoleteError)
19
- end
20
- end
21
-
22
- describe Twilio::REST::LookupsClient do
23
- it 'raise an exception' do
24
- expect { Twilio::REST::LookupsClient.new }.to raise_error(Twilio::REST::ObsoleteError)
25
- end
26
- end
27
-
28
- describe Twilio::REST::MonitorClient do
29
- it 'raise an exception' do
30
- expect { Twilio::REST::MonitorClient.new }.to raise_error(Twilio::REST::ObsoleteError)
31
- end
32
- end
33
-
34
- describe Twilio::REST::PricingClient do
35
- it 'raise an exception' do
36
- expect { Twilio::REST::PricingClient.new }.to raise_error(Twilio::REST::ObsoleteError)
37
- end
38
- end
39
-
40
- describe Twilio::REST::TaskRouterClient do
41
- it 'raise an exception' do
42
- expect { Twilio::REST::TaskRouterClient.new }.to raise_error(Twilio::REST::ObsoleteError)
43
- end
44
- end
45
-
46
- describe Twilio::REST::TrunkingClient do
47
- it 'raise an exception' do
48
- expect { Twilio::REST::TrunkingClient.new }.to raise_error(Twilio::REST::ObsoleteError)
49
- end
50
- end
51
-
52
- describe Twilio::REST::Client do
53
- context 'configuration' do
54
- before do
55
- Twilio.configure do |config|
56
- config.account_sid = 'someSid'
57
- config.auth_token = 'someToken'
58
- config.http_client = 'someClient'
59
- config.region = 'someRegion'
60
- config.edge = 'someEdge'
61
- config.logger = 'someLogger'
62
- end
63
- end
64
-
65
- it 'uses the global configuration by default' do
66
- @client = Twilio::REST::Client.new
67
- expect(@client.account_sid).to eq('someSid')
68
- expect(@client.auth_token).to eq('someToken')
69
- expect(@client.http_client).to eq('someClient')
70
- expect(@client.region).to eq('someRegion')
71
- expect(@client.edge).to eq('someEdge')
72
- expect(@client.logger).to eq('someLogger')
73
- end
74
-
75
- it 'uses the arguments over global configuration' do
76
- @client = Twilio::REST::Client.new('myUser', 'myPassword', nil, 'myRegion', 'myClient', 'myLogger')
77
- @client.edge = 'myEdge'
78
- expect(@client.account_sid).to eq('myUser')
79
- expect(@client.auth_token).to eq('myPassword')
80
- expect(@client.http_client).to eq('myClient')
81
- expect(@client.region).to eq('myRegion')
82
- expect(@client.edge).to eq('myEdge')
83
- expect(@client.logger).to eq('myLogger')
84
- end
85
-
86
- class MyVersion < Twilio::REST::Version
87
- def initialize(domain)
88
- super
89
- @version = 'v1'
90
- end
91
- end
92
-
93
- class MyDomain < Twilio::REST::Domain
94
- def initialize(client)
95
- super
96
- @host = 'twilio.com'
97
- @base_url = 'https://twilio.com'
98
- @port = 443
99
- end
100
- end
101
- end
102
-
103
- context 'validation' do
104
- before :all do
105
- Twilio.configure do |config|
106
- config.account_sid = 'someSid'
107
- config.auth_token = 'someToken'
108
- config.http_client = 'someClient'
109
- config.region = nil
110
- config.edge = nil
111
- config.logger = nil
112
- end
113
- end
114
-
115
- it 'successfully validates the working SSL certificate' do
116
- @holodeck.mock Twilio::Response.new(200, '')
117
- expect { @client.validate_ssl_certificate }.not_to raise_error
118
- end
119
-
120
- it 'fails to validate broken SSL certificates' do
121
- @holodeck.mock Twilio::Response.new(504, '')
122
- expect { @client.validate_ssl_certificate }.to raise_error(Twilio::REST::RestError)
123
- end
124
-
125
- it 'translates bad request error params' do
126
- @domain = MyDomain.new(@client)
127
- @version = MyVersion.new(@domain)
128
- @error_message = '{
129
- "code": 20001,
130
- "message": "Bad request",
131
- "more_info": "https://www.twilio.com/docs/errors/20001",
132
- "status": 400,
133
- "details": {
134
- "foo":"bar"
135
- }}'
136
- @holodeck.mock Twilio::Response.new(400, @error_message)
137
- expect {
138
- @version.fetch('GET', 'http://foobar.com')
139
- }.to raise_error { |error|
140
- expect(error).to be_a(Twilio::REST::RestError)
141
- expect(error.status_code).to eq(400)
142
- expect(error.code).to eq(20_001)
143
- expect(error.details).to eq({ 'foo' => 'bar' })
144
- expect(error.error_message).to eq('Bad request')
145
- expect(error.more_info).to eq('https://www.twilio.com/docs/errors/20001')
146
- }
147
- end
148
- end
149
-
150
- context 'logging' do
151
- it 'logs the call details' do
152
- @client.logger = Logger.new(STDOUT)
153
- @holodeck.mock Twilio::Response.new(200, {})
154
- expect {
155
- @client.request('host', 'port', 'GET', 'http://foobar.com')
156
- }.to output(/Host:foobar.com/).to_stdout_from_any_process
157
- end
158
-
159
- it 'does not log when the logger instance is not passed' do
160
- @holodeck.mock Twilio::Response.new(200, {})
161
- expect {
162
- @client.request('host', 'port', 'GET', 'http://foobar.com')
163
- }.to_not output(/Host:foobar.com/).to_stdout_from_any_process
164
- end
165
- end
166
-
167
- describe '#build_uri' do
168
- before(:all) do
169
- Twilio.configure do |config|
170
- config.account_sid = 'username'
171
- config.auth_token = 'password'
172
- config.region = nil
173
- config.edge = nil
174
- end
175
- end
176
-
177
- context 'no region or edge in url' do
178
- it "doesn't set region or edge" do
179
- @client = Twilio::REST::Client.new
180
- expect(@client.build_uri('https://api.twilio.com')).to eq('https://api.twilio.com')
181
- end
182
-
183
- it 'uses the default region if edge set' do
184
- @client = Twilio::REST::Client.new
185
- @client.edge = 'edge'
186
- expect(@client.build_uri('https://api.twilio.com')).to eq('https://api.edge.us1.twilio.com')
187
- end
188
-
189
- it 'sets region' do
190
- @client = Twilio::REST::Client.new
191
- @client.region = 'region'
192
- expect(@client.build_uri('https://api.twilio.com')).to eq('https://api.region.twilio.com')
193
- end
194
-
195
- it 'sets region and edge' do
196
- @client = Twilio::REST::Client.new
197
- @client.region = 'region'
198
- @client.edge = 'edge'
199
- expect(@client.build_uri('https://api.twilio.com')).to eq('https://api.edge.region.twilio.com')
200
- end
201
- end
202
-
203
- context 'region in url' do
204
- it 'uses url region' do
205
- @client = Twilio::REST::Client.new
206
- expect(@client.build_uri('https://api.urlRegion.twilio.com')).to eq('https://api.urlRegion.twilio.com')
207
- end
208
-
209
- it 'uses client edge and url region' do
210
- @client = Twilio::REST::Client.new
211
- @client.edge = 'edge'
212
- expect(@client.build_uri('https://api.urlRegion.twilio.com')).to eq('https://api.edge.urlRegion.twilio.com')
213
- end
214
-
215
- it 'prefers client region' do
216
- @client = Twilio::REST::Client.new
217
- @client.region = 'region'
218
- expect(@client.build_uri('https://api.urlRegion.twilio.com')).to eq('https://api.region.twilio.com')
219
- end
220
-
221
- it 'uses client edge and prefers client region' do
222
- @client = Twilio::REST::Client.new
223
- @client.region = 'region'
224
- @client.edge = 'edge'
225
- expect(@client.build_uri('https://api.urlRegion.twilio.com')).to eq('https://api.edge.region.twilio.com')
226
- end
227
- end
228
-
229
- context 'region and edge in url' do
230
- it 'uses url region and edge' do
231
- @client = Twilio::REST::Client.new
232
- expect(@client.build_uri('https://api.urlEdge.urlRegion.twilio.com')).to eq('https://api.urlEdge.urlRegion.twilio.com')
233
- end
234
-
235
- it 'prefers client edge' do
236
- @client = Twilio::REST::Client.new
237
- @client.edge = 'edge'
238
- expect(@client.build_uri('https://api.urlEdge.urlRegion.twilio.com')).to eq('https://api.edge.urlRegion.twilio.com')
239
- end
240
-
241
- it 'prefers client region' do
242
- @client = Twilio::REST::Client.new
243
- @client.region = 'region'
244
- expect(@client.build_uri('https://api.urlEdge.urlRegion.twilio.com')).to eq('https://api.urlEdge.region.twilio.com')
245
- end
246
-
247
- it 'prefers client region and edge' do
248
- @client = Twilio::REST::Client.new
249
- @client.region = 'region'
250
- @client.edge = 'edge'
251
- expect(@client.build_uri('https://api.urlEdge.urlRegion.twilio.com')).to eq('https://api.edge.region.twilio.com')
252
- end
253
- end
254
- end
255
- end