twilio-ruby 3.11.5 → 5.71.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 (673) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +1 -0
  3. data/.github/workflows/pr-lint.yml +15 -0
  4. data/.github/workflows/test-and-deploy.yml +129 -0
  5. data/.gitignore +12 -2
  6. data/.rubocop.yml +59 -0
  7. data/.rubocop_todo.yml +261 -0
  8. data/AUTHORS.md +21 -0
  9. data/CHANGES.md +3045 -0
  10. data/CODE_OF_CONDUCT.md +73 -0
  11. data/CONTRIBUTING.md +161 -0
  12. data/Dockerfile +9 -0
  13. data/Gemfile +2 -2
  14. data/ISSUE_TEMPLATE.md +30 -0
  15. data/LICENSE +13 -11
  16. data/Makefile +26 -5
  17. data/PULL_REQUEST_TEMPLATE.md +31 -0
  18. data/README.md +171 -90
  19. data/Rakefile +8 -10
  20. data/UPGRADE.md +30 -0
  21. data/VERSIONS.md +35 -0
  22. data/examples/examples.rb +62 -49
  23. data/examples/{print-call-log.rb → print_call_log.rb} +7 -7
  24. data/githooks/pre-commit +1 -0
  25. data/lib/rack/twilio_webhook_authentication.rb +72 -0
  26. data/lib/twilio-ruby/framework/request.rb +41 -0
  27. data/lib/twilio-ruby/framework/response.rb +18 -0
  28. data/lib/twilio-ruby/framework/rest/domain.rb +36 -0
  29. data/lib/twilio-ruby/framework/rest/error.rb +51 -0
  30. data/lib/twilio-ruby/framework/rest/helper.rb +11 -0
  31. data/lib/twilio-ruby/framework/rest/obsolete_client.rb +12 -0
  32. data/lib/twilio-ruby/framework/rest/page.rb +103 -0
  33. data/lib/twilio-ruby/framework/rest/resource.rb +23 -0
  34. data/lib/twilio-ruby/framework/rest/version.rb +153 -0
  35. data/lib/twilio-ruby/framework/serialize.rb +81 -0
  36. data/lib/twilio-ruby/framework/twilio_response.rb +19 -0
  37. data/lib/twilio-ruby/framework/values.rb +9 -0
  38. data/lib/twilio-ruby/http/http_client.rb +79 -0
  39. data/lib/twilio-ruby/http.rb +5 -0
  40. data/lib/twilio-ruby/jwt/access_token.rb +285 -0
  41. data/lib/twilio-ruby/jwt/client_capability.rb +102 -0
  42. data/lib/twilio-ruby/jwt/jwt.rb +59 -0
  43. data/lib/twilio-ruby/jwt/task_router.rb +172 -0
  44. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  45. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +339 -0
  46. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +339 -0
  47. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +122 -0
  48. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  49. data/lib/twilio-ruby/rest/accounts/v1.rb +49 -0
  50. data/lib/twilio-ruby/rest/accounts.rb +50 -9
  51. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +372 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +521 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +593 -0
  54. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +327 -0
  55. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +500 -0
  56. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +500 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +500 -0
  58. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +500 -0
  59. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +500 -0
  60. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +500 -0
  61. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +500 -0
  62. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +464 -0
  63. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +125 -0
  64. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  65. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +301 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +314 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +428 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +375 -0
  69. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +522 -0
  70. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +674 -0
  71. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +674 -0
  72. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +998 -0
  73. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +728 -0
  74. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +469 -0
  75. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +500 -0
  76. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +414 -0
  77. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +367 -0
  78. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +431 -0
  79. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +561 -0
  80. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +560 -0
  81. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +560 -0
  82. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +910 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +309 -0
  84. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +173 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +361 -0
  86. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +632 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +145 -0
  88. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +145 -0
  89. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +406 -0
  90. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +365 -0
  91. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +349 -0
  92. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +397 -0
  93. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +387 -0
  94. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +398 -0
  95. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +383 -0
  96. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +520 -0
  97. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +415 -0
  98. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +313 -0
  99. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +387 -0
  100. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +386 -0
  101. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +348 -0
  102. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +348 -0
  103. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +163 -0
  104. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +348 -0
  105. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +137 -0
  106. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +135 -0
  107. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +356 -0
  108. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +355 -0
  109. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +660 -0
  110. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +432 -0
  111. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +387 -0
  112. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +157 -0
  113. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +161 -0
  114. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +357 -0
  115. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +351 -0
  116. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +351 -0
  117. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +351 -0
  118. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +351 -0
  119. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +351 -0
  120. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +351 -0
  121. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +351 -0
  122. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +351 -0
  123. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +423 -0
  124. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +495 -0
  125. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +120 -0
  126. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +168 -0
  127. data/lib/twilio-ruby/rest/api/v2010/account.rb +953 -0
  128. data/lib/twilio-ruby/rest/api/v2010.rb +154 -0
  129. data/lib/twilio-ruby/rest/api.rb +247 -0
  130. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +220 -0
  131. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +214 -0
  132. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +399 -0
  133. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +418 -0
  134. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +392 -0
  135. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +469 -0
  136. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +218 -0
  137. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +386 -0
  138. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +456 -0
  139. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +255 -0
  140. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +237 -0
  141. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +507 -0
  142. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +420 -0
  143. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +650 -0
  144. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +194 -0
  145. data/lib/twilio-ruby/rest/autopilot/v1.rb +52 -0
  146. data/lib/twilio-ruby/rest/autopilot.rb +53 -0
  147. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +286 -0
  148. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +286 -0
  149. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +255 -0
  150. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +243 -0
  151. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +226 -0
  152. data/lib/twilio-ruby/rest/bulkexports/v1.rb +62 -0
  153. data/lib/twilio-ruby/rest/bulkexports.rb +56 -0
  154. data/lib/twilio-ruby/rest/chat/v1/credential.rb +413 -0
  155. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +402 -0
  156. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +451 -0
  157. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +448 -0
  158. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +522 -0
  159. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +374 -0
  160. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +246 -0
  161. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +447 -0
  162. data/lib/twilio-ruby/rest/chat/v1/service.rb +904 -0
  163. data/lib/twilio-ruby/rest/chat/v1.rb +62 -0
  164. data/lib/twilio-ruby/rest/chat/v2/credential.rb +411 -0
  165. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +377 -0
  166. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +397 -0
  167. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +538 -0
  168. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +544 -0
  169. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +478 -0
  170. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +612 -0
  171. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +376 -0
  172. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +392 -0
  173. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +430 -0
  174. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +498 -0
  175. data/lib/twilio-ruby/rest/chat/v2/service.rb +788 -0
  176. data/lib/twilio-ruby/rest/chat/v2.rb +60 -0
  177. data/lib/twilio-ruby/rest/chat/v3/channel.rb +275 -0
  178. data/lib/twilio-ruby/rest/chat/v3.rb +48 -0
  179. data/lib/twilio-ruby/rest/chat.rb +79 -0
  180. data/lib/twilio-ruby/rest/client.rb +572 -214
  181. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +454 -0
  182. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  183. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  184. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +355 -0
  185. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +502 -0
  186. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +502 -0
  187. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +410 -0
  188. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +562 -0
  189. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  190. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  191. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  192. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  193. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +323 -0
  194. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +269 -0
  195. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +286 -0
  196. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  197. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +548 -0
  198. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +541 -0
  199. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  200. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +595 -0
  201. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  202. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  203. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  204. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +481 -0
  205. data/lib/twilio-ruby/rest/conversations/v1/service.rb +457 -0
  206. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  207. data/lib/twilio-ruby/rest/conversations/v1/user.rb +451 -0
  208. data/lib/twilio-ruby/rest/conversations/v1.rb +143 -0
  209. data/lib/twilio-ruby/rest/conversations.rb +104 -0
  210. data/lib/twilio-ruby/rest/events/v1/event_type.rb +298 -0
  211. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +290 -0
  212. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  213. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  214. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  215. data/lib/twilio-ruby/rest/events/v1/sink.rb +418 -0
  216. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +346 -0
  217. data/lib/twilio-ruby/rest/events/v1/subscription.rb +397 -0
  218. data/lib/twilio-ruby/rest/events/v1.rb +94 -0
  219. data/lib/twilio-ruby/rest/events.rb +72 -0
  220. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +340 -0
  221. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +490 -0
  222. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +580 -0
  223. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +236 -0
  224. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +330 -0
  225. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +405 -0
  226. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +233 -0
  227. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +341 -0
  228. data/lib/twilio-ruby/rest/flex_api/v1.rb +99 -0
  229. data/lib/twilio-ruby/rest/flex_api.rb +80 -0
  230. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +258 -0
  231. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  232. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  233. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +322 -0
  234. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +262 -0
  235. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +252 -0
  236. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +314 -0
  237. data/lib/twilio-ruby/rest/insights/v1/call.rb +244 -0
  238. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  239. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +474 -0
  240. data/lib/twilio-ruby/rest/insights/v1/conference.rb +512 -0
  241. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  242. data/lib/twilio-ruby/rest/insights/v1/room.rb +499 -0
  243. data/lib/twilio-ruby/rest/insights/v1/setting.rb +215 -0
  244. data/lib/twilio-ruby/rest/insights/v1.rb +90 -0
  245. data/lib/twilio-ruby/rest/insights.rb +74 -0
  246. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +374 -0
  247. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +370 -0
  248. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +408 -0
  249. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +420 -0
  250. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +495 -0
  251. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +354 -0
  252. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +240 -0
  253. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +425 -0
  254. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +789 -0
  255. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +60 -0
  256. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +374 -0
  257. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +350 -0
  258. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +370 -0
  259. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +462 -0
  260. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +490 -0
  261. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +422 -0
  262. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +562 -0
  263. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +354 -0
  264. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +362 -0
  265. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +395 -0
  266. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +474 -0
  267. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +699 -0
  268. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +60 -0
  269. data/lib/twilio-ruby/rest/ip_messaging.rb +61 -0
  270. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +247 -0
  271. data/lib/twilio-ruby/rest/lookups/v1.rb +46 -0
  272. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +261 -0
  273. data/lib/twilio-ruby/rest/lookups/v2.rb +45 -0
  274. data/lib/twilio-ruby/rest/lookups.rb +55 -0
  275. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +397 -0
  276. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +399 -0
  277. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +221 -0
  278. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +403 -0
  279. data/lib/twilio-ruby/rest/media/v1.rb +76 -0
  280. data/lib/twilio-ruby/rest/media.rb +58 -7
  281. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +353 -0
  282. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +453 -0
  283. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  284. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +150 -0
  285. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +342 -0
  286. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +348 -0
  287. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +343 -0
  288. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +433 -0
  289. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +129 -0
  290. data/lib/twilio-ruby/rest/messaging/v1/service.rb +773 -0
  291. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +111 -0
  292. data/lib/twilio-ruby/rest/messaging/v1.rb +81 -0
  293. data/lib/twilio-ruby/rest/messaging.rb +73 -0
  294. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +305 -0
  295. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +332 -0
  296. data/lib/twilio-ruby/rest/microvisor/v1.rb +60 -0
  297. data/lib/twilio-ruby/rest/microvisor.rb +54 -0
  298. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +405 -0
  299. data/lib/twilio-ruby/rest/monitor/v1/event.rb +400 -0
  300. data/lib/twilio-ruby/rest/monitor/v1.rb +60 -0
  301. data/lib/twilio-ruby/rest/monitor.rb +56 -0
  302. data/lib/twilio-ruby/rest/notify/v1/credential.rb +418 -0
  303. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +459 -0
  304. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +369 -0
  305. data/lib/twilio-ruby/rest/notify/v1/service.rb +632 -0
  306. data/lib/twilio-ruby/rest/notify/v1.rb +62 -0
  307. data/lib/twilio-ruby/rest/notify.rb +56 -0
  308. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +268 -0
  309. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +309 -0
  310. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +320 -0
  311. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +188 -0
  312. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +614 -0
  313. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +358 -0
  314. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +273 -0
  315. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +314 -0
  316. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +378 -0
  317. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +273 -0
  318. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +189 -0
  319. data/lib/twilio-ruby/rest/numbers/v2.rb +35 -0
  320. data/lib/twilio-ruby/rest/numbers.rb +44 -0
  321. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +382 -0
  322. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +365 -0
  323. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +425 -0
  324. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +376 -0
  325. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +469 -0
  326. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +45 -0
  327. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +403 -0
  328. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +456 -0
  329. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +635 -0
  330. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +62 -0
  331. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +305 -0
  332. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +319 -0
  333. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +337 -0
  334. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +408 -0
  335. data/lib/twilio-ruby/rest/preview/marketplace.rb +60 -0
  336. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +385 -0
  337. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +406 -0
  338. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +418 -0
  339. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +385 -0
  340. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +405 -0
  341. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +415 -0
  342. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +385 -0
  343. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +405 -0
  344. data/lib/twilio-ruby/rest/preview/sync/service.rb +462 -0
  345. data/lib/twilio-ruby/rest/preview/sync.rb +44 -0
  346. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  347. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +225 -0
  348. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +195 -0
  349. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +186 -0
  350. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +277 -0
  351. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +65 -0
  352. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +212 -0
  353. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +212 -0
  354. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +206 -0
  355. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +386 -0
  356. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +407 -0
  357. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +380 -0
  358. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +437 -0
  359. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +212 -0
  360. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +373 -0
  361. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +428 -0
  362. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +241 -0
  363. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +225 -0
  364. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +495 -0
  365. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +629 -0
  366. data/lib/twilio-ruby/rest/preview/understand.rb +45 -0
  367. data/lib/twilio-ruby/rest/preview/wireless/command.rb +374 -0
  368. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +408 -0
  369. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +233 -0
  370. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +533 -0
  371. data/lib/twilio-ruby/rest/preview/wireless.rb +76 -0
  372. data/lib/twilio-ruby/rest/preview.rb +193 -0
  373. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +282 -0
  374. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +127 -0
  375. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +275 -0
  376. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +127 -0
  377. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +282 -0
  378. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +204 -0
  379. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +143 -0
  380. data/lib/twilio-ruby/rest/pricing/v1.rb +49 -0
  381. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  382. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  383. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +282 -0
  384. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +227 -0
  385. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +146 -0
  386. data/lib/twilio-ruby/rest/pricing/v2.rb +72 -0
  387. data/lib/twilio-ruby/rest/pricing.rb +82 -0
  388. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +410 -0
  389. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +429 -0
  390. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +458 -0
  391. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +468 -0
  392. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +554 -0
  393. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +377 -0
  394. data/lib/twilio-ruby/rest/proxy/v1/service.rb +606 -0
  395. data/lib/twilio-ruby/rest/proxy/v1.rb +45 -0
  396. data/lib/twilio-ruby/rest/proxy.rb +47 -0
  397. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +235 -0
  398. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +231 -0
  399. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +235 -0
  400. data/lib/twilio-ruby/rest/routes/v2.rb +76 -0
  401. data/lib/twilio-ruby/rest/routes.rb +62 -0
  402. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +334 -0
  403. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +387 -0
  404. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  405. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +391 -0
  406. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +349 -0
  407. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +394 -0
  408. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +407 -0
  409. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +454 -0
  410. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +241 -0
  411. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +364 -0
  412. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +387 -0
  413. data/lib/twilio-ruby/rest/serverless/v1/service.rb +503 -0
  414. data/lib/twilio-ruby/rest/serverless/v1.rb +44 -0
  415. data/lib/twilio-ruby/rest/serverless.rb +47 -0
  416. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +210 -0
  417. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +225 -0
  418. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +366 -0
  419. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +401 -0
  420. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +211 -0
  421. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +228 -0
  422. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +372 -0
  423. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +456 -0
  424. data/lib/twilio-ruby/rest/studio/v1/flow.rb +365 -0
  425. data/lib/twilio-ruby/rest/studio/v1.rb +44 -0
  426. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +211 -0
  427. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +228 -0
  428. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +372 -0
  429. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +449 -0
  430. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +327 -0
  431. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +199 -0
  432. data/lib/twilio-ruby/rest/studio/v2/flow.rb +482 -0
  433. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +117 -0
  434. data/lib/twilio-ruby/rest/studio/v2.rb +51 -0
  435. data/lib/twilio-ruby/rest/studio.rb +60 -0
  436. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +372 -0
  437. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +493 -0
  438. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +416 -0
  439. data/lib/twilio-ruby/rest/supersim/v1/network.rb +307 -0
  440. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +339 -0
  441. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +361 -0
  442. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  443. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +195 -0
  444. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +463 -0
  445. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +371 -0
  446. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +352 -0
  447. data/lib/twilio-ruby/rest/supersim/v1.rb +147 -0
  448. data/lib/twilio-ruby/rest/supersim.rb +106 -0
  449. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +382 -0
  450. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +430 -0
  451. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +501 -0
  452. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +381 -0
  453. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +452 -0
  454. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +506 -0
  455. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +379 -0
  456. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +451 -0
  457. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +139 -0
  458. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +407 -0
  459. data/lib/twilio-ruby/rest/sync/v1/service.rb +577 -0
  460. data/lib/twilio-ruby/rest/sync/v1.rb +44 -0
  461. data/lib/twilio-ruby/rest/sync.rb +47 -0
  462. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +402 -0
  463. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +471 -0
  464. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +747 -0
  465. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +668 -0
  466. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +389 -0
  467. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +381 -0
  468. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +287 -0
  469. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +265 -0
  470. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +285 -0
  471. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +573 -0
  472. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +743 -0
  473. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +399 -0
  474. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +250 -0
  475. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +277 -0
  476. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +204 -0
  477. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +245 -0
  478. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +638 -0
  479. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +387 -0
  480. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +252 -0
  481. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +273 -0
  482. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +517 -0
  483. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +363 -0
  484. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +234 -0
  485. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +241 -0
  486. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +740 -0
  487. data/lib/twilio-ruby/rest/taskrouter/v1.rb +44 -0
  488. data/lib/twilio-ruby/rest/taskrouter.rb +47 -0
  489. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +327 -0
  490. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +324 -0
  491. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +426 -0
  492. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +458 -0
  493. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +198 -0
  494. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +640 -0
  495. data/lib/twilio-ruby/rest/trunking/v1.rb +45 -0
  496. data/lib/twilio-ruby/rest/trunking.rb +47 -0
  497. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +359 -0
  498. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +330 -0
  499. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +328 -0
  500. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +523 -0
  501. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +356 -0
  502. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +271 -0
  503. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +262 -0
  504. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +369 -0
  505. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +271 -0
  506. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +359 -0
  507. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +330 -0
  508. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +328 -0
  509. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +523 -0
  510. data/lib/twilio-ruby/rest/trusthub/v1.rb +146 -0
  511. data/lib/twilio-ruby/rest/trusthub.rb +100 -0
  512. data/lib/twilio-ruby/rest/verify/v2/form.rb +191 -0
  513. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +269 -0
  514. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +205 -0
  515. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +551 -0
  516. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +472 -0
  517. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +309 -0
  518. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +429 -0
  519. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +370 -0
  520. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +399 -0
  521. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +391 -0
  522. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +373 -0
  523. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +212 -0
  524. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +427 -0
  525. data/lib/twilio-ruby/rest/verify/v2/service.rb +790 -0
  526. data/lib/twilio-ruby/rest/verify/v2/template.rb +206 -0
  527. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +397 -0
  528. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +234 -0
  529. data/lib/twilio-ruby/rest/verify/v2.rb +92 -0
  530. data/lib/twilio-ruby/rest/verify.rb +77 -0
  531. data/lib/twilio-ruby/rest/video/v1/composition.rb +517 -0
  532. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +657 -0
  533. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +269 -0
  534. data/lib/twilio-ruby/rest/video/v1/recording.rb +436 -0
  535. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +269 -0
  536. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +413 -0
  537. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +335 -0
  538. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +175 -0
  539. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +340 -0
  540. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +483 -0
  541. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +144 -0
  542. data/lib/twilio-ruby/rest/video/v1/room.rb +612 -0
  543. data/lib/twilio-ruby/rest/video/v1.rb +106 -0
  544. data/lib/twilio-ruby/rest/video.rb +86 -0
  545. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +184 -0
  546. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +496 -0
  547. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +441 -0
  548. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +362 -0
  549. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +128 -0
  550. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +190 -0
  551. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +404 -0
  552. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +197 -0
  553. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +129 -0
  554. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +349 -0
  555. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +329 -0
  556. data/lib/twilio-ruby/rest/voice/v1.rb +124 -0
  557. data/lib/twilio-ruby/rest/voice.rb +88 -0
  558. data/lib/twilio-ruby/rest/wireless/v1/command.rb +416 -0
  559. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +446 -0
  560. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +291 -0
  561. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +250 -0
  562. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +657 -0
  563. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +229 -0
  564. data/lib/twilio-ruby/rest/wireless/v1.rb +83 -0
  565. data/lib/twilio-ruby/rest/wireless.rb +71 -0
  566. data/lib/twilio-ruby/rest.rb +13 -0
  567. data/lib/twilio-ruby/security/request_validator.rb +150 -0
  568. data/lib/twilio-ruby/twiml/fax_response.rb +45 -0
  569. data/lib/twilio-ruby/twiml/messaging_response.rb +107 -0
  570. data/lib/twilio-ruby/twiml/twiml.rb +126 -0
  571. data/lib/twilio-ruby/twiml/voice_response.rb +1849 -0
  572. data/lib/twilio-ruby/util/configuration.rb +33 -0
  573. data/lib/twilio-ruby/util.rb +5 -1
  574. data/lib/twilio-ruby/version.rb +1 -1
  575. data/lib/twilio-ruby.rb +39 -50
  576. data/sonar-project.properties +13 -0
  577. data/twilio-ruby.gemspec +34 -26
  578. metadata +674 -141
  579. data/.travis.yml +0 -13
  580. data/CHANGES +0 -47
  581. data/docs/Makefile +0 -130
  582. data/docs/_themes/LICENSE +0 -45
  583. data/docs/_themes/README.rst +0 -25
  584. data/docs/_themes/flask_theme_support.py +0 -86
  585. data/docs/_themes/kr/layout.html +0 -32
  586. data/docs/_themes/kr/relations.html +0 -19
  587. data/docs/_themes/kr/static/flasky.css_t +0 -469
  588. data/docs/_themes/kr/static/small_flask.css +0 -70
  589. data/docs/_themes/kr/theme.conf +0 -7
  590. data/docs/_themes/kr_small/layout.html +0 -22
  591. data/docs/_themes/kr_small/static/flasky.css_t +0 -287
  592. data/docs/_themes/kr_small/theme.conf +0 -10
  593. data/docs/changelog.rst +0 -1
  594. data/docs/conf.py +0 -266
  595. data/docs/faq.rst +0 -42
  596. data/docs/getting-started.rst +0 -91
  597. data/docs/index.rst +0 -109
  598. data/docs/make.bat +0 -170
  599. data/docs/src/pip-delete-this-directory.txt +0 -5
  600. data/docs/usage/accounts.rst +0 -89
  601. data/docs/usage/applications.rst +0 -108
  602. data/docs/usage/basics.rst +0 -102
  603. data/docs/usage/caller-ids.rst +0 -45
  604. data/docs/usage/conferences.rst +0 -108
  605. data/docs/usage/errors.rst +0 -29
  606. data/docs/usage/messages.rst +0 -109
  607. data/docs/usage/notifications.rst +0 -70
  608. data/docs/usage/phone-calls.rst +0 -166
  609. data/docs/usage/phone-numbers.rst +0 -174
  610. data/docs/usage/queues.rst +0 -112
  611. data/docs/usage/recordings.rst +0 -96
  612. data/docs/usage/sip.rst +0 -103
  613. data/docs/usage/token-generation.rst +0 -81
  614. data/docs/usage/transcriptions.rst +0 -31
  615. data/docs/usage/twiml.rst +0 -69
  616. data/docs/usage/validation.rst +0 -71
  617. data/lib/twilio-ruby/rest/applications.rb +0 -6
  618. data/lib/twilio-ruby/rest/authorized_connect_apps.rb +0 -6
  619. data/lib/twilio-ruby/rest/available_phone_numbers/country.rb +0 -10
  620. data/lib/twilio-ruby/rest/available_phone_numbers/local.rb +0 -11
  621. data/lib/twilio-ruby/rest/available_phone_numbers/mobile.rb +0 -11
  622. data/lib/twilio-ruby/rest/available_phone_numbers/toll_free.rb +0 -11
  623. data/lib/twilio-ruby/rest/available_phone_numbers.rb +0 -13
  624. data/lib/twilio-ruby/rest/calls.rb +0 -28
  625. data/lib/twilio-ruby/rest/conferences/participants.rb +0 -23
  626. data/lib/twilio-ruby/rest/conferences.rb +0 -12
  627. data/lib/twilio-ruby/rest/connect_apps.rb +0 -6
  628. data/lib/twilio-ruby/rest/errors.rb +0 -14
  629. data/lib/twilio-ruby/rest/incoming_phone_numbers/local.rb +0 -13
  630. data/lib/twilio-ruby/rest/incoming_phone_numbers/mobile.rb +0 -13
  631. data/lib/twilio-ruby/rest/incoming_phone_numbers/toll_free.rb +0 -13
  632. data/lib/twilio-ruby/rest/incoming_phone_numbers.rb +0 -17
  633. data/lib/twilio-ruby/rest/instance_resource.rb +0 -101
  634. data/lib/twilio-ruby/rest/list_resource.rb +0 -110
  635. data/lib/twilio-ruby/rest/messages.rb +0 -17
  636. data/lib/twilio-ruby/rest/notifications.rb +0 -6
  637. data/lib/twilio-ruby/rest/outgoing_caller_ids.rb +0 -25
  638. data/lib/twilio-ruby/rest/queues/members.rb +0 -29
  639. data/lib/twilio-ruby/rest/queues.rb +0 -12
  640. data/lib/twilio-ruby/rest/recordings.rb +0 -35
  641. data/lib/twilio-ruby/rest/sandbox.rb +0 -5
  642. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +0 -6
  643. data/lib/twilio-ruby/rest/sip/credential_lists.rb +0 -11
  644. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +0 -6
  645. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +0 -6
  646. data/lib/twilio-ruby/rest/sip/domains.rb +0 -12
  647. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +0 -6
  648. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +0 -11
  649. data/lib/twilio-ruby/rest/sip.rb +0 -12
  650. data/lib/twilio-ruby/rest/sms/messages.rb +0 -15
  651. data/lib/twilio-ruby/rest/sms/short_codes.rb +0 -8
  652. data/lib/twilio-ruby/rest/sms.rb +0 -11
  653. data/lib/twilio-ruby/rest/transcriptions.rb +0 -6
  654. data/lib/twilio-ruby/rest/usage/records.rb +0 -21
  655. data/lib/twilio-ruby/rest/usage/triggers.rb +0 -12
  656. data/lib/twilio-ruby/rest/usage.rb +0 -10
  657. data/lib/twilio-ruby/rest/utils.rb +0 -25
  658. data/lib/twilio-ruby/twiml/response.rb +0 -15
  659. data/lib/twilio-ruby/util/capability.rb +0 -61
  660. data/lib/twilio-ruby/util/request_validator.rb +0 -22
  661. data/spec/rest/account_spec.rb +0 -58
  662. data/spec/rest/call_spec.rb +0 -18
  663. data/spec/rest/client_spec.rb +0 -100
  664. data/spec/rest/conference_spec.rb +0 -9
  665. data/spec/rest/instance_resource_spec.rb +0 -15
  666. data/spec/rest/message_spec.rb +0 -12
  667. data/spec/rest/numbers_spec.rb +0 -46
  668. data/spec/rest/queue_spec.rb +0 -9
  669. data/spec/rest/recording_spec.rb +0 -9
  670. data/spec/spec_helper.rb +0 -6
  671. data/spec/util/capability_spec.rb +0 -137
  672. data/spec/util/request_validator_spec.rb +0 -65
  673. 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
@@ -0,0 +1,83 @@
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
12
+ class V1 < Version
13
+ ##
14
+ # Initialize the V1 version of Wireless
15
+ def initialize(domain)
16
+ super
17
+ @version = 'v1'
18
+ @usage_records = nil
19
+ @commands = nil
20
+ @rate_plans = nil
21
+ @sims = nil
22
+ end
23
+
24
+ ##
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.
32
+ # @return [Twilio::REST::Wireless::V1::CommandContext] if sid was passed.
33
+ # @return [Twilio::REST::Wireless::V1::CommandList]
34
+ def commands(sid=:unset)
35
+ if sid.nil?
36
+ raise ArgumentError, 'sid cannot be nil'
37
+ end
38
+ if sid == :unset
39
+ @commands ||= CommandList.new self
40
+ else
41
+ CommandContext.new(self, sid)
42
+ end
43
+ end
44
+
45
+ ##
46
+ # @param [String] sid The SID of the RatePlan resource to fetch.
47
+ # @return [Twilio::REST::Wireless::V1::RatePlanContext] if sid was passed.
48
+ # @return [Twilio::REST::Wireless::V1::RatePlanList]
49
+ def rate_plans(sid=:unset)
50
+ if sid.nil?
51
+ raise ArgumentError, 'sid cannot be nil'
52
+ end
53
+ if sid == :unset
54
+ @rate_plans ||= RatePlanList.new self
55
+ else
56
+ RatePlanContext.new(self, sid)
57
+ end
58
+ end
59
+
60
+ ##
61
+ # @param [String] sid The SID or the `unique_name` of the Sim resource to fetch.
62
+ # @return [Twilio::REST::Wireless::V1::SimContext] if sid was passed.
63
+ # @return [Twilio::REST::Wireless::V1::SimList]
64
+ def sims(sid=:unset)
65
+ if sid.nil?
66
+ raise ArgumentError, 'sid cannot be nil'
67
+ end
68
+ if sid == :unset
69
+ @sims ||= SimList.new self
70
+ else
71
+ SimContext.new(self, sid)
72
+ end
73
+ end
74
+
75
+ ##
76
+ # Provide a user friendly representation
77
+ def to_s
78
+ '<Twilio::REST::Wireless::V1>'
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,71 @@
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
+ ##
13
+ # Initialize the Wireless Domain
14
+ def initialize(twilio)
15
+ super
16
+
17
+ @base_url = 'https://wireless.twilio.com'
18
+ @host = 'wireless.twilio.com'
19
+ @port = 443
20
+
21
+ # Versions
22
+ @v1 = nil
23
+ end
24
+
25
+ ##
26
+ # Version v1 of wireless
27
+ def v1
28
+ @v1 ||= V1.new self
29
+ end
30
+
31
+ ##
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
39
+ # resource.
40
+ # @return [Twilio::REST::Wireless::V1::CommandInstance] if sid was passed.
41
+ # @return [Twilio::REST::Wireless::V1::CommandList]
42
+ def commands(sid=:unset)
43
+ self.v1.commands(sid)
44
+ end
45
+
46
+ ##
47
+ # @param [String] sid The unique string that we created to identify the RatePlan
48
+ # resource.
49
+ # @return [Twilio::REST::Wireless::V1::RatePlanInstance] if sid was passed.
50
+ # @return [Twilio::REST::Wireless::V1::RatePlanList]
51
+ def rate_plans(sid=:unset)
52
+ self.v1.rate_plans(sid)
53
+ end
54
+
55
+ ##
56
+ # @param [String] sid The unique string that we created to identify the Sim
57
+ # resource.
58
+ # @return [Twilio::REST::Wireless::V1::SimInstance] if sid was passed.
59
+ # @return [Twilio::REST::Wireless::V1::SimList]
60
+ def sims(sid=:unset)
61
+ self.v1.sims(sid)
62
+ end
63
+
64
+ ##
65
+ # Provide a user friendly representation
66
+ def to_s
67
+ '#<Twilio::REST::Wireless>'
68
+ end
69
+ end
70
+ end
71
+ end
@@ -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
@@ -0,0 +1,150 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twilio
4
+ module Security
5
+ class RequestValidator
6
+ ##
7
+ # Initialize a Request Validator. auth_token will either be grabbed from the global Twilio object or you can
8
+ # pass it in here.
9
+ #
10
+ # @param [String] auth_token Your account auth token, used to sign requests
11
+ def initialize(auth_token = nil)
12
+ @auth_token = auth_token || Twilio.auth_token
13
+ raise ArgumentError, 'Auth token is required' if @auth_token.nil?
14
+ end
15
+
16
+ ##
17
+ # Validates that after hashing a request with Twilio's request-signing algorithm
18
+ # (https://www.twilio.com/docs/usage/security#validating-requests), the hash matches the signature parameter
19
+ #
20
+ # @param [String] url The url sent to your server, including any query parameters
21
+ # @param [String, Hash, #to_unsafe_h] params In most cases, this is the POST parameters as a hash. If you received
22
+ # a bodySHA256 parameter in the query string, this parameter can instead be the POST body as a string to
23
+ # validate JSON or other text-based payloads that aren't x-www-form-urlencoded.
24
+ # @param [String] signature The expected signature, from the X-Twilio-Signature header of the request
25
+ #
26
+ # @return [Boolean] whether or not the computed signature matches the signature parameter
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
33
+ params_hash = body_or_hash(params)
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 = {}
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)
47
+ end
48
+
49
+ ##
50
+ # Build a SHA256 hash for a body string
51
+ #
52
+ # @param [String] body String to hash
53
+ #
54
+ # @return [String] A hex-encoded SHA256 of the body string
55
+ def build_hash_for(body)
56
+ hasher = OpenSSL::Digest.new('sha256')
57
+ hasher.hexdigest(body)
58
+ end
59
+
60
+ ##
61
+ # Build a SHA1-HMAC signature for a url and parameter hash
62
+ #
63
+ # @param [String] url The request url, including any query parameters
64
+ # @param [#join] params The POST parameters
65
+ #
66
+ # @return [String] A base64 encoded SHA1-HMAC
67
+ def build_signature_for(url, params)
68
+ data = url + params.sort.join
69
+ digest = OpenSSL::Digest.new('sha1')
70
+ Base64.strict_encode64(OpenSSL::HMAC.digest(digest, @auth_token, data))
71
+ end
72
+
73
+ private
74
+
75
+ # Compares two strings in constant time to avoid timing attacks.
76
+ # Borrowed from ActiveSupport::MessageVerifier.
77
+ # https://github.com/rails/rails/blob/master/activesupport/lib/active_support/message_verifier.rb
78
+ def secure_compare(a, b)
79
+ return false unless a.bytesize == b.bytesize
80
+
81
+ l = a.unpack("C#{a.bytesize}")
82
+
83
+ res = 0
84
+ b.each_byte { |byte| res |= byte ^ l.shift }
85
+ res.zero?
86
+ end
87
+
88
+ # `ActionController::Parameters` no longer, as of Rails 5, inherits
89
+ # from `Hash` so the `sort` method, used above in `build_signature_for`
90
+ # is deprecated.
91
+ #
92
+ # `to_unsafe_h` was introduced in Rails 4.2.1, before then it is still
93
+ # possible to sort on an ActionController::Parameters object.
94
+ #
95
+ # We use `to_unsafe_h` as `to_h` returns a hash of the permitted
96
+ # parameters only and we need all the parameters to create the signature.
97
+ def body_or_hash(params_or_body)
98
+ if params_or_body.respond_to?(:to_unsafe_h)
99
+ params_or_body.to_unsafe_h
100
+ else
101
+ params_or_body
102
+ end
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
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,45 @@
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 TwiML
11
+ ##
12
+ # <Response> TwiML for Faxes
13
+ class FaxResponse < TwiML
14
+ def initialize(**keyword_args)
15
+ super(**keyword_args)
16
+ @name = 'Response'
17
+
18
+ yield(self) if block_given?
19
+ end
20
+
21
+ ##
22
+ # Create a new <Receive> element
23
+ # action:: Receive action URL
24
+ # method:: Receive action URL method
25
+ # media_type:: The media type used to store media in the fax media store
26
+ # page_size:: What size to interpret received pages as
27
+ # store_media:: Whether or not to store received media in the fax media store
28
+ # keyword_args:: additional attributes
29
+ def receive(action: nil, method: nil, media_type: nil, page_size: nil, store_media: nil, **keyword_args)
30
+ append(Receive.new(action: action, method: method, media_type: media_type, page_size: page_size, store_media: store_media, **keyword_args))
31
+ end
32
+ end
33
+
34
+ ##
35
+ # <Receive> TwiML Verb
36
+ class Receive < TwiML
37
+ def initialize(**keyword_args)
38
+ super(**keyword_args)
39
+ @name = 'Receive'
40
+
41
+ yield(self) if block_given?
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,107 @@
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 TwiML
11
+ ##
12
+ # <Response> TwiML for Messages
13
+ class MessagingResponse < TwiML
14
+ def initialize(**keyword_args)
15
+ super(**keyword_args)
16
+ @name = 'Response'
17
+
18
+ yield(self) if block_given?
19
+ end
20
+
21
+ ##
22
+ # Create a new <Message> element
23
+ # body:: Message Body
24
+ # to:: Phone Number to send Message to
25
+ # from:: Phone Number to send Message from
26
+ # action:: Action URL
27
+ # method:: Action URL Method
28
+ # status_callback:: Status callback URL. Deprecated in favor of action.
29
+ # keyword_args:: additional attributes
30
+ def message(body: nil, to: nil, from: nil, action: nil, method: nil, status_callback: nil, **keyword_args)
31
+ message = Message.new(body: body, to: to, from: from, action: action, method: method, status_callback: status_callback, **keyword_args)
32
+
33
+ yield(message) if block_given?
34
+ append(message)
35
+ end
36
+
37
+ ##
38
+ # Create a new <Redirect> element
39
+ # url:: Redirect URL
40
+ # method:: Redirect URL method
41
+ # keyword_args:: additional attributes
42
+ def redirect(url, method: nil, **keyword_args)
43
+ append(Redirect.new(url, method: method, **keyword_args))
44
+ end
45
+ end
46
+
47
+ ##
48
+ # <Redirect> TwiML Verb
49
+ class Redirect < TwiML
50
+ def initialize(url, **keyword_args)
51
+ super(**keyword_args)
52
+ @name = 'Redirect'
53
+ @value = url
54
+ yield(self) if block_given?
55
+ end
56
+ end
57
+
58
+ ##
59
+ # <Message> TwiML Verb
60
+ class Message < TwiML
61
+ def initialize(body: nil, **keyword_args)
62
+ super(**keyword_args)
63
+ @name = 'Message'
64
+ @value = body unless body.nil?
65
+ yield(self) if block_given?
66
+ end
67
+
68
+ ##
69
+ # Create a new <Body> element
70
+ # message:: Message Body
71
+ # keyword_args:: additional attributes
72
+ def body(message, **keyword_args)
73
+ append(Body.new(message, **keyword_args))
74
+ end
75
+
76
+ ##
77
+ # Create a new <Media> element
78
+ # url:: Media URL
79
+ # keyword_args:: additional attributes
80
+ def media(url, **keyword_args)
81
+ append(Media.new(url, **keyword_args))
82
+ end
83
+ end
84
+
85
+ ##
86
+ # <Media> TwiML Noun
87
+ class Media < TwiML
88
+ def initialize(url, **keyword_args)
89
+ super(**keyword_args)
90
+ @name = 'Media'
91
+ @value = url
92
+ yield(self) if block_given?
93
+ end
94
+ end
95
+
96
+ ##
97
+ # <Body> TwiML Noun
98
+ class Body < TwiML
99
+ def initialize(message, **keyword_args)
100
+ super(**keyword_args)
101
+ @name = 'Body'
102
+ @value = message
103
+ yield(self) if block_given?
104
+ end
105
+ end
106
+ end
107
+ end