twilio-ruby 5.49.0 → 5.54.0

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