twilio-ruby 5.15.1 → 5.58.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 (848) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +1 -0
  3. data/.gitignore +5 -0
  4. data/.rubocop.yml +22 -6
  5. data/.rubocop_todo.yml +86 -75
  6. data/.travis.yml +45 -19
  7. data/CHANGES.md +1553 -0
  8. data/CODE_OF_CONDUCT.md +73 -0
  9. data/CONTRIBUTING.md +4 -2
  10. data/Dockerfile +2 -2
  11. data/Gemfile +1 -9
  12. data/ISSUE_TEMPLATE.md +17 -13
  13. data/{LICENSE.md → LICENSE} +2 -2
  14. data/Makefile +6 -15
  15. data/PULL_REQUEST_TEMPLATE.md +30 -3
  16. data/README.md +120 -54
  17. data/Rakefile +0 -54
  18. data/VERSIONS.md +9 -10
  19. data/examples/examples.rb +1 -1
  20. data/githooks/pre-commit +0 -0
  21. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +1 -1
  22. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +3 -3
  23. data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  24. data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  25. data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  26. data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
  27. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +7 -11
  28. data/lib/twilio-ruby/http/http_client.rb +29 -14
  29. data/lib/twilio-ruby/http.rb +5 -0
  30. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  31. data/lib/twilio-ruby/jwt/jwt.rb +6 -0
  32. data/lib/twilio-ruby/jwt/task_router.rb +2 -2
  33. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  34. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +45 -46
  35. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +44 -52
  36. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +5 -4
  37. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  38. data/lib/twilio-ruby/rest/accounts/v1.rb +15 -1
  39. data/lib/twilio-ruby/rest/accounts.rb +13 -1
  40. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +40 -38
  41. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +115 -121
  42. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +162 -181
  43. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +35 -32
  44. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +169 -178
  45. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +187 -85
  46. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +166 -172
  47. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +187 -85
  48. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +187 -85
  49. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +166 -172
  50. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +187 -85
  51. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +28 -23
  52. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +125 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +75 -70
  55. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +59 -59
  56. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +72 -67
  57. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +375 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +118 -103
  59. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +433 -313
  60. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +335 -201
  61. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +80 -79
  62. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +98 -81
  63. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +80 -71
  64. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +48 -41
  65. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +53 -54
  66. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +172 -127
  67. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +171 -127
  68. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +171 -127
  69. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +304 -289
  70. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +35 -36
  71. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +25 -20
  72. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +51 -47
  73. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +203 -203
  74. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +11 -15
  75. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +11 -15
  76. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +47 -55
  77. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +56 -61
  78. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +53 -38
  79. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +79 -78
  80. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +55 -48
  81. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +48 -42
  82. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +54 -41
  83. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +70 -61
  84. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +69 -70
  85. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +20 -25
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +45 -51
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +27 -36
  88. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +48 -49
  89. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +48 -49
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +15 -13
  91. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +48 -49
  92. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +13 -11
  93. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +11 -9
  94. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +47 -47
  95. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +46 -47
  96. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +179 -95
  97. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +64 -52
  98. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +31 -39
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +5 -4
  100. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +16 -19
  101. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +43 -40
  102. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +70 -50
  103. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +70 -50
  104. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +70 -53
  105. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +70 -50
  106. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +70 -50
  107. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +70 -50
  108. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +70 -50
  109. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +70 -50
  110. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +67 -53
  111. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +107 -114
  112. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +3 -2
  113. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +40 -45
  114. data/lib/twilio-ruby/rest/api/v2010/account.rb +38 -28
  115. data/lib/twilio-ruby/rest/api/v2010.rb +10 -5
  116. data/lib/twilio-ruby/rest/api.rb +38 -27
  117. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +29 -24
  118. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +29 -20
  119. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +65 -59
  120. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +60 -59
  121. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +60 -58
  122. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +113 -87
  123. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +27 -24
  124. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +60 -51
  125. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +90 -76
  126. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +41 -30
  127. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +35 -22
  128. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +76 -66
  129. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +420 -0
  130. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +132 -88
  131. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +194 -0
  132. data/lib/twilio-ruby/rest/autopilot/v1.rb +15 -6
  133. data/lib/twilio-ruby/rest/autopilot.rb +8 -2
  134. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +286 -0
  135. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +286 -0
  136. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +255 -0
  137. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +243 -0
  138. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +226 -0
  139. data/lib/twilio-ruby/rest/bulkexports/v1.rb +62 -0
  140. data/lib/twilio-ruby/rest/bulkexports.rb +56 -0
  141. data/lib/twilio-ruby/rest/chat/v1/credential.rb +91 -80
  142. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +74 -68
  143. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +94 -97
  144. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +81 -73
  145. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +82 -74
  146. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +62 -62
  147. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +20 -18
  148. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +74 -81
  149. data/lib/twilio-ruby/rest/chat/v1/service.rb +338 -357
  150. data/lib/twilio-ruby/rest/chat/v1.rb +15 -11
  151. data/lib/twilio-ruby/rest/chat/v2/credential.rb +77 -84
  152. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +66 -56
  153. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +72 -74
  154. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +171 -141
  155. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +143 -135
  156. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +115 -69
  157. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +134 -117
  158. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +64 -59
  159. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +72 -67
  160. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +95 -53
  161. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +93 -88
  162. data/lib/twilio-ruby/rest/chat/v2/service.rb +224 -185
  163. data/lib/twilio-ruby/rest/chat/v2.rb +13 -11
  164. data/lib/twilio-ruby/rest/chat.rb +3 -3
  165. data/lib/twilio-ruby/rest/client.rb +196 -69
  166. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  167. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  168. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +355 -0
  169. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +502 -0
  170. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +502 -0
  171. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +410 -0
  172. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +562 -0
  173. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  174. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  175. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  176. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  177. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  178. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +278 -0
  179. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  180. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +548 -0
  181. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +541 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +595 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +481 -0
  188. data/lib/twilio-ruby/rest/{authy → conversations}/v1/service.rb +171 -92
  189. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/user.rb +451 -0
  191. data/lib/twilio-ruby/rest/conversations/v1.rb +126 -0
  192. data/lib/twilio-ruby/rest/conversations.rb +95 -0
  193. data/lib/twilio-ruby/rest/events/v1/event_type.rb +298 -0
  194. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +290 -0
  195. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  196. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  197. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  198. data/lib/twilio-ruby/rest/events/v1/sink.rb +418 -0
  199. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +346 -0
  200. data/lib/twilio-ruby/rest/events/v1/subscription.rb +397 -0
  201. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  202. data/lib/twilio-ruby/rest/events.rb +72 -0
  203. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +35 -36
  204. data/lib/twilio-ruby/rest/fax/v1/fax.rb +113 -108
  205. data/lib/twilio-ruby/rest/fax/v1.rb +8 -6
  206. data/lib/twilio-ruby/rest/fax.rb +3 -2
  207. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +340 -0
  208. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +462 -0
  209. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +565 -0
  210. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +341 -0
  211. data/lib/twilio-ruby/rest/flex_api/v1.rb +83 -0
  212. data/lib/twilio-ruby/rest/flex_api.rb +71 -0
  213. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +233 -0
  214. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  215. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  216. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +262 -0
  217. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +252 -0
  218. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +307 -0
  219. data/lib/twilio-ruby/rest/insights/v1/call.rb +236 -0
  220. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  221. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  222. data/lib/twilio-ruby/rest/insights/v1/room.rb +499 -0
  223. data/lib/twilio-ruby/rest/insights/v1.rb +67 -0
  224. data/lib/twilio-ruby/rest/insights.rb +60 -0
  225. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +47 -75
  226. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +40 -66
  227. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +47 -93
  228. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +41 -61
  229. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +50 -69
  230. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +39 -59
  231. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +6 -10
  232. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +47 -76
  233. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +69 -203
  234. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +15 -13
  235. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +50 -94
  236. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +39 -56
  237. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +40 -69
  238. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +95 -141
  239. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +87 -133
  240. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +29 -39
  241. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +85 -118
  242. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +39 -56
  243. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +38 -63
  244. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +67 -54
  245. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +68 -87
  246. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +76 -126
  247. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +15 -13
  248. data/lib/twilio-ruby/rest/ip_messaging.rb +7 -9
  249. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +63 -56
  250. data/lib/twilio-ruby/rest/lookups/v1.rb +9 -6
  251. data/lib/twilio-ruby/rest/lookups.rb +4 -4
  252. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +346 -0
  253. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  254. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  255. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +44 -46
  256. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +44 -44
  257. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +44 -44
  258. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +426 -0
  259. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +129 -0
  260. data/lib/twilio-ruby/rest/messaging/v1/service.rb +245 -127
  261. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  262. data/lib/twilio-ruby/rest/messaging/v1.rb +44 -6
  263. data/lib/twilio-ruby/rest/messaging.rb +29 -2
  264. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +75 -88
  265. data/lib/twilio-ruby/rest/monitor/v1/event.rb +61 -65
  266. data/lib/twilio-ruby/rest/monitor/v1.rb +13 -11
  267. data/lib/twilio-ruby/rest/monitor.rb +5 -3
  268. data/lib/twilio-ruby/rest/notify/v1/credential.rb +82 -81
  269. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +100 -94
  270. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +126 -124
  271. data/lib/twilio-ruby/rest/notify/v1/service.rb +176 -142
  272. data/lib/twilio-ruby/rest/notify/v1.rb +15 -11
  273. data/lib/twilio-ruby/rest/notify.rb +5 -3
  274. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +309 -0
  275. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +320 -0
  276. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +512 -0
  277. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +358 -0
  278. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +273 -0
  279. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +314 -0
  280. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +371 -0
  281. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +273 -0
  282. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +189 -0
  283. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  284. data/lib/twilio-ruby/rest/numbers.rb +44 -0
  285. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +97 -14
  286. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +275 -0
  287. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +249 -0
  288. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +65 -17
  289. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +35 -28
  290. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +15 -11
  291. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +23 -33
  292. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +23 -33
  293. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +23 -33
  294. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +23 -33
  295. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +23 -33
  296. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +6 -5
  297. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +15 -14
  298. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +46 -51
  299. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +32 -42
  300. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +11 -9
  301. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +28 -26
  302. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +23 -26
  303. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +32 -34
  304. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +50 -63
  305. data/lib/twilio-ruby/rest/preview/marketplace.rb +20 -20
  306. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +20 -25
  307. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +29 -36
  308. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +36 -39
  309. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +20 -25
  310. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +22 -28
  311. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +36 -39
  312. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +20 -25
  313. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +22 -28
  314. data/lib/twilio-ruby/rest/preview/sync/service.rb +23 -33
  315. data/lib/twilio-ruby/rest/preview/sync.rb +6 -5
  316. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  317. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +225 -0
  318. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +195 -0
  319. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +186 -0
  320. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +277 -0
  321. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +65 -0
  322. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +12 -15
  323. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +12 -15
  324. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +11 -10
  325. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +22 -28
  326. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +23 -33
  327. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +23 -33
  328. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +23 -33
  329. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +12 -15
  330. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +24 -30
  331. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +23 -33
  332. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +12 -15
  333. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +11 -10
  334. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +23 -33
  335. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +23 -33
  336. data/lib/twilio-ruby/rest/preview/understand.rb +6 -5
  337. data/lib/twilio-ruby/rest/preview/wireless/command.rb +17 -23
  338. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +25 -35
  339. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +11 -8
  340. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +15 -20
  341. data/lib/twilio-ruby/rest/preview/wireless.rb +16 -13
  342. data/lib/twilio-ruby/rest/preview.rb +52 -30
  343. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +26 -23
  344. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +4 -2
  345. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +26 -23
  346. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +4 -2
  347. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +26 -23
  348. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +20 -19
  349. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +5 -3
  350. data/lib/twilio-ruby/rest/pricing/v1.rb +1 -1
  351. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  352. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  353. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +26 -25
  354. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +35 -22
  355. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +11 -8
  356. data/lib/twilio-ruby/rest/pricing/v2.rb +38 -1
  357. data/lib/twilio-ruby/rest/pricing.rb +20 -1
  358. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +72 -65
  359. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +61 -83
  360. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +62 -61
  361. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +79 -72
  362. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +127 -107
  363. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +55 -56
  364. data/lib/twilio-ruby/rest/proxy/v1/service.rb +167 -105
  365. data/lib/twilio-ruby/rest/proxy/v1.rb +8 -6
  366. data/lib/twilio-ruby/rest/proxy.rb +3 -2
  367. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +334 -0
  368. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +387 -0
  369. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  370. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +391 -0
  371. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +349 -0
  372. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +394 -0
  373. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +407 -0
  374. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +454 -0
  375. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +241 -0
  376. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +364 -0
  377. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +387 -0
  378. data/lib/twilio-ruby/rest/{verify → serverless}/v1/service.rb +182 -116
  379. data/lib/twilio-ruby/rest/serverless/v1.rb +44 -0
  380. data/lib/twilio-ruby/rest/serverless.rb +47 -0
  381. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +22 -21
  382. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +26 -27
  383. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +34 -35
  384. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +45 -50
  385. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +23 -21
  386. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +29 -27
  387. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +35 -35
  388. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +104 -58
  389. data/lib/twilio-ruby/rest/studio/v1/flow.rb +30 -31
  390. data/lib/twilio-ruby/rest/studio/v1.rb +7 -6
  391. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +211 -0
  392. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +228 -0
  393. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +372 -0
  394. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +449 -0
  395. data/lib/twilio-ruby/rest/{preview/authy/service/entity.rb → studio/v2/flow/flow_revision.rb} +118 -117
  396. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +199 -0
  397. data/lib/twilio-ruby/rest/studio/v2/flow.rb +482 -0
  398. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +117 -0
  399. data/lib/twilio-ruby/rest/studio/v2.rb +51 -0
  400. data/lib/twilio-ruby/rest/studio.rb +19 -5
  401. data/lib/twilio-ruby/rest/supersim/v1/command.rb +368 -0
  402. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +494 -0
  403. data/lib/twilio-ruby/rest/supersim/v1/network.rb +307 -0
  404. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +339 -0
  405. data/lib/twilio-ruby/rest/{preview/acc_security/service.rb → supersim/v1/network_access_profile.rb} +116 -143
  406. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  407. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +443 -0
  408. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  409. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +338 -0
  410. data/lib/twilio-ruby/rest/supersim/v1.rb +131 -0
  411. data/lib/twilio-ruby/rest/supersim.rb +97 -0
  412. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +60 -69
  413. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +71 -75
  414. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +155 -107
  415. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +59 -69
  416. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +77 -73
  417. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +161 -109
  418. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +57 -69
  419. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +76 -73
  420. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +18 -27
  421. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +57 -67
  422. data/lib/twilio-ruby/rest/sync/v1/service.rb +141 -87
  423. data/lib/twilio-ruby/rest/sync/v1.rb +7 -6
  424. data/lib/twilio-ruby/rest/sync.rb +3 -2
  425. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +83 -77
  426. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +131 -85
  427. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +298 -194
  428. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +217 -176
  429. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +114 -26
  430. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +79 -69
  431. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +59 -29
  432. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +57 -54
  433. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +61 -70
  434. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +119 -122
  435. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +309 -155
  436. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +56 -59
  437. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +50 -41
  438. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +43 -39
  439. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +27 -19
  440. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +53 -50
  441. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +131 -117
  442. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +70 -59
  443. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +42 -26
  444. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +65 -54
  445. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +108 -107
  446. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +59 -54
  447. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +34 -24
  448. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +55 -50
  449. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +124 -128
  450. data/lib/twilio-ruby/rest/taskrouter/v1.rb +7 -6
  451. data/lib/twilio-ruby/rest/taskrouter.rb +3 -2
  452. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +42 -43
  453. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +40 -45
  454. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +74 -83
  455. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +65 -62
  456. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +198 -0
  457. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +149 -134
  458. data/lib/twilio-ruby/rest/trunking/v1.rb +8 -6
  459. data/lib/twilio-ruby/rest/trunking.rb +3 -3
  460. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  461. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  462. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  463. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  464. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  465. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  466. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  467. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  468. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  469. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  470. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  471. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  472. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  473. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  474. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  475. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/form.rb +30 -29
  476. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +124 -0
  477. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +201 -0
  478. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +529 -0
  479. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/service/entity/factor.rb +108 -129
  480. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +299 -0
  481. data/lib/twilio-ruby/rest/{authy/v1 → verify/v2}/service/entity.rb +96 -43
  482. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +370 -0
  483. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +399 -0
  484. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +391 -0
  485. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +356 -0
  486. data/lib/twilio-ruby/rest/verify/{v1 → v2}/service/verification_check.rb +59 -36
  487. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +427 -0
  488. data/lib/twilio-ruby/rest/verify/v2/service.rb +761 -0
  489. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +329 -0
  490. data/lib/twilio-ruby/rest/verify/v2.rb +78 -0
  491. data/lib/twilio-ruby/rest/verify.rb +28 -9
  492. data/lib/twilio-ruby/rest/video/v1/composition.rb +125 -129
  493. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +260 -229
  494. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +54 -63
  495. data/lib/twilio-ruby/rest/video/v1/recording.rb +81 -69
  496. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +54 -63
  497. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +64 -53
  498. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +39 -37
  499. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +175 -0
  500. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +132 -105
  501. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +104 -77
  502. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +144 -0
  503. data/lib/twilio-ruby/rest/video/v1/room.rb +118 -85
  504. data/lib/twilio-ruby/rest/video/v1.rb +35 -34
  505. data/lib/twilio-ruby/rest/video.rb +16 -16
  506. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +496 -0
  507. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -0
  508. data/lib/twilio-ruby/rest/{preview/authy/service.rb → voice/v1/connection_policy.rb} +115 -117
  509. data/lib/twilio-ruby/rest/voice/v1/{voice_permission → dialing_permissions}/bulk_country_update.rb +8 -13
  510. data/lib/twilio-ruby/rest/voice/v1/{voice_permission → dialing_permissions}/country/highrisk_special_prefix.rb +9 -11
  511. data/lib/twilio-ruby/rest/voice/v1/{voice_permission → dialing_permissions}/country.rb +59 -58
  512. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +197 -0
  513. data/lib/twilio-ruby/rest/voice/v1/{voice_permission.rb → dialing_permissions.rb} +21 -23
  514. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +349 -0
  515. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +329 -0
  516. data/lib/twilio-ruby/rest/voice/v1.rb +73 -5
  517. data/lib/twilio-ruby/rest/voice.rb +40 -4
  518. data/lib/twilio-ruby/rest/wireless/v1/command.rb +86 -67
  519. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +86 -88
  520. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +37 -40
  521. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +42 -38
  522. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +198 -151
  523. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +229 -0
  524. data/lib/twilio-ruby/rest/wireless/v1.rb +26 -16
  525. data/lib/twilio-ruby/rest/wireless.rb +10 -4
  526. data/lib/twilio-ruby/rest.rb +13 -0
  527. data/lib/twilio-ruby/security/request_validator.rb +64 -11
  528. data/lib/twilio-ruby/twiml/fax_response.rb +6 -3
  529. data/lib/twilio-ruby/twiml/messaging_response.rb +1 -1
  530. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  531. data/lib/twilio-ruby/twiml/voice_response.rb +278 -34
  532. data/lib/twilio-ruby/util/configuration.rb +22 -5
  533. data/lib/twilio-ruby/version.rb +1 -1
  534. data/lib/twilio-ruby.rb +8 -24
  535. data/sonar-project.properties +13 -0
  536. data/twilio-ruby.gemspec +13 -8
  537. metadata +296 -647
  538. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +0 -405
  539. data/lib/twilio-ruby/rest/authy/v1.rb +0 -59
  540. data/lib/twilio-ruby/rest/authy.rb +0 -55
  541. data/lib/twilio-ruby/rest/preview/acc_security/service/verification.rb +0 -185
  542. data/lib/twilio-ruby/rest/preview/acc_security/service/verification_check.rb +0 -182
  543. data/lib/twilio-ruby/rest/preview/acc_security.rb +0 -43
  544. data/lib/twilio-ruby/rest/preview/authy.rb +0 -43
  545. data/lib/twilio-ruby/rest/verify/v1/service/verification.rb +0 -192
  546. data/lib/twilio-ruby/rest/verify/v1.rb +0 -43
  547. data/spec/framework/request_spec.rb +0 -36
  548. data/spec/framework/serialize_spec.rb +0 -80
  549. data/spec/holodeck/holodeck.rb +0 -61
  550. data/spec/holodeck/hologram.rb +0 -4
  551. data/spec/http/http_client_spec.rb +0 -122
  552. data/spec/integration/accounts/v1/credential/aws_spec.rb +0 -226
  553. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  554. data/spec/integration/accounts/v1/credential_spec.rb +0 -12
  555. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +0 -107
  556. data/spec/integration/api/v2010/account/address_spec.rb +0 -269
  557. data/spec/integration/api/v2010/account/application_spec.rb +0 -280
  558. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +0 -139
  559. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +0 -103
  560. data/spec/integration/api/v2010/account/available_phone_number/machine_to_machine_spec.rb +0 -103
  561. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +0 -102
  562. data/spec/integration/api/v2010/account/available_phone_number/national_spec.rb +0 -103
  563. data/spec/integration/api/v2010/account/available_phone_number/shared_cost_spec.rb +0 -103
  564. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +0 -102
  565. data/spec/integration/api/v2010/account/available_phone_number/voip_spec.rb +0 -103
  566. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +0 -130
  567. data/spec/integration/api/v2010/account/call/feedback_spec.rb +0 -139
  568. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +0 -151
  569. data/spec/integration/api/v2010/account/call/notification_spec.rb +0 -181
  570. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -287
  571. data/spec/integration/api/v2010/account/call_spec.rb +0 -314
  572. data/spec/integration/api/v2010/account/conference/participant_spec.rb +0 -350
  573. data/spec/integration/api/v2010/account/conference/recording_spec.rb +0 -237
  574. data/spec/integration/api/v2010/account/conference_spec.rb +0 -179
  575. data/spec/integration/api/v2010/account/connect_app_spec.rb +0 -179
  576. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -137
  577. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  578. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +0 -185
  579. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +0 -185
  580. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +0 -185
  581. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +0 -341
  582. data/spec/integration/api/v2010/account/key_spec.rb +0 -180
  583. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -50
  584. data/spec/integration/api/v2010/account/message/media_spec.rb +0 -164
  585. data/spec/integration/api/v2010/account/message_spec.rb +0 -290
  586. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -47
  587. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -47
  588. data/spec/integration/api/v2010/account/notification_spec.rb +0 -174
  589. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +0 -195
  590. data/spec/integration/api/v2010/account/queue/member_spec.rb +0 -169
  591. data/spec/integration/api/v2010/account/queue_spec.rb +0 -242
  592. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -177
  593. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -168
  594. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +0 -176
  595. data/spec/integration/api/v2010/account/recording_spec.rb +0 -187
  596. data/spec/integration/api/v2010/account/short_code_spec.rb +0 -182
  597. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -180
  598. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +0 -256
  599. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +0 -244
  600. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping_spec.rb +0 -220
  601. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping_spec.rb +0 -220
  602. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_calls_mapping_spec.rb +0 -12
  603. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping_spec.rb +0 -220
  604. data/spec/integration/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping_spec.rb +0 -12
  605. data/spec/integration/api/v2010/account/sip/domain/auth_types_spec.rb +0 -12
  606. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +0 -210
  607. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +0 -220
  608. data/spec/integration/api/v2010/account/sip/domain_spec.rb +0 -287
  609. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +0 -258
  610. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +0 -254
  611. data/spec/integration/api/v2010/account/sip_spec.rb +0 -12
  612. data/spec/integration/api/v2010/account/token_spec.rb +0 -58
  613. data/spec/integration/api/v2010/account/transcription_spec.rb +0 -169
  614. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +0 -113
  615. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +0 -113
  616. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +0 -113
  617. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +0 -113
  618. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +0 -113
  619. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +0 -113
  620. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +0 -113
  621. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +0 -113
  622. data/spec/integration/api/v2010/account/usage/record_spec.rb +0 -110
  623. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +0 -285
  624. data/spec/integration/api/v2010/account/usage_spec.rb +0 -12
  625. data/spec/integration/api/v2010/account/validation_request_spec.rb +0 -48
  626. data/spec/integration/api/v2010/account_spec.rb +0 -272
  627. data/spec/integration/authy/v1/form_spec.rb +0 -48
  628. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +0 -267
  629. data/spec/integration/authy/v1/service/entity/factor_spec.rb +0 -269
  630. data/spec/integration/authy/v1/service/entity_spec.rb +0 -201
  631. data/spec/integration/authy/v1/service_spec.rb +0 -227
  632. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +0 -81
  633. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +0 -47
  634. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +0 -210
  635. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +0 -246
  636. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +0 -241
  637. data/spec/integration/autopilot/v1/assistant/query_spec.rb +0 -306
  638. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +0 -81
  639. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +0 -207
  640. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +0 -253
  641. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +0 -87
  642. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +0 -50
  643. data/spec/integration/autopilot/v1/assistant/task_spec.rb +0 -262
  644. data/spec/integration/autopilot/v1/assistant_spec.rb +0 -270
  645. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  646. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  647. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  648. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  649. data/spec/integration/chat/v1/service/channel_spec.rb +0 -277
  650. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  651. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -94
  652. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  653. data/spec/integration/chat/v1/service_spec.rb +0 -299
  654. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  655. data/spec/integration/chat/v2/service/binding_spec.rb +0 -177
  656. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  657. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -257
  658. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -405
  659. data/spec/integration/chat/v2/service/channel/webhook_spec.rb +0 -307
  660. data/spec/integration/chat/v2/service/channel_spec.rb +0 -281
  661. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  662. data/spec/integration/chat/v2/service/user/user_binding_spec.rb +0 -180
  663. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -192
  664. data/spec/integration/chat/v2/service/user_spec.rb +0 -270
  665. data/spec/integration/chat/v2/service_spec.rb +0 -354
  666. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -128
  667. data/spec/integration/fax/v1/fax_spec.rb +0 -271
  668. data/spec/integration/ip_messaging/v1/credential_spec.rb +0 -223
  669. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  670. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +0 -284
  671. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +0 -294
  672. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +0 -277
  673. data/spec/integration/ip_messaging/v1/service/role_spec.rb +0 -263
  674. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -94
  675. data/spec/integration/ip_messaging/v1/service/user_spec.rb +0 -266
  676. data/spec/integration/ip_messaging/v1/service_spec.rb +0 -299
  677. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  678. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +0 -177
  679. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  680. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -257
  681. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -405
  682. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +0 -307
  683. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -281
  684. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  685. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +0 -180
  686. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -192
  687. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -270
  688. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -354
  689. data/spec/integration/lookups/v1/phone_number_spec.rb +0 -71
  690. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  691. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  692. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
  693. data/spec/integration/messaging/v1/service_spec.rb +0 -263
  694. data/spec/integration/monitor/v1/alert_spec.rb +0 -163
  695. data/spec/integration/monitor/v1/event_spec.rb +0 -150
  696. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  697. data/spec/integration/notify/v1/service/binding_spec.rb +0 -225
  698. data/spec/integration/notify/v1/service/notification_spec.rb +0 -99
  699. data/spec/integration/notify/v1/service_spec.rb +0 -286
  700. data/spec/integration/preview/acc_security/service/verification_check_spec.rb +0 -52
  701. data/spec/integration/preview/acc_security/service/verification_spec.rb +0 -52
  702. data/spec/integration/preview/acc_security/service_spec.rb +0 -185
  703. data/spec/integration/preview/authy/service/entity_spec.rb +0 -173
  704. data/spec/integration/preview/authy/service_spec.rb +0 -201
  705. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -58
  706. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  707. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -45
  708. data/spec/integration/preview/deployed_devices/fleet/certificate_spec.rb +0 -238
  709. data/spec/integration/preview/deployed_devices/fleet/deployment_spec.rb +0 -233
  710. data/spec/integration/preview/deployed_devices/fleet/device_spec.rb +0 -249
  711. data/spec/integration/preview/deployed_devices/fleet/key_spec.rb +0 -237
  712. data/spec/integration/preview/deployed_devices/fleet_spec.rb +0 -246
  713. data/spec/integration/preview/hosted_numbers/authorization_document/dependent_hosted_number_order_spec.rb +0 -111
  714. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +0 -227
  715. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -393
  716. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -123
  717. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -144
  718. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  719. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -254
  720. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -204
  721. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  722. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -254
  723. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -204
  724. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -209
  725. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -254
  726. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -204
  727. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -209
  728. data/spec/integration/preview/sync/service_spec.rb +0 -246
  729. data/spec/integration/preview/understand/assistant/assistant_fallback_actions_spec.rb +0 -81
  730. data/spec/integration/preview/understand/assistant/assistant_initiation_actions_spec.rb +0 -81
  731. data/spec/integration/preview/understand/assistant/dialogue_spec.rb +0 -47
  732. data/spec/integration/preview/understand/assistant/field_type/field_value_spec.rb +0 -210
  733. data/spec/integration/preview/understand/assistant/field_type_spec.rb +0 -246
  734. data/spec/integration/preview/understand/assistant/model_build_spec.rb +0 -241
  735. data/spec/integration/preview/understand/assistant/query_spec.rb +0 -306
  736. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +0 -81
  737. data/spec/integration/preview/understand/assistant/task/field_spec.rb +0 -207
  738. data/spec/integration/preview/understand/assistant/task/sample_spec.rb +0 -253
  739. data/spec/integration/preview/understand/assistant/task/task_actions_spec.rb +0 -87
  740. data/spec/integration/preview/understand/assistant/task/task_statistics_spec.rb +0 -50
  741. data/spec/integration/preview/understand/assistant/task_spec.rb +0 -262
  742. data/spec/integration/preview/understand/assistant_spec.rb +0 -274
  743. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  744. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -262
  745. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -51
  746. data/spec/integration/preview/wireless/sim_spec.rb +0 -210
  747. data/spec/integration/pricing/v1/messaging/country_spec.rb +0 -139
  748. data/spec/integration/pricing/v1/messaging_spec.rb +0 -12
  749. data/spec/integration/pricing/v1/phone_number/country_spec.rb +0 -130
  750. data/spec/integration/pricing/v1/phone_number_spec.rb +0 -12
  751. data/spec/integration/pricing/v1/voice/country_spec.rb +0 -140
  752. data/spec/integration/pricing/v1/voice/number_spec.rb +0 -56
  753. data/spec/integration/pricing/v1/voice_spec.rb +0 -12
  754. data/spec/integration/pricing/v2/voice/country_spec.rb +0 -181
  755. data/spec/integration/pricing/v2/voice/number_spec.rb +0 -62
  756. data/spec/integration/pricing/v2/voice_spec.rb +0 -12
  757. data/spec/integration/proxy/v1/service/phone_number_spec.rb +0 -232
  758. data/spec/integration/proxy/v1/service/session/interaction_spec.rb +0 -136
  759. data/spec/integration/proxy/v1/service/session/participant/message_interaction_spec.rb +0 -166
  760. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -181
  761. data/spec/integration/proxy/v1/service/session_spec.rb +0 -230
  762. data/spec/integration/proxy/v1/service/short_code_spec.rb +0 -229
  763. data/spec/integration/proxy/v1/service_spec.rb +0 -215
  764. data/spec/integration/studio/v1/flow/engagement/engagement_context_spec.rb +0 -51
  765. data/spec/integration/studio/v1/flow/engagement/step/step_context_spec.rb +0 -54
  766. data/spec/integration/studio/v1/flow/engagement/step_spec.rb +0 -101
  767. data/spec/integration/studio/v1/flow/engagement_spec.rb +0 -171
  768. data/spec/integration/studio/v1/flow/execution/execution_context_spec.rb +0 -51
  769. data/spec/integration/studio/v1/flow/execution/execution_step/execution_step_context_spec.rb +0 -54
  770. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +0 -101
  771. data/spec/integration/studio/v1/flow/execution_spec.rb +0 -171
  772. data/spec/integration/studio/v1/flow_spec.rb +0 -117
  773. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -204
  774. data/spec/integration/sync/v1/service/document_spec.rb +0 -257
  775. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -257
  776. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -204
  777. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -257
  778. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  779. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -204
  780. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -257
  781. data/spec/integration/sync/v1/service/sync_stream/stream_message_spec.rb +0 -47
  782. data/spec/integration/sync/v1/service/sync_stream_spec.rb +0 -249
  783. data/spec/integration/sync/v1/service_spec.rb +0 -254
  784. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +0 -236
  785. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +0 -159
  786. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +0 -225
  787. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -129
  788. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +0 -96
  789. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +0 -81
  790. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +0 -108
  791. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +0 -146
  792. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +0 -294
  793. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +0 -326
  794. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -194
  795. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -188
  796. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +0 -92
  797. data/spec/integration/taskrouter/v1/workspace/worker/workers_cumulative_statistics_spec.rb +0 -89
  798. data/spec/integration/taskrouter/v1/workspace/worker/workers_real_time_statistics_spec.rb +0 -70
  799. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +0 -116
  800. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +0 -294
  801. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics_spec.rb +0 -97
  802. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_real_time_statistics_spec.rb +0 -57
  803. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +0 -71
  804. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +0 -272
  805. data/spec/integration/taskrouter/v1/workspace/workspace_cumulative_statistics_spec.rb +0 -94
  806. data/spec/integration/taskrouter/v1/workspace/workspace_real_time_statistics_spec.rb +0 -72
  807. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +0 -105
  808. data/spec/integration/taskrouter/v1/workspace_spec.rb +0 -295
  809. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +0 -192
  810. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +0 -192
  811. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +0 -252
  812. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +0 -267
  813. data/spec/integration/trunking/v1/trunk_spec.rb +0 -282
  814. data/spec/integration/verify/v1/service/verification_check_spec.rb +0 -52
  815. data/spec/integration/verify/v1/service/verification_spec.rb +0 -52
  816. data/spec/integration/verify/v1/service_spec.rb +0 -215
  817. data/spec/integration/video/v1/composition_hook_spec.rb +0 -410
  818. data/spec/integration/video/v1/composition_settings_spec.rb +0 -86
  819. data/spec/integration/video/v1/composition_spec.rb +0 -325
  820. data/spec/integration/video/v1/recording_settings_spec.rb +0 -86
  821. data/spec/integration/video/v1/recording_spec.rb +0 -179
  822. data/spec/integration/video/v1/room/recording_spec.rb +0 -188
  823. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +0 -96
  824. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +0 -134
  825. data/spec/integration/video/v1/room/room_participant_spec.rb +0 -187
  826. data/spec/integration/video/v1/room_spec.rb +0 -257
  827. data/spec/integration/voice/v1/voice_permission/bulk_country_update_spec.rb +0 -45
  828. data/spec/integration/voice/v1/voice_permission/country/highrisk_special_prefix_spec.rb +0 -61
  829. data/spec/integration/voice/v1/voice_permission/country_spec.rb +0 -112
  830. data/spec/integration/voice/v1/voice_permission_spec.rb +0 -12
  831. data/spec/integration/wireless/v1/command_spec.rb +0 -263
  832. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -270
  833. data/spec/integration/wireless/v1/sim/data_session_spec.rb +0 -87
  834. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -67
  835. data/spec/integration/wireless/v1/sim_spec.rb +0 -216
  836. data/spec/jwt/access_token_spec.rb +0 -151
  837. data/spec/jwt/client_capability_spec.rb +0 -104
  838. data/spec/jwt/task_router_spec.rb +0 -172
  839. data/spec/rack/twilio_webhook_authentication_spec.rb +0 -106
  840. data/spec/rest/client_spec.rb +0 -61
  841. data/spec/security/request_validator_spec.rb +0 -86
  842. data/spec/spec_helper.rb +0 -38
  843. data/spec/support/fakeweb.rb +0 -2
  844. data/spec/twilio_spec.rb +0 -15
  845. data/spec/twiml/messaging_response_spec.rb +0 -235
  846. data/spec/twiml/voice_response_spec.rb +0 -847
  847. data/spec/util/configuration_spec.rb +0 -15
  848. data/spec/util/url_encode_spec.rb +0 -12
@@ -0,0 +1,229 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Wireless < Domain
12
+ class V1 < Version
13
+ class UsageRecordList < ListResource
14
+ ##
15
+ # Initialize the UsageRecordList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [UsageRecordList] UsageRecordList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/UsageRecords"
24
+ end
25
+
26
+ ##
27
+ # Lists UsageRecordInstance records from the API as a list.
28
+ # Unlike stream(), this operation is eager and will load `limit` records into
29
+ # memory before returning.
30
+ # @param [Time] end_ Only include usage that has occurred on or before this date.
31
+ # Format is {ISO 8601}[https://www.iso.org/iso-8601-date-and-time-format.html].
32
+ # @param [Time] start Only include usage that has occurred on or after this date.
33
+ # Format is {ISO 8601}[https://www.iso.org/iso-8601-date-and-time-format.html].
34
+ # @param [usage_record.Granularity] granularity How to summarize the usage by
35
+ # time. Can be: `daily`, `hourly`, or `all`. A value of `all` returns one Usage
36
+ # Record that describes the usage for the entire period.
37
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
38
+ # guarantees to never return more than limit. Default is no limit
39
+ # @param [Integer] page_size Number of records to fetch per request, when
40
+ # not set will use the default value of 50 records. If no page_size is defined
41
+ # but a limit is defined, stream() will attempt to read the limit with the most
42
+ # efficient page size, i.e. min(limit, 1000)
43
+ # @return [Array] Array of up to limit results
44
+ def list(end_: :unset, start: :unset, granularity: :unset, limit: nil, page_size: nil)
45
+ self.stream(
46
+ end_: end_,
47
+ start: start,
48
+ granularity: granularity,
49
+ limit: limit,
50
+ page_size: page_size
51
+ ).entries
52
+ end
53
+
54
+ ##
55
+ # Streams UsageRecordInstance records from the API as an Enumerable.
56
+ # This operation lazily loads records as efficiently as possible until the limit
57
+ # is reached.
58
+ # @param [Time] end_ Only include usage that has occurred on or before this date.
59
+ # Format is {ISO 8601}[https://www.iso.org/iso-8601-date-and-time-format.html].
60
+ # @param [Time] start Only include usage that has occurred on or after this date.
61
+ # Format is {ISO 8601}[https://www.iso.org/iso-8601-date-and-time-format.html].
62
+ # @param [usage_record.Granularity] granularity How to summarize the usage by
63
+ # time. Can be: `daily`, `hourly`, or `all`. A value of `all` returns one Usage
64
+ # Record that describes the usage for the entire period.
65
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
66
+ # guarantees to never return more than limit. Default is no limit.
67
+ # @param [Integer] page_size Number of records to fetch per request, when
68
+ # not set will use the default value of 50 records. If no page_size is defined
69
+ # but a limit is defined, stream() will attempt to read the limit with the most
70
+ # efficient page size, i.e. min(limit, 1000)
71
+ # @return [Enumerable] Enumerable that will yield up to limit results
72
+ def stream(end_: :unset, start: :unset, granularity: :unset, limit: nil, page_size: nil)
73
+ limits = @version.read_limits(limit, page_size)
74
+
75
+ page = self.page(end_: end_, start: start, granularity: granularity, page_size: limits[:page_size], )
76
+
77
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
78
+ end
79
+
80
+ ##
81
+ # When passed a block, yields UsageRecordInstance records from the API.
82
+ # This operation lazily loads records as efficiently as possible until the limit
83
+ # is reached.
84
+ def each
85
+ limits = @version.read_limits
86
+
87
+ page = self.page(page_size: limits[:page_size], )
88
+
89
+ @version.stream(page,
90
+ limit: limits[:limit],
91
+ page_limit: limits[:page_limit]).each {|x| yield x}
92
+ end
93
+
94
+ ##
95
+ # Retrieve a single page of UsageRecordInstance records from the API.
96
+ # Request is executed immediately.
97
+ # @param [Time] end_ Only include usage that has occurred on or before this date.
98
+ # Format is {ISO 8601}[https://www.iso.org/iso-8601-date-and-time-format.html].
99
+ # @param [Time] start Only include usage that has occurred on or after this date.
100
+ # Format is {ISO 8601}[https://www.iso.org/iso-8601-date-and-time-format.html].
101
+ # @param [usage_record.Granularity] granularity How to summarize the usage by
102
+ # time. Can be: `daily`, `hourly`, or `all`. A value of `all` returns one Usage
103
+ # Record that describes the usage for the entire period.
104
+ # @param [String] page_token PageToken provided by the API
105
+ # @param [Integer] page_number Page Number, this value is simply for client state
106
+ # @param [Integer] page_size Number of records to return, defaults to 50
107
+ # @return [Page] Page of UsageRecordInstance
108
+ def page(end_: :unset, start: :unset, granularity: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
109
+ params = Twilio::Values.of({
110
+ 'End' => Twilio.serialize_iso8601_datetime(end_),
111
+ 'Start' => Twilio.serialize_iso8601_datetime(start),
112
+ 'Granularity' => granularity,
113
+ 'PageToken' => page_token,
114
+ 'Page' => page_number,
115
+ 'PageSize' => page_size,
116
+ })
117
+
118
+ response = @version.page('GET', @uri, params: params)
119
+
120
+ UsageRecordPage.new(@version, response, @solution)
121
+ end
122
+
123
+ ##
124
+ # Retrieve a single page of UsageRecordInstance records from the API.
125
+ # Request is executed immediately.
126
+ # @param [String] target_url API-generated URL for the requested results page
127
+ # @return [Page] Page of UsageRecordInstance
128
+ def get_page(target_url)
129
+ response = @version.domain.request(
130
+ 'GET',
131
+ target_url
132
+ )
133
+ UsageRecordPage.new(@version, response, @solution)
134
+ end
135
+
136
+ ##
137
+ # Provide a user friendly representation
138
+ def to_s
139
+ '#<Twilio.Wireless.V1.UsageRecordList>'
140
+ end
141
+ end
142
+
143
+ class UsageRecordPage < Page
144
+ ##
145
+ # Initialize the UsageRecordPage
146
+ # @param [Version] version Version that contains the resource
147
+ # @param [Response] response Response from the API
148
+ # @param [Hash] solution Path solution for the resource
149
+ # @return [UsageRecordPage] UsageRecordPage
150
+ def initialize(version, response, solution)
151
+ super(version, response)
152
+
153
+ # Path Solution
154
+ @solution = solution
155
+ end
156
+
157
+ ##
158
+ # Build an instance of UsageRecordInstance
159
+ # @param [Hash] payload Payload response from the API
160
+ # @return [UsageRecordInstance] UsageRecordInstance
161
+ def get_instance(payload)
162
+ UsageRecordInstance.new(@version, payload, )
163
+ end
164
+
165
+ ##
166
+ # Provide a user friendly representation
167
+ def to_s
168
+ '<Twilio.Wireless.V1.UsageRecordPage>'
169
+ end
170
+ end
171
+
172
+ class UsageRecordInstance < InstanceResource
173
+ ##
174
+ # Initialize the UsageRecordInstance
175
+ # @param [Version] version Version that contains the resource
176
+ # @param [Hash] payload payload that contains response from Twilio
177
+ # @return [UsageRecordInstance] UsageRecordInstance
178
+ def initialize(version, payload)
179
+ super(version)
180
+
181
+ # Marshaled Properties
182
+ @properties = {
183
+ 'account_sid' => payload['account_sid'],
184
+ 'period' => payload['period'],
185
+ 'commands' => payload['commands'],
186
+ 'data' => payload['data'],
187
+ }
188
+ end
189
+
190
+ ##
191
+ # @return [String] The SID of the Account that created the resource
192
+ def account_sid
193
+ @properties['account_sid']
194
+ end
195
+
196
+ ##
197
+ # @return [Hash] The time period for which usage is reported
198
+ def period
199
+ @properties['period']
200
+ end
201
+
202
+ ##
203
+ # @return [Hash] An object that describes the aggregated Commands usage for all SIMs during the specified period
204
+ def commands
205
+ @properties['commands']
206
+ end
207
+
208
+ ##
209
+ # @return [Hash] An object that describes the aggregated Data usage for all SIMs over the period
210
+ def data
211
+ @properties['data']
212
+ end
213
+
214
+ ##
215
+ # Provide a user friendly representation
216
+ def to_s
217
+ "<Twilio.Wireless.V1.UsageRecordInstance>"
218
+ end
219
+
220
+ ##
221
+ # Provide a detailed, user friendly representation
222
+ def inspect
223
+ "<Twilio.Wireless.V1.UsageRecordInstance>"
224
+ end
225
+ end
226
+ end
227
+ end
228
+ end
229
+ end
@@ -3,7 +3,7 @@
3
3
  # \ / _ _ _| _ _
4
4
  # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
5
  # / /
6
- #
6
+ #
7
7
  # frozen_string_literal: true
8
8
 
9
9
  module Twilio
@@ -15,50 +15,60 @@ module Twilio
15
15
  def initialize(domain)
16
16
  super
17
17
  @version = 'v1'
18
+ @usage_records = nil
18
19
  @commands = nil
19
20
  @rate_plans = nil
20
21
  @sims = nil
21
22
  end
22
23
 
23
24
  ##
24
- # @param [String] sid The sid
25
+ # @return [Twilio::REST::Wireless::V1::UsageRecordContext]
26
+ def usage_records
27
+ @usage_records ||= UsageRecordList.new self
28
+ end
29
+
30
+ ##
31
+ # @param [String] sid The SID of the Command resource to fetch.
25
32
  # @return [Twilio::REST::Wireless::V1::CommandContext] if sid was passed.
26
33
  # @return [Twilio::REST::Wireless::V1::CommandList]
27
34
  def commands(sid=:unset)
28
35
  if sid.nil?
29
- raise ArgumentError, 'sid cannot be nil'
30
- elsif sid == :unset
31
- @commands ||= CommandList.new self
36
+ raise ArgumentError, 'sid cannot be nil'
37
+ end
38
+ if sid == :unset
39
+ @commands ||= CommandList.new self
32
40
  else
33
- CommandContext.new(self, sid)
41
+ CommandContext.new(self, sid)
34
42
  end
35
43
  end
36
44
 
37
45
  ##
38
- # @param [String] sid The sid
46
+ # @param [String] sid The SID of the RatePlan resource to fetch.
39
47
  # @return [Twilio::REST::Wireless::V1::RatePlanContext] if sid was passed.
40
48
  # @return [Twilio::REST::Wireless::V1::RatePlanList]
41
49
  def rate_plans(sid=:unset)
42
50
  if sid.nil?
43
- raise ArgumentError, 'sid cannot be nil'
44
- elsif sid == :unset
45
- @rate_plans ||= RatePlanList.new self
51
+ raise ArgumentError, 'sid cannot be nil'
52
+ end
53
+ if sid == :unset
54
+ @rate_plans ||= RatePlanList.new self
46
55
  else
47
- RatePlanContext.new(self, sid)
56
+ RatePlanContext.new(self, sid)
48
57
  end
49
58
  end
50
59
 
51
60
  ##
52
- # @param [String] sid The sid
61
+ # @param [String] sid The SID or the `unique_name` of the Sim resource to fetch.
53
62
  # @return [Twilio::REST::Wireless::V1::SimContext] if sid was passed.
54
63
  # @return [Twilio::REST::Wireless::V1::SimList]
55
64
  def sims(sid=:unset)
56
65
  if sid.nil?
57
- raise ArgumentError, 'sid cannot be nil'
58
- elsif sid == :unset
59
- @sims ||= SimList.new self
66
+ raise ArgumentError, 'sid cannot be nil'
67
+ end
68
+ if sid == :unset
69
+ @sims ||= SimList.new self
60
70
  else
61
- SimContext.new(self, sid)
71
+ SimContext.new(self, sid)
62
72
  end
63
73
  end
64
74
 
@@ -3,7 +3,7 @@
3
3
  # \ / _ _ _| _ _
4
4
  # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
5
  # / /
6
- #
6
+ #
7
7
  # frozen_string_literal: true
8
8
 
9
9
  module Twilio
@@ -29,7 +29,13 @@ module Twilio
29
29
  end
30
30
 
31
31
  ##
32
- # @param [String] sid A 34 character string that uniquely identifies this
32
+ # @return [Twilio::REST::Wireless::V1::UsageRecordInstance]
33
+ def usage_records
34
+ self.v1.usage_records()
35
+ end
36
+
37
+ ##
38
+ # @param [String] sid The unique string that we created to identify the Command
33
39
  # resource.
34
40
  # @return [Twilio::REST::Wireless::V1::CommandInstance] if sid was passed.
35
41
  # @return [Twilio::REST::Wireless::V1::CommandList]
@@ -38,7 +44,7 @@ module Twilio
38
44
  end
39
45
 
40
46
  ##
41
- # @param [String] sid A 34 character string that uniquely identifies this
47
+ # @param [String] sid The unique string that we created to identify the RatePlan
42
48
  # resource.
43
49
  # @return [Twilio::REST::Wireless::V1::RatePlanInstance] if sid was passed.
44
50
  # @return [Twilio::REST::Wireless::V1::RatePlanList]
@@ -47,7 +53,7 @@ module Twilio
47
53
  end
48
54
 
49
55
  ##
50
- # @param [String] sid A 34 character string that uniquely identifies this
56
+ # @param [String] sid The unique string that we created to identify the Sim
51
57
  # resource.
52
58
  # @return [Twilio::REST::Wireless::V1::SimInstance] if sid was passed.
53
59
  # @return [Twilio::REST::Wireless::V1::SimList]
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ Dir[File.join(__dir__, 'framework/rest/*.rb')].sort.each do |file|
4
+ require file
5
+ end
6
+
7
+ Dir[File.join(__dir__, 'rest/*.rb')].sort.each do |file|
8
+ require file
9
+ end
10
+
11
+ Dir[File.join(__dir__, 'rest/**/*.rb')].sort.each do |file|
12
+ require file
13
+ end
@@ -25,16 +25,25 @@ module Twilio
25
25
  #
26
26
  # @return [Boolean] whether or not the computed signature matches the signature parameter
27
27
  def validate(url, params, signature)
28
+ parsed_url = URI(url)
29
+ url_with_port = add_port(parsed_url)
30
+ url_without_port = remove_port(parsed_url)
31
+
32
+ valid_body = true # default succeed, since body not always provided
28
33
  params_hash = body_or_hash(params)
29
- if params_hash.is_a? Enumerable
30
- expected = build_signature_for(url, params_hash)
31
- secure_compare(expected, signature)
32
- else
33
- expected_signature = build_signature_for(url, {})
34
- body_hash = URI.decode_www_form(URI(url).query).to_h['bodySHA256']
35
- expected_hash = build_hash_for(params)
36
- secure_compare(expected_signature, signature) && secure_compare(expected_hash, body_hash)
34
+ unless params_hash.is_a? Enumerable
35
+ body_hash = URI.decode_www_form(parsed_url.query).to_h['bodySHA256']
36
+ params_hash = build_hash_for(params)
37
+ valid_body = !(params_hash.nil? || body_hash.nil?) && secure_compare(params_hash, body_hash)
38
+ params_hash = {}
37
39
  end
40
+
41
+ # Check signature of the url with and without port numbers
42
+ # since signature generation on the back end is inconsistent
43
+ valid_signature_with_port = secure_compare(build_signature_for(url_with_port, params_hash), signature)
44
+ valid_signature_without_port = secure_compare(build_signature_for(url_without_port, params_hash), signature)
45
+
46
+ valid_body && (valid_signature_with_port || valid_signature_without_port)
38
47
  end
39
48
 
40
49
  ##
@@ -42,10 +51,10 @@ module Twilio
42
51
  #
43
52
  # @param [String] body String to hash
44
53
  #
45
- # @return [String] A base64-encoded SHA256 of the body string
54
+ # @return [String] A hex-encoded SHA256 of the body string
46
55
  def build_hash_for(body)
47
56
  hasher = OpenSSL::Digest.new('sha256')
48
- Base64.encode64(hasher.digest(body)).strip
57
+ hasher.hexdigest(body)
49
58
  end
50
59
 
51
60
  ##
@@ -58,7 +67,7 @@ module Twilio
58
67
  def build_signature_for(url, params)
59
68
  data = url + params.sort.join
60
69
  digest = OpenSSL::Digest.new('sha1')
61
- Base64.encode64(OpenSSL::HMAC.digest(digest, @auth_token, data)).strip
70
+ Base64.strict_encode64(OpenSSL::HMAC.digest(digest, @auth_token, data))
62
71
  end
63
72
 
64
73
  private
@@ -92,6 +101,50 @@ module Twilio
92
101
  params_or_body
93
102
  end
94
103
  end
104
+
105
+ ##
106
+ # Adds the standard port to the url if it doesn't already have one
107
+ #
108
+ # @param [URI] parsed_url The parsed request url
109
+ #
110
+ # @return [String] The URL with a port number
111
+ def add_port(parsed_url)
112
+ if parsed_url.port.nil? || parsed_url.port == parsed_url.default_port
113
+ build_url_with_port_for(parsed_url)
114
+ else
115
+ parsed_url.to_s
116
+ end
117
+ end
118
+
119
+ ##
120
+ # Removes the port from the url
121
+ #
122
+ # @param [URI] parsed_url The parsed request url
123
+ #
124
+ # @return [String] The URL without a port number
125
+ def remove_port(parsed_url)
126
+ parsed_url.port = nil
127
+ parsed_url.to_s
128
+ end
129
+
130
+ ##
131
+ # Builds the url from its component pieces, with the standard port
132
+ #
133
+ # @param [URI] parsed_url The parsed request url
134
+ #
135
+ # @return [String] The URL with the standard port number
136
+ def build_url_with_port_for(parsed_url)
137
+ url = ''
138
+
139
+ url += parsed_url.scheme ? "#{parsed_url.scheme}://" : ''
140
+ url += parsed_url.userinfo ? "#{parsed_url.userinfo}@" : ''
141
+ url += parsed_url.host ? "#{parsed_url.host}:#{parsed_url.port}" : ''
142
+ url += parsed_url.path
143
+ url += parsed_url.query ? "?#{parsed_url.query}" : ''
144
+ url += parsed_url.fragment ? "##{parsed_url.fragment}" : ''
145
+
146
+ url
147
+ end
95
148
  end
96
149
  end
97
150
  end