twilio-ruby 5.50.0 → 5.54.1

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