twilio-ruby 5.50.0 → 5.51.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 (444) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +32 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +1 -4
  5. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +2 -2
  6. data/lib/twilio-ruby/rest/messaging.rb +12 -0
  7. data/lib/twilio-ruby/rest/messaging/v1.rb +14 -0
  8. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +143 -0
  9. data/lib/twilio-ruby/rest/messaging/v1/service.rb +43 -0
  10. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +266 -0
  11. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +125 -0
  12. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  13. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +16 -0
  14. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +12 -13
  15. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +10 -2
  16. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +24 -0
  17. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +0 -62
  18. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +269 -0
  19. data/lib/twilio-ruby/version.rb +1 -1
  20. data/twilio-ruby.gemspec +1 -1
  21. metadata +8 -849
  22. data/spec/framework/request_spec.rb +0 -36
  23. data/spec/framework/serialize_spec.rb +0 -80
  24. data/spec/framework/version_spec.rb +0 -219
  25. data/spec/holodeck/holodeck.rb +0 -66
  26. data/spec/holodeck/hologram.rb +0 -4
  27. data/spec/http/http_client_spec.rb +0 -122
  28. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +0 -44
  29. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -222
  30. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -222
  31. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  32. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +0 -69
  33. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -106
  34. data/spec/integration/api/v2010/account/address_spec.rb +0 -269
  35. data/spec/integration/api/v2010/account/application_spec.rb +0 -274
  36. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -137
  37. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -102
  38. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -102
  39. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -101
  40. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -102
  41. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -102
  42. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -101
  43. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -102
  44. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -128
  45. data/spec/integration/api/v2010/account/balance_spec.rb +0 -44
  46. data/spec/integration/api/v2010/account/call/event_spec.rb +0 -102
  47. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -138
  48. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -149
  49. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -143
  50. data/spec/integration/api/v2010/account/call/payment_spec.rb +0 -135
  51. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  52. data/spec/integration/api/v2010/account/call_spec.rb +0 -660
  53. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -768
  54. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -234
  55. data/spec/integration/api/v2010/account/conference_spec.rb +0 -716
  56. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -197
  57. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
  58. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -220
  59. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -189
  60. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -189
  61. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -189
  62. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -358
  63. data/spec/integration/api/v2010/account/key_spec.rb +0 -176
  64. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -49
  65. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -161
  66. data/spec/integration/api/v2010/account/message_spec.rb +0 -544
  67. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -46
  68. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -46
  69. data/spec/integration/api/v2010/account/notification_spec.rb +0 -138
  70. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -185
  71. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -208
  72. data/spec/integration/api/v2010/account/queue_spec.rb +0 -244
  73. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -174
  74. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -165
  75. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -173
  76. data/spec/integration/api/v2010/account/recording_spec.rb +0 -184
  77. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -179
  78. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -176
  79. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -252
  80. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -241
  81. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -217
  82. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -217
  83. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  84. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -217
  85. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  86. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  87. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -207
  88. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -217
  89. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -303
  90. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -254
  91. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -251
  92. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  93. data/spec/integration/api/v2010/account/token_spec.rb +0 -71
  94. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -166
  95. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
  96. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
  97. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
  98. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
  99. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
  100. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
  101. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
  102. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
  103. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
  104. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -281
  105. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  106. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  107. data/spec/integration/api/v2010/account_spec.rb +0 -327
  108. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -79
  109. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -46
  110. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -207
  111. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -242
  112. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -236
  113. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -290
  114. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -79
  115. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -204
  116. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -249
  117. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -85
  118. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -49
  119. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -258
  120. data/spec/integration/autopilot/v1/assistant/webhook_spec.rb +0 -242
  121. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -277
  122. data/spec/integration/autopilot/v1/restore_assistant_spec.rb +0 -53
  123. data/spec/integration/bulkexports/v1/export/day_spec.rb +0 -115
  124. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +0 -133
  125. data/spec/integration/bulkexports/v1/export/job_spec.rb +0 -80
  126. data/spec/integration/bulkexports/v1/export_configuration_spec.rb +0 -77
  127. data/spec/integration/bulkexports/v1/export_spec.rb +0 -44
  128. data/spec/integration/chat/v1/credential_spec.rb +0 -219
  129. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -207
  130. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -280
  131. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -290
  132. data/spec/integration/chat/v1/service/channel_spec.rb +0 -272
  133. data/spec/integration/chat/v1/service/role_spec.rb +0 -260
  134. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -93
  135. data/spec/integration/chat/v1/service/user_spec.rb +0 -262
  136. data/spec/integration/chat/v1/service_spec.rb +0 -295
  137. data/spec/integration/chat/v2/credential_spec.rb +0 -219
  138. data/spec/integration/chat/v2/service/binding_spec.rb +0 -174
  139. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -207
  140. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -263
  141. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -406
  142. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -303
  143. data/spec/integration/chat/v2/service/channel_spec.rb +0 -282
  144. data/spec/integration/chat/v2/service/role_spec.rb +0 -260
  145. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -177
  146. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -247
  147. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  148. data/spec/integration/chat/v2/service_spec.rb +0 -350
  149. data/spec/integration/conversations/v1/configuration/webhook_spec.rb +0 -90
  150. data/spec/integration/conversations/v1/configuration_spec.rb +0 -87
  151. data/spec/integration/conversations/v1/conversation/message/delivery_receipt_spec.rb +0 -136
  152. data/spec/integration/conversations/v1/conversation/message_spec.rb +0 -409
  153. data/spec/integration/conversations/v1/conversation/participant_spec.rb +0 -402
  154. data/spec/integration/conversations/v1/conversation/webhook_spec.rb +0 -282
  155. data/spec/integration/conversations/v1/conversation_spec.rb +0 -278
  156. data/spec/integration/conversations/v1/credential_spec.rb +0 -219
  157. data/spec/integration/conversations/v1/role_spec.rb +0 -249
  158. data/spec/integration/conversations/v1/service/binding_spec.rb +0 -166
  159. data/spec/integration/conversations/v1/service/configuration/notification_spec.rb +0 -115
  160. data/spec/integration/conversations/v1/service/configuration_spec.rb +0 -89
  161. data/spec/integration/conversations/v1/service/conversation/message/delivery_receipt_spec.rb +0 -144
  162. data/spec/integration/conversations/v1/service/conversation/message_spec.rb +0 -429
  163. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +0 -427
  164. data/spec/integration/conversations/v1/service/conversation/webhook_spec.rb +0 -299
  165. data/spec/integration/conversations/v1/service/conversation_spec.rb +0 -289
  166. data/spec/integration/conversations/v1/service/role_spec.rb +0 -260
  167. data/spec/integration/conversations/v1/service/user_spec.rb +0 -241
  168. data/spec/integration/conversations/v1/service_spec.rb +0 -174
  169. data/spec/integration/conversations/v1/user_spec.rb +0 -231
  170. data/spec/integration/events/v1/event_type_spec.rb +0 -133
  171. data/spec/integration/events/v1/schema/schema_version_spec.rb +0 -126
  172. data/spec/integration/events/v1/schema_spec.rb +0 -46
  173. data/spec/integration/events/v1/sink/sink_test_spec.rb +0 -42
  174. data/spec/integration/events/v1/sink/sink_validate_spec.rb +0 -44
  175. data/spec/integration/events/v1/sink_spec.rb +0 -231
  176. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +0 -225
  177. data/spec/integration/events/v1/subscription_spec.rb +0 -292
  178. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -125
  179. data/spec/integration/fax/v1/fax_spec.rb +0 -267
  180. data/spec/integration/flex_api/v1/channel_spec.rb +0 -188
  181. data/spec/integration/flex_api/v1/configuration_spec.rb +0 -578
  182. data/spec/integration/flex_api/v1/flex_flow_spec.rb +0 -259
  183. data/spec/integration/flex_api/v1/web_channel_spec.rb +0 -216
  184. data/spec/integration/insights/v1/call/event_spec.rb +0 -166
  185. data/spec/integration/insights/v1/call/metric_spec.rb +0 -154
  186. data/spec/integration/insights/v1/call/summary_spec.rb +0 -64
  187. data/spec/integration/insights/v1/call_spec.rb +0 -46
  188. data/spec/integration/insights/v1/room/participant_spec.rb +0 -147
  189. data/spec/integration/insights/v1/room_spec.rb +0 -164
  190. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -219
  191. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -207
  192. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -280
  193. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -290
  194. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -272
  195. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -260
  196. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -93
  197. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -262
  198. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -295
  199. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -219
  200. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -174
  201. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -207
  202. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -263
  203. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -406
  204. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -303
  205. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -282
  206. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -260
  207. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -177
  208. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -247
  209. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  210. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -350
  211. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -336
  212. data/spec/integration/messaging/v1/brand_registration_spec.rb +0 -143
  213. data/spec/integration/messaging/v1/deactivation_spec.rb +0 -40
  214. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -173
  215. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -198
  216. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -176
  217. data/spec/integration/messaging/v1/service_spec.rb +0 -267
  218. data/spec/integration/monitor/v1/alert_spec.rb +0 -138
  219. data/spec/integration/monitor/v1/event_spec.rb +0 -148
  220. data/spec/integration/notify/v1/credential_spec.rb +0 -219
  221. data/spec/integration/notify/v1/service/binding_spec.rb +0 -222
  222. data/spec/integration/notify/v1/service/notification_spec.rb +0 -98
  223. data/spec/integration/notify/v1/service_spec.rb +0 -289
  224. data/spec/integration/numbers/v2/regulatory_compliance/bundle/evaluation_spec.rb +0 -620
  225. data/spec/integration/numbers/v2/regulatory_compliance/bundle/item_assignment_spec.rb +0 -195
  226. data/spec/integration/numbers/v2/regulatory_compliance/bundle_spec.rb +0 -258
  227. data/spec/integration/numbers/v2/regulatory_compliance/end_user_spec.rb +0 -238
  228. data/spec/integration/numbers/v2/regulatory_compliance/end_user_type_spec.rb +0 -141
  229. data/spec/integration/numbers/v2/regulatory_compliance/regulation_spec.rb +0 -181
  230. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_spec.rb +0 -250
  231. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_type_spec.rb +0 -131
  232. data/spec/integration/numbers/v2/regulatory_compliance_spec.rb +0 -12
  233. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -115
  234. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +0 -129
  235. data/spec/integration/preview/bulk_exports/export/job_spec.rb +0 -78
  236. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -77
  237. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -44
  238. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -234
  239. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -228
  240. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -244
  241. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -232
  242. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -241
  243. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -110
  244. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -224
  245. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -389
  246. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
  247. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
  248. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -162
  249. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -250
  250. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -201
  251. data/spec/integration/preview/sync/service/document_spec.rb +0 -252
  252. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -255
  253. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -201
  254. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -205
  255. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -255
  256. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -201
  257. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -205
  258. data/spec/integration/preview/sync/service_spec.rb +0 -241
  259. data/spec/integration/preview/trusted_comms/branded_channel/channel_spec.rb +0 -50
  260. data/spec/integration/preview/trusted_comms/branded_channel_spec.rb +0 -47
  261. data/spec/integration/preview/trusted_comms/brands_information_spec.rb +0 -45
  262. data/spec/integration/preview/trusted_comms/cps_spec.rb +0 -44
  263. data/spec/integration/preview/trusted_comms/current_call_spec.rb +0 -58
  264. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -79
  265. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -79
  266. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -46
  267. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -207
  268. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -242
  269. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -236
  270. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -302
  271. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -79
  272. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -204
  273. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -249
  274. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -85
  275. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -49
  276. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -258
  277. data/spec/integration/preview/understand/assistant_spec.rb +0 -269
  278. data/spec/integration/preview/wireless/command_spec.rb +0 -167
  279. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -257
  280. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -50
  281. data/spec/integration/preview/wireless/sim_spec.rb +0 -207
  282. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -137
  283. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  284. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -128
  285. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  286. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -138
  287. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -55
  288. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  289. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -179
  290. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -61
  291. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  292. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -231
  293. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -133
  294. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -163
  295. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -240
  296. data/spec/integration/proxy/v1/service/session_spec.rb +0 -225
  297. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -225
  298. data/spec/integration/proxy/v1/service_spec.rb +0 -214
  299. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +0 -93
  300. data/spec/integration/serverless/v1/service/asset_spec.rb +0 -202
  301. data/spec/integration/serverless/v1/service/build/build_status_spec.rb +0 -48
  302. data/spec/integration/serverless/v1/service/build_spec.rb +0 -224
  303. data/spec/integration/serverless/v1/service/environment/deployment_spec.rb +0 -133
  304. data/spec/integration/serverless/v1/service/environment/log_spec.rb +0 -97
  305. data/spec/integration/serverless/v1/service/environment/variable_spec.rb +0 -207
  306. data/spec/integration/serverless/v1/service/environment_spec.rb +0 -170
  307. data/spec/integration/serverless/v1/service/function/function_version/function_version_content_spec.rb +0 -51
  308. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +0 -96
  309. data/spec/integration/serverless/v1/service/function_spec.rb +0 -202
  310. data/spec/integration/serverless/v1/service_spec.rb +0 -205
  311. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -50
  312. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -53
  313. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -99
  314. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -168
  315. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -50
  316. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -53
  317. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -100
  318. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -214
  319. data/spec/integration/studio/v1/flow_spec.rb +0 -114
  320. data/spec/integration/studio/v2/flow/execution/execution_context_spec.rb +0 -50
  321. data/spec/integration/studio/v2/flow/execution/execution_step/execution_step_context_spec.rb +0 -53
  322. data/spec/integration/studio/v2/flow/execution/execution_step_spec.rb +0 -100
  323. data/spec/integration/studio/v2/flow/execution_spec.rb +0 -211
  324. data/spec/integration/studio/v2/flow/flow_revision_spec.rb +0 -110
  325. data/spec/integration/studio/v2/flow/test_user_spec.rb +0 -85
  326. data/spec/integration/studio/v2/flow_spec.rb +0 -251
  327. data/spec/integration/studio/v2/flow_validate_spec.rb +0 -46
  328. data/spec/integration/supersim/v1/command_spec.rb +0 -184
  329. data/spec/integration/supersim/v1/fleet_spec.rb +0 -234
  330. data/spec/integration/supersim/v1/network_access_profile/network_access_profile_network_spec.rb +0 -176
  331. data/spec/integration/supersim/v1/network_access_profile_spec.rb +0 -219
  332. data/spec/integration/supersim/v1/network_spec.rb +0 -137
  333. data/spec/integration/supersim/v1/sim_spec.rb +0 -323
  334. data/spec/integration/supersim/v1/sms_command_spec.rb +0 -184
  335. data/spec/integration/supersim/v1/usage_record_spec.rb +0 -647
  336. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -201
  337. data/spec/integration/sync/v1/service/document_spec.rb +0 -254
  338. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  339. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -201
  340. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -252
  341. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  342. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -201
  343. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -252
  344. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  345. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -244
  346. data/spec/integration/sync/v1/service_spec.rb +0 -261
  347. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -232
  348. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -163
  349. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -222
  350. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -312
  351. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -101
  352. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -83
  353. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -107
  354. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -145
  355. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -290
  356. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -327
  357. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -191
  358. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -185
  359. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -91
  360. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -88
  361. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -69
  362. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -115
  363. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -290
  364. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -96
  365. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -57
  366. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -70
  367. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -266
  368. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -93
  369. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -72
  370. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -104
  371. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -291
  372. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -189
  373. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -189
  374. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -248
  375. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -264
  376. data/spec/integration/trunking/v1/trunk/recording_spec.rb +0 -75
  377. data/spec/integration/trunking/v1/trunk_spec.rb +0 -281
  378. data/spec/integration/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment_spec.rb +0 -192
  379. data/spec/integration/trusthub/v1/customer_profiles/customer_profiles_entity_assignments_spec.rb +0 -186
  380. data/spec/integration/trusthub/v1/customer_profiles/customer_profiles_evaluations_spec.rb +0 -615
  381. data/spec/integration/trusthub/v1/customer_profiles_spec.rb +0 -255
  382. data/spec/integration/trusthub/v1/end_user_spec.rb +0 -247
  383. data/spec/integration/trusthub/v1/end_user_type_spec.rb +0 -176
  384. data/spec/integration/trusthub/v1/policies_spec.rb +0 -252
  385. data/spec/integration/trusthub/v1/supporting_document_spec.rb +0 -235
  386. data/spec/integration/trusthub/v1/supporting_document_type_spec.rb +0 -159
  387. data/spec/integration/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment_spec.rb +0 -192
  388. data/spec/integration/trusthub/v1/trust_products/trust_products_entity_assignments_spec.rb +0 -186
  389. data/spec/integration/trusthub/v1/trust_products/trust_products_evaluations_spec.rb +0 -615
  390. data/spec/integration/trusthub/v1/trust_products_spec.rb +0 -255
  391. data/spec/integration/verify/v2/form_spec.rb +0 -47
  392. data/spec/integration/verify/v2/service/access_token_spec.rb +0 -44
  393. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +0 -288
  394. data/spec/integration/verify/v2/service/entity/factor_spec.rb +0 -277
  395. data/spec/integration/verify/v2/service/entity_spec.rb +0 -201
  396. data/spec/integration/verify/v2/service/messaging_configuration_spec.rb +0 -228
  397. data/spec/integration/verify/v2/service/rate_limit/bucket_spec.rb +0 -245
  398. data/spec/integration/verify/v2/service/rate_limit_spec.rb +0 -217
  399. data/spec/integration/verify/v2/service/verification_check_spec.rb +0 -80
  400. data/spec/integration/verify/v2/service/verification_spec.rb +0 -318
  401. data/spec/integration/verify/v2/service/webhook_spec.rb +0 -258
  402. data/spec/integration/verify/v2/service_spec.rb +0 -279
  403. data/spec/integration/verify/v2/verification_attempt_spec.rb +0 -146
  404. data/spec/integration/video/v1/composition_hook_spec.rb +0 -407
  405. data/spec/integration/video/v1/composition_settings_spec.rb +0 -85
  406. data/spec/integration/video/v1/composition_spec.rb +0 -347
  407. data/spec/integration/video/v1/recording_settings_spec.rb +0 -85
  408. data/spec/integration/video/v1/recording_spec.rb +0 -176
  409. data/spec/integration/video/v1/room/recording_spec.rb +0 -185
  410. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -94
  411. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +0 -103
  412. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -95
  413. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -187
  414. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +0 -89
  415. data/spec/integration/video/v1/room_spec.rb +0 -340
  416. data/spec/integration/voice/v1/byoc_trunk_spec.rb +0 -245
  417. data/spec/integration/voice/v1/connection_policy/connection_policy_target_spec.rb +0 -242
  418. data/spec/integration/voice/v1/connection_policy_spec.rb +0 -221
  419. data/spec/integration/voice/v1/dialing_permissions/bulk_country_update_spec.rb +0 -45
  420. data/spec/integration/voice/v1/dialing_permissions/country/highrisk_special_prefix_spec.rb +0 -60
  421. data/spec/integration/voice/v1/dialing_permissions/country_spec.rb +0 -110
  422. data/spec/integration/voice/v1/dialing_permissions/settings_spec.rb +0 -75
  423. data/spec/integration/voice/v1/dialing_permissions_spec.rb +0 -12
  424. data/spec/integration/voice/v1/ip_record_spec.rb +0 -219
  425. data/spec/integration/voice/v1/source_ip_mapping_spec.rb +0 -216
  426. data/spec/integration/wireless/v1/command_spec.rb +0 -286
  427. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -277
  428. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -88
  429. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -114
  430. data/spec/integration/wireless/v1/sim_spec.rb +0 -325
  431. data/spec/integration/wireless/v1/usage_record_spec.rb +0 -110
  432. data/spec/jwt/access_token_spec.rb +0 -159
  433. data/spec/jwt/client_capability_spec.rb +0 -104
  434. data/spec/jwt/task_router_spec.rb +0 -172
  435. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  436. data/spec/rest/client_spec.rb +0 -255
  437. data/spec/security/request_validator_spec.rb +0 -125
  438. data/spec/spec_helper.rb +0 -38
  439. data/spec/support/fakeweb.rb +0 -2
  440. data/spec/twilio_spec.rb +0 -17
  441. data/spec/twiml/messaging_response_spec.rb +0 -235
  442. data/spec/twiml/voice_response_spec.rb +0 -847
  443. data/spec/util/configuration_spec.rb +0 -33
  444. 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