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,449 @@
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 Conversations < Domain
12
+ class V1 < Version
13
+ class ServiceContext < InstanceContext
14
+ class ConversationContext < InstanceContext
15
+ class WebhookList < ListResource
16
+ ##
17
+ # Initialize the WebhookList
18
+ # @param [Version] version Version that contains the resource
19
+ # @param [String] chat_service_sid The SID of the {Conversation
20
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
21
+ # Participant resource is associated with.
22
+ # @param [String] conversation_sid The unique ID of the
23
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
24
+ # for this webhook.
25
+ # @return [WebhookList] WebhookList
26
+ def initialize(version, chat_service_sid: nil, conversation_sid: nil)
27
+ super(version)
28
+
29
+ # Path Solution
30
+ @solution = {chat_service_sid: chat_service_sid, conversation_sid: conversation_sid}
31
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Conversations/#{@solution[:conversation_sid]}/Webhooks"
32
+ end
33
+
34
+ ##
35
+ # Create the WebhookInstance
36
+ # @param [webhook.Target] target The target of this webhook: `webhook`, `studio`,
37
+ # `trigger`
38
+ # @param [String] configuration_url The absolute url the webhook request should be
39
+ # sent to.
40
+ # @param [webhook.Method] configuration_method The HTTP method to be used when
41
+ # sending a webhook request.
42
+ # @param [Array[String]] configuration_filters The list of events, firing webhook
43
+ # event for this Conversation.
44
+ # @param [Array[String]] configuration_triggers The list of keywords, firing
45
+ # webhook event for this Conversation.
46
+ # @param [String] configuration_flow_sid The studio flow SID, where the webhook
47
+ # should be sent to.
48
+ # @param [String] configuration_replay_after The message index for which and it's
49
+ # successors the webhook will be replayed. Not set by default
50
+ # @return [WebhookInstance] Created WebhookInstance
51
+ def create(target: nil, configuration_url: :unset, configuration_method: :unset, configuration_filters: :unset, configuration_triggers: :unset, configuration_flow_sid: :unset, configuration_replay_after: :unset)
52
+ data = Twilio::Values.of({
53
+ 'Target' => target,
54
+ 'Configuration.Url' => configuration_url,
55
+ 'Configuration.Method' => configuration_method,
56
+ 'Configuration.Filters' => Twilio.serialize_list(configuration_filters) { |e| e },
57
+ 'Configuration.Triggers' => Twilio.serialize_list(configuration_triggers) { |e| e },
58
+ 'Configuration.FlowSid' => configuration_flow_sid,
59
+ 'Configuration.ReplayAfter' => configuration_replay_after,
60
+ })
61
+
62
+ payload = @version.create('POST', @uri, data: data)
63
+
64
+ WebhookInstance.new(
65
+ @version,
66
+ payload,
67
+ chat_service_sid: @solution[:chat_service_sid],
68
+ conversation_sid: @solution[:conversation_sid],
69
+ )
70
+ end
71
+
72
+ ##
73
+ # Lists WebhookInstance records from the API as a list.
74
+ # Unlike stream(), this operation is eager and will load `limit` records into
75
+ # memory before returning.
76
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
77
+ # guarantees to never return more than limit. Default is no limit
78
+ # @param [Integer] page_size Number of records to fetch per request, when
79
+ # not set will use the default value of 50 records. If no page_size is defined
80
+ # but a limit is defined, stream() will attempt to read the limit with the most
81
+ # efficient page size, i.e. min(limit, 1000)
82
+ # @return [Array] Array of up to limit results
83
+ def list(limit: nil, page_size: nil)
84
+ self.stream(limit: limit, page_size: page_size).entries
85
+ end
86
+
87
+ ##
88
+ # Streams WebhookInstance records from the API as an Enumerable.
89
+ # This operation lazily loads records as efficiently as possible until the limit
90
+ # is reached.
91
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
92
+ # guarantees to never return more than limit. Default is no limit.
93
+ # @param [Integer] page_size Number of records to fetch per request, when
94
+ # not set will use the default value of 50 records. If no page_size is defined
95
+ # but a limit is defined, stream() will attempt to read the limit with the most
96
+ # efficient page size, i.e. min(limit, 1000)
97
+ # @return [Enumerable] Enumerable that will yield up to limit results
98
+ def stream(limit: nil, page_size: nil)
99
+ limits = @version.read_limits(limit, page_size)
100
+
101
+ page = self.page(page_size: limits[:page_size], )
102
+
103
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
104
+ end
105
+
106
+ ##
107
+ # When passed a block, yields WebhookInstance records from the API.
108
+ # This operation lazily loads records as efficiently as possible until the limit
109
+ # is reached.
110
+ def each
111
+ limits = @version.read_limits
112
+
113
+ page = self.page(page_size: limits[:page_size], )
114
+
115
+ @version.stream(page,
116
+ limit: limits[:limit],
117
+ page_limit: limits[:page_limit]).each {|x| yield x}
118
+ end
119
+
120
+ ##
121
+ # Retrieve a single page of WebhookInstance records from the API.
122
+ # Request is executed immediately.
123
+ # @param [String] page_token PageToken provided by the API
124
+ # @param [Integer] page_number Page Number, this value is simply for client state
125
+ # @param [Integer] page_size Number of records to return, defaults to 50
126
+ # @return [Page] Page of WebhookInstance
127
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
128
+ params = Twilio::Values.of({
129
+ 'PageToken' => page_token,
130
+ 'Page' => page_number,
131
+ 'PageSize' => page_size,
132
+ })
133
+
134
+ response = @version.page('GET', @uri, params: params)
135
+
136
+ WebhookPage.new(@version, response, @solution)
137
+ end
138
+
139
+ ##
140
+ # Retrieve a single page of WebhookInstance records from the API.
141
+ # Request is executed immediately.
142
+ # @param [String] target_url API-generated URL for the requested results page
143
+ # @return [Page] Page of WebhookInstance
144
+ def get_page(target_url)
145
+ response = @version.domain.request(
146
+ 'GET',
147
+ target_url
148
+ )
149
+ WebhookPage.new(@version, response, @solution)
150
+ end
151
+
152
+ ##
153
+ # Provide a user friendly representation
154
+ def to_s
155
+ '#<Twilio.Conversations.V1.WebhookList>'
156
+ end
157
+ end
158
+
159
+ class WebhookPage < Page
160
+ ##
161
+ # Initialize the WebhookPage
162
+ # @param [Version] version Version that contains the resource
163
+ # @param [Response] response Response from the API
164
+ # @param [Hash] solution Path solution for the resource
165
+ # @return [WebhookPage] WebhookPage
166
+ def initialize(version, response, solution)
167
+ super(version, response)
168
+
169
+ # Path Solution
170
+ @solution = solution
171
+ end
172
+
173
+ ##
174
+ # Build an instance of WebhookInstance
175
+ # @param [Hash] payload Payload response from the API
176
+ # @return [WebhookInstance] WebhookInstance
177
+ def get_instance(payload)
178
+ WebhookInstance.new(
179
+ @version,
180
+ payload,
181
+ chat_service_sid: @solution[:chat_service_sid],
182
+ conversation_sid: @solution[:conversation_sid],
183
+ )
184
+ end
185
+
186
+ ##
187
+ # Provide a user friendly representation
188
+ def to_s
189
+ '<Twilio.Conversations.V1.WebhookPage>'
190
+ end
191
+ end
192
+
193
+ class WebhookContext < InstanceContext
194
+ ##
195
+ # Initialize the WebhookContext
196
+ # @param [Version] version Version that contains the resource
197
+ # @param [String] chat_service_sid The SID of the {Conversation
198
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
199
+ # Participant resource is associated with.
200
+ # @param [String] conversation_sid The unique ID of the
201
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
202
+ # for this webhook.
203
+ # @param [String] sid A 34 character string that uniquely identifies this
204
+ # resource.
205
+ # @return [WebhookContext] WebhookContext
206
+ def initialize(version, chat_service_sid, conversation_sid, sid)
207
+ super(version)
208
+
209
+ # Path Solution
210
+ @solution = {chat_service_sid: chat_service_sid, conversation_sid: conversation_sid, sid: sid, }
211
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Conversations/#{@solution[:conversation_sid]}/Webhooks/#{@solution[:sid]}"
212
+ end
213
+
214
+ ##
215
+ # Update the WebhookInstance
216
+ # @param [String] configuration_url The absolute url the webhook request should be
217
+ # sent to.
218
+ # @param [webhook.Method] configuration_method The HTTP method to be used when
219
+ # sending a webhook request.
220
+ # @param [Array[String]] configuration_filters The list of events, firing webhook
221
+ # event for this Conversation.
222
+ # @param [Array[String]] configuration_triggers The list of keywords, firing
223
+ # webhook event for this Conversation.
224
+ # @param [String] configuration_flow_sid The studio flow SID, where the webhook
225
+ # should be sent to.
226
+ # @return [WebhookInstance] Updated WebhookInstance
227
+ def update(configuration_url: :unset, configuration_method: :unset, configuration_filters: :unset, configuration_triggers: :unset, configuration_flow_sid: :unset)
228
+ data = Twilio::Values.of({
229
+ 'Configuration.Url' => configuration_url,
230
+ 'Configuration.Method' => configuration_method,
231
+ 'Configuration.Filters' => Twilio.serialize_list(configuration_filters) { |e| e },
232
+ 'Configuration.Triggers' => Twilio.serialize_list(configuration_triggers) { |e| e },
233
+ 'Configuration.FlowSid' => configuration_flow_sid,
234
+ })
235
+
236
+ payload = @version.update('POST', @uri, data: data)
237
+
238
+ WebhookInstance.new(
239
+ @version,
240
+ payload,
241
+ chat_service_sid: @solution[:chat_service_sid],
242
+ conversation_sid: @solution[:conversation_sid],
243
+ sid: @solution[:sid],
244
+ )
245
+ end
246
+
247
+ ##
248
+ # Delete the WebhookInstance
249
+ # @return [Boolean] true if delete succeeds, false otherwise
250
+ def delete
251
+ @version.delete('DELETE', @uri)
252
+ end
253
+
254
+ ##
255
+ # Fetch the WebhookInstance
256
+ # @return [WebhookInstance] Fetched WebhookInstance
257
+ def fetch
258
+ payload = @version.fetch('GET', @uri)
259
+
260
+ WebhookInstance.new(
261
+ @version,
262
+ payload,
263
+ chat_service_sid: @solution[:chat_service_sid],
264
+ conversation_sid: @solution[:conversation_sid],
265
+ sid: @solution[:sid],
266
+ )
267
+ end
268
+
269
+ ##
270
+ # Provide a user friendly representation
271
+ def to_s
272
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
273
+ "#<Twilio.Conversations.V1.WebhookContext #{context}>"
274
+ end
275
+
276
+ ##
277
+ # Provide a detailed, user friendly representation
278
+ def inspect
279
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
280
+ "#<Twilio.Conversations.V1.WebhookContext #{context}>"
281
+ end
282
+ end
283
+
284
+ class WebhookInstance < InstanceResource
285
+ ##
286
+ # Initialize the WebhookInstance
287
+ # @param [Version] version Version that contains the resource
288
+ # @param [Hash] payload payload that contains response from Twilio
289
+ # @param [String] chat_service_sid The SID of the {Conversation
290
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
291
+ # Participant resource is associated with.
292
+ # @param [String] conversation_sid The unique ID of the
293
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
294
+ # for this webhook.
295
+ # @param [String] sid A 34 character string that uniquely identifies this
296
+ # resource.
297
+ # @return [WebhookInstance] WebhookInstance
298
+ def initialize(version, payload, chat_service_sid: nil, conversation_sid: nil, sid: nil)
299
+ super(version)
300
+
301
+ # Marshaled Properties
302
+ @properties = {
303
+ 'sid' => payload['sid'],
304
+ 'account_sid' => payload['account_sid'],
305
+ 'chat_service_sid' => payload['chat_service_sid'],
306
+ 'conversation_sid' => payload['conversation_sid'],
307
+ 'target' => payload['target'],
308
+ 'url' => payload['url'],
309
+ 'configuration' => payload['configuration'],
310
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
311
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
312
+ }
313
+
314
+ # Context
315
+ @instance_context = nil
316
+ @params = {
317
+ 'chat_service_sid' => chat_service_sid,
318
+ 'conversation_sid' => conversation_sid,
319
+ 'sid' => sid || @properties['sid'],
320
+ }
321
+ end
322
+
323
+ ##
324
+ # Generate an instance context for the instance, the context is capable of
325
+ # performing various actions. All instance actions are proxied to the context
326
+ # @return [WebhookContext] WebhookContext for this WebhookInstance
327
+ def context
328
+ unless @instance_context
329
+ @instance_context = WebhookContext.new(
330
+ @version,
331
+ @params['chat_service_sid'],
332
+ @params['conversation_sid'],
333
+ @params['sid'],
334
+ )
335
+ end
336
+ @instance_context
337
+ end
338
+
339
+ ##
340
+ # @return [String] A 34 character string that uniquely identifies this resource.
341
+ def sid
342
+ @properties['sid']
343
+ end
344
+
345
+ ##
346
+ # @return [String] The unique ID of the Account responsible for this conversation.
347
+ def account_sid
348
+ @properties['account_sid']
349
+ end
350
+
351
+ ##
352
+ # @return [String] The SID of the Conversation Service that the resource is associated with.
353
+ def chat_service_sid
354
+ @properties['chat_service_sid']
355
+ end
356
+
357
+ ##
358
+ # @return [String] The unique ID of the Conversation for this webhook.
359
+ def conversation_sid
360
+ @properties['conversation_sid']
361
+ end
362
+
363
+ ##
364
+ # @return [String] The target of this webhook.
365
+ def target
366
+ @properties['target']
367
+ end
368
+
369
+ ##
370
+ # @return [String] An absolute URL for this webhook.
371
+ def url
372
+ @properties['url']
373
+ end
374
+
375
+ ##
376
+ # @return [Hash] The configuration of this webhook.
377
+ def configuration
378
+ @properties['configuration']
379
+ end
380
+
381
+ ##
382
+ # @return [Time] The date that this resource was created.
383
+ def date_created
384
+ @properties['date_created']
385
+ end
386
+
387
+ ##
388
+ # @return [Time] The date that this resource was last updated.
389
+ def date_updated
390
+ @properties['date_updated']
391
+ end
392
+
393
+ ##
394
+ # Update the WebhookInstance
395
+ # @param [String] configuration_url The absolute url the webhook request should be
396
+ # sent to.
397
+ # @param [webhook.Method] configuration_method The HTTP method to be used when
398
+ # sending a webhook request.
399
+ # @param [Array[String]] configuration_filters The list of events, firing webhook
400
+ # event for this Conversation.
401
+ # @param [Array[String]] configuration_triggers The list of keywords, firing
402
+ # webhook event for this Conversation.
403
+ # @param [String] configuration_flow_sid The studio flow SID, where the webhook
404
+ # should be sent to.
405
+ # @return [WebhookInstance] Updated WebhookInstance
406
+ def update(configuration_url: :unset, configuration_method: :unset, configuration_filters: :unset, configuration_triggers: :unset, configuration_flow_sid: :unset)
407
+ context.update(
408
+ configuration_url: configuration_url,
409
+ configuration_method: configuration_method,
410
+ configuration_filters: configuration_filters,
411
+ configuration_triggers: configuration_triggers,
412
+ configuration_flow_sid: configuration_flow_sid,
413
+ )
414
+ end
415
+
416
+ ##
417
+ # Delete the WebhookInstance
418
+ # @return [Boolean] true if delete succeeds, false otherwise
419
+ def delete
420
+ context.delete
421
+ end
422
+
423
+ ##
424
+ # Fetch the WebhookInstance
425
+ # @return [WebhookInstance] Fetched WebhookInstance
426
+ def fetch
427
+ context.fetch
428
+ end
429
+
430
+ ##
431
+ # Provide a user friendly representation
432
+ def to_s
433
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
434
+ "<Twilio.Conversations.V1.WebhookInstance #{values}>"
435
+ end
436
+
437
+ ##
438
+ # Provide a detailed, user friendly representation
439
+ def inspect
440
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
441
+ "<Twilio.Conversations.V1.WebhookInstance #{values}>"
442
+ end
443
+ end
444
+ end
445
+ end
446
+ end
447
+ end
448
+ end
449
+ end
@@ -0,0 +1,595 @@
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 Conversations < Domain
12
+ class V1 < Version
13
+ class ServiceContext < InstanceContext
14
+ class ConversationList < ListResource
15
+ ##
16
+ # Initialize the ConversationList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] chat_service_sid The unique ID of the {Conversation
19
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
20
+ # conversation belongs to.
21
+ # @return [ConversationList] ConversationList
22
+ def initialize(version, chat_service_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {chat_service_sid: chat_service_sid}
27
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Conversations"
28
+ end
29
+
30
+ ##
31
+ # Create the ConversationInstance
32
+ # @param [String] friendly_name The human-readable name of this conversation,
33
+ # limited to 256 characters. Optional.
34
+ # @param [String] unique_name An application-defined string that uniquely
35
+ # identifies the resource. It can be used to address the resource in place of the
36
+ # resource's `sid` in the URL.
37
+ # @param [String] attributes An optional string metadata field you can use to
38
+ # store any data you wish. The string value must contain structurally valid JSON
39
+ # if specified. **Note** that if the attributes are not set "{}" will be
40
+ # returned.
41
+ # @param [String] messaging_service_sid The unique ID of the {Messaging
42
+ # Service}[https://www.twilio.com/docs/sms/services/api] this conversation belongs
43
+ # to.
44
+ # @param [Time] date_created The date that this resource was created.
45
+ # @param [Time] date_updated The date that this resource was last updated.
46
+ # @param [conversation.State] state Current state of this conversation. Can be
47
+ # either `active`, `inactive` or `closed` and defaults to `active`
48
+ # @param [String] timers_inactive ISO8601 duration when conversation will be
49
+ # switched to `inactive` state. Minimum value for this timer is 1 minute.
50
+ # @param [String] timers_closed ISO8601 duration when conversation will be
51
+ # switched to `closed` state. Minimum value for this timer is 10 minutes.
52
+ # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
53
+ # X-Twilio-Webhook-Enabled HTTP request header
54
+ # @return [ConversationInstance] Created ConversationInstance
55
+ def create(friendly_name: :unset, unique_name: :unset, attributes: :unset, messaging_service_sid: :unset, date_created: :unset, date_updated: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, x_twilio_webhook_enabled: :unset)
56
+ data = Twilio::Values.of({
57
+ 'FriendlyName' => friendly_name,
58
+ 'UniqueName' => unique_name,
59
+ 'Attributes' => attributes,
60
+ 'MessagingServiceSid' => messaging_service_sid,
61
+ 'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
62
+ 'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
63
+ 'State' => state,
64
+ 'Timers.Inactive' => timers_inactive,
65
+ 'Timers.Closed' => timers_closed,
66
+ })
67
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
68
+
69
+ payload = @version.create('POST', @uri, data: data, headers: headers)
70
+
71
+ ConversationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
72
+ end
73
+
74
+ ##
75
+ # Lists ConversationInstance records from the API as a list.
76
+ # Unlike stream(), this operation is eager and will load `limit` records into
77
+ # memory before returning.
78
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
79
+ # guarantees to never return more than limit. Default is no limit
80
+ # @param [Integer] page_size Number of records to fetch per request, when
81
+ # not set will use the default value of 50 records. If no page_size is defined
82
+ # but a limit is defined, stream() will attempt to read the limit with the most
83
+ # efficient page size, i.e. min(limit, 1000)
84
+ # @return [Array] Array of up to limit results
85
+ def list(limit: nil, page_size: nil)
86
+ self.stream(limit: limit, page_size: page_size).entries
87
+ end
88
+
89
+ ##
90
+ # Streams ConversationInstance records from the API as an Enumerable.
91
+ # This operation lazily loads records as efficiently as possible until the limit
92
+ # is reached.
93
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
94
+ # guarantees to never return more than limit. Default is no limit.
95
+ # @param [Integer] page_size Number of records to fetch per request, when
96
+ # not set will use the default value of 50 records. If no page_size is defined
97
+ # but a limit is defined, stream() will attempt to read the limit with the most
98
+ # efficient page size, i.e. min(limit, 1000)
99
+ # @return [Enumerable] Enumerable that will yield up to limit results
100
+ def stream(limit: nil, page_size: nil)
101
+ limits = @version.read_limits(limit, page_size)
102
+
103
+ page = self.page(page_size: limits[:page_size], )
104
+
105
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
106
+ end
107
+
108
+ ##
109
+ # When passed a block, yields ConversationInstance records from the API.
110
+ # This operation lazily loads records as efficiently as possible until the limit
111
+ # is reached.
112
+ def each
113
+ limits = @version.read_limits
114
+
115
+ page = self.page(page_size: limits[:page_size], )
116
+
117
+ @version.stream(page,
118
+ limit: limits[:limit],
119
+ page_limit: limits[:page_limit]).each {|x| yield x}
120
+ end
121
+
122
+ ##
123
+ # Retrieve a single page of ConversationInstance records from the API.
124
+ # Request is executed immediately.
125
+ # @param [String] page_token PageToken provided by the API
126
+ # @param [Integer] page_number Page Number, this value is simply for client state
127
+ # @param [Integer] page_size Number of records to return, defaults to 50
128
+ # @return [Page] Page of ConversationInstance
129
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
130
+ params = Twilio::Values.of({
131
+ 'PageToken' => page_token,
132
+ 'Page' => page_number,
133
+ 'PageSize' => page_size,
134
+ })
135
+
136
+ response = @version.page('GET', @uri, params: params)
137
+
138
+ ConversationPage.new(@version, response, @solution)
139
+ end
140
+
141
+ ##
142
+ # Retrieve a single page of ConversationInstance records from the API.
143
+ # Request is executed immediately.
144
+ # @param [String] target_url API-generated URL for the requested results page
145
+ # @return [Page] Page of ConversationInstance
146
+ def get_page(target_url)
147
+ response = @version.domain.request(
148
+ 'GET',
149
+ target_url
150
+ )
151
+ ConversationPage.new(@version, response, @solution)
152
+ end
153
+
154
+ ##
155
+ # Provide a user friendly representation
156
+ def to_s
157
+ '#<Twilio.Conversations.V1.ConversationList>'
158
+ end
159
+ end
160
+
161
+ class ConversationPage < Page
162
+ ##
163
+ # Initialize the ConversationPage
164
+ # @param [Version] version Version that contains the resource
165
+ # @param [Response] response Response from the API
166
+ # @param [Hash] solution Path solution for the resource
167
+ # @return [ConversationPage] ConversationPage
168
+ def initialize(version, response, solution)
169
+ super(version, response)
170
+
171
+ # Path Solution
172
+ @solution = solution
173
+ end
174
+
175
+ ##
176
+ # Build an instance of ConversationInstance
177
+ # @param [Hash] payload Payload response from the API
178
+ # @return [ConversationInstance] ConversationInstance
179
+ def get_instance(payload)
180
+ ConversationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
181
+ end
182
+
183
+ ##
184
+ # Provide a user friendly representation
185
+ def to_s
186
+ '<Twilio.Conversations.V1.ConversationPage>'
187
+ end
188
+ end
189
+
190
+ class ConversationContext < InstanceContext
191
+ ##
192
+ # Initialize the ConversationContext
193
+ # @param [Version] version Version that contains the resource
194
+ # @param [String] chat_service_sid The SID of the {Conversation
195
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
196
+ # Conversation resource is associated with.
197
+ # @param [String] sid A 34 character string that uniquely identifies this
198
+ # resource. Can also be the `unique_name` of the Conversation.
199
+ # @return [ConversationContext] ConversationContext
200
+ def initialize(version, chat_service_sid, sid)
201
+ super(version)
202
+
203
+ # Path Solution
204
+ @solution = {chat_service_sid: chat_service_sid, sid: sid, }
205
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Conversations/#{@solution[:sid]}"
206
+
207
+ # Dependents
208
+ @participants = nil
209
+ @messages = nil
210
+ @webhooks = nil
211
+ end
212
+
213
+ ##
214
+ # Update the ConversationInstance
215
+ # @param [String] friendly_name The human-readable name of this conversation,
216
+ # limited to 256 characters. Optional.
217
+ # @param [Time] date_created The date that this resource was created.
218
+ # @param [Time] date_updated The date that this resource was last updated.
219
+ # @param [String] attributes An optional string metadata field you can use to
220
+ # store any data you wish. The string value must contain structurally valid JSON
221
+ # if specified. **Note** that if the attributes are not set "{}" will be
222
+ # returned.
223
+ # @param [String] messaging_service_sid The unique ID of the {Messaging
224
+ # Service}[https://www.twilio.com/docs/sms/services/api] this conversation belongs
225
+ # to.
226
+ # @param [conversation.State] state Current state of this conversation. Can be
227
+ # either `active`, `inactive` or `closed` and defaults to `active`
228
+ # @param [String] timers_inactive ISO8601 duration when conversation will be
229
+ # switched to `inactive` state. Minimum value for this timer is 1 minute.
230
+ # @param [String] timers_closed ISO8601 duration when conversation will be
231
+ # switched to `closed` state. Minimum value for this timer is 10 minutes.
232
+ # @param [String] unique_name An application-defined string that uniquely
233
+ # identifies the resource. It can be used to address the resource in place of the
234
+ # resource's `sid` in the URL.
235
+ # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
236
+ # X-Twilio-Webhook-Enabled HTTP request header
237
+ # @return [ConversationInstance] Updated ConversationInstance
238
+ def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, unique_name: :unset, x_twilio_webhook_enabled: :unset)
239
+ data = Twilio::Values.of({
240
+ 'FriendlyName' => friendly_name,
241
+ 'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
242
+ 'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
243
+ 'Attributes' => attributes,
244
+ 'MessagingServiceSid' => messaging_service_sid,
245
+ 'State' => state,
246
+ 'Timers.Inactive' => timers_inactive,
247
+ 'Timers.Closed' => timers_closed,
248
+ 'UniqueName' => unique_name,
249
+ })
250
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
251
+
252
+ payload = @version.update('POST', @uri, data: data, headers: headers)
253
+
254
+ ConversationInstance.new(
255
+ @version,
256
+ payload,
257
+ chat_service_sid: @solution[:chat_service_sid],
258
+ sid: @solution[:sid],
259
+ )
260
+ end
261
+
262
+ ##
263
+ # Delete the ConversationInstance
264
+ # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
265
+ # X-Twilio-Webhook-Enabled HTTP request header
266
+ # @return [Boolean] true if delete succeeds, false otherwise
267
+ def delete(x_twilio_webhook_enabled: :unset)
268
+ headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
269
+
270
+ @version.delete('DELETE', @uri, headers: headers)
271
+ end
272
+
273
+ ##
274
+ # Fetch the ConversationInstance
275
+ # @return [ConversationInstance] Fetched ConversationInstance
276
+ def fetch
277
+ payload = @version.fetch('GET', @uri)
278
+
279
+ ConversationInstance.new(
280
+ @version,
281
+ payload,
282
+ chat_service_sid: @solution[:chat_service_sid],
283
+ sid: @solution[:sid],
284
+ )
285
+ end
286
+
287
+ ##
288
+ # Access the participants
289
+ # @return [ParticipantList]
290
+ # @return [ParticipantContext] if sid was passed.
291
+ def participants(sid=:unset)
292
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
293
+
294
+ if sid != :unset
295
+ return ParticipantContext.new(@version, @solution[:chat_service_sid], @solution[:sid], sid, )
296
+ end
297
+
298
+ unless @participants
299
+ @participants = ParticipantList.new(
300
+ @version,
301
+ chat_service_sid: @solution[:chat_service_sid],
302
+ conversation_sid: @solution[:sid],
303
+ )
304
+ end
305
+
306
+ @participants
307
+ end
308
+
309
+ ##
310
+ # Access the messages
311
+ # @return [MessageList]
312
+ # @return [MessageContext] if sid was passed.
313
+ def messages(sid=:unset)
314
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
315
+
316
+ if sid != :unset
317
+ return MessageContext.new(@version, @solution[:chat_service_sid], @solution[:sid], sid, )
318
+ end
319
+
320
+ unless @messages
321
+ @messages = MessageList.new(
322
+ @version,
323
+ chat_service_sid: @solution[:chat_service_sid],
324
+ conversation_sid: @solution[:sid],
325
+ )
326
+ end
327
+
328
+ @messages
329
+ end
330
+
331
+ ##
332
+ # Access the webhooks
333
+ # @return [WebhookList]
334
+ # @return [WebhookContext] if sid was passed.
335
+ def webhooks(sid=:unset)
336
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
337
+
338
+ if sid != :unset
339
+ return WebhookContext.new(@version, @solution[:chat_service_sid], @solution[:sid], sid, )
340
+ end
341
+
342
+ unless @webhooks
343
+ @webhooks = WebhookList.new(
344
+ @version,
345
+ chat_service_sid: @solution[:chat_service_sid],
346
+ conversation_sid: @solution[:sid],
347
+ )
348
+ end
349
+
350
+ @webhooks
351
+ end
352
+
353
+ ##
354
+ # Provide a user friendly representation
355
+ def to_s
356
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
357
+ "#<Twilio.Conversations.V1.ConversationContext #{context}>"
358
+ end
359
+
360
+ ##
361
+ # Provide a detailed, user friendly representation
362
+ def inspect
363
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
364
+ "#<Twilio.Conversations.V1.ConversationContext #{context}>"
365
+ end
366
+ end
367
+
368
+ class ConversationInstance < InstanceResource
369
+ ##
370
+ # Initialize the ConversationInstance
371
+ # @param [Version] version Version that contains the resource
372
+ # @param [Hash] payload payload that contains response from Twilio
373
+ # @param [String] chat_service_sid The unique ID of the {Conversation
374
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
375
+ # conversation belongs to.
376
+ # @param [String] sid A 34 character string that uniquely identifies this
377
+ # resource. Can also be the `unique_name` of the Conversation.
378
+ # @return [ConversationInstance] ConversationInstance
379
+ def initialize(version, payload, chat_service_sid: nil, sid: nil)
380
+ super(version)
381
+
382
+ # Marshaled Properties
383
+ @properties = {
384
+ 'account_sid' => payload['account_sid'],
385
+ 'chat_service_sid' => payload['chat_service_sid'],
386
+ 'messaging_service_sid' => payload['messaging_service_sid'],
387
+ 'sid' => payload['sid'],
388
+ 'friendly_name' => payload['friendly_name'],
389
+ 'unique_name' => payload['unique_name'],
390
+ 'attributes' => payload['attributes'],
391
+ 'state' => payload['state'],
392
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
393
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
394
+ 'timers' => payload['timers'],
395
+ 'url' => payload['url'],
396
+ 'links' => payload['links'],
397
+ 'bindings' => payload['bindings'],
398
+ }
399
+
400
+ # Context
401
+ @instance_context = nil
402
+ @params = {'chat_service_sid' => chat_service_sid, 'sid' => sid || @properties['sid'], }
403
+ end
404
+
405
+ ##
406
+ # Generate an instance context for the instance, the context is capable of
407
+ # performing various actions. All instance actions are proxied to the context
408
+ # @return [ConversationContext] ConversationContext for this ConversationInstance
409
+ def context
410
+ unless @instance_context
411
+ @instance_context = ConversationContext.new(@version, @params['chat_service_sid'], @params['sid'], )
412
+ end
413
+ @instance_context
414
+ end
415
+
416
+ ##
417
+ # @return [String] The unique ID of the Account responsible for this conversation.
418
+ def account_sid
419
+ @properties['account_sid']
420
+ end
421
+
422
+ ##
423
+ # @return [String] The unique ID of the Conversation Service this conversation belongs to.
424
+ def chat_service_sid
425
+ @properties['chat_service_sid']
426
+ end
427
+
428
+ ##
429
+ # @return [String] The unique ID of the Messaging Service this conversation belongs to.
430
+ def messaging_service_sid
431
+ @properties['messaging_service_sid']
432
+ end
433
+
434
+ ##
435
+ # @return [String] A 34 character string that uniquely identifies this resource.
436
+ def sid
437
+ @properties['sid']
438
+ end
439
+
440
+ ##
441
+ # @return [String] The human-readable name of this conversation.
442
+ def friendly_name
443
+ @properties['friendly_name']
444
+ end
445
+
446
+ ##
447
+ # @return [String] An application-defined string that uniquely identifies the resource
448
+ def unique_name
449
+ @properties['unique_name']
450
+ end
451
+
452
+ ##
453
+ # @return [String] An optional string metadata field you can use to store any data you wish.
454
+ def attributes
455
+ @properties['attributes']
456
+ end
457
+
458
+ ##
459
+ # @return [conversation.State] Current state of this conversation.
460
+ def state
461
+ @properties['state']
462
+ end
463
+
464
+ ##
465
+ # @return [Time] The date that this resource was created.
466
+ def date_created
467
+ @properties['date_created']
468
+ end
469
+
470
+ ##
471
+ # @return [Time] The date that this resource was last updated.
472
+ def date_updated
473
+ @properties['date_updated']
474
+ end
475
+
476
+ ##
477
+ # @return [Hash] Timer date values for this conversation.
478
+ def timers
479
+ @properties['timers']
480
+ end
481
+
482
+ ##
483
+ # @return [String] An absolute URL for this conversation.
484
+ def url
485
+ @properties['url']
486
+ end
487
+
488
+ ##
489
+ # @return [String] Absolute URLs to access the participants, messages and webhooks of this conversation.
490
+ def links
491
+ @properties['links']
492
+ end
493
+
494
+ ##
495
+ # @return [Hash] The bindings
496
+ def bindings
497
+ @properties['bindings']
498
+ end
499
+
500
+ ##
501
+ # Update the ConversationInstance
502
+ # @param [String] friendly_name The human-readable name of this conversation,
503
+ # limited to 256 characters. Optional.
504
+ # @param [Time] date_created The date that this resource was created.
505
+ # @param [Time] date_updated The date that this resource was last updated.
506
+ # @param [String] attributes An optional string metadata field you can use to
507
+ # store any data you wish. The string value must contain structurally valid JSON
508
+ # if specified. **Note** that if the attributes are not set "{}" will be
509
+ # returned.
510
+ # @param [String] messaging_service_sid The unique ID of the {Messaging
511
+ # Service}[https://www.twilio.com/docs/sms/services/api] this conversation belongs
512
+ # to.
513
+ # @param [conversation.State] state Current state of this conversation. Can be
514
+ # either `active`, `inactive` or `closed` and defaults to `active`
515
+ # @param [String] timers_inactive ISO8601 duration when conversation will be
516
+ # switched to `inactive` state. Minimum value for this timer is 1 minute.
517
+ # @param [String] timers_closed ISO8601 duration when conversation will be
518
+ # switched to `closed` state. Minimum value for this timer is 10 minutes.
519
+ # @param [String] unique_name An application-defined string that uniquely
520
+ # identifies the resource. It can be used to address the resource in place of the
521
+ # resource's `sid` in the URL.
522
+ # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
523
+ # X-Twilio-Webhook-Enabled HTTP request header
524
+ # @return [ConversationInstance] Updated ConversationInstance
525
+ def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, unique_name: :unset, x_twilio_webhook_enabled: :unset)
526
+ context.update(
527
+ friendly_name: friendly_name,
528
+ date_created: date_created,
529
+ date_updated: date_updated,
530
+ attributes: attributes,
531
+ messaging_service_sid: messaging_service_sid,
532
+ state: state,
533
+ timers_inactive: timers_inactive,
534
+ timers_closed: timers_closed,
535
+ unique_name: unique_name,
536
+ x_twilio_webhook_enabled: x_twilio_webhook_enabled,
537
+ )
538
+ end
539
+
540
+ ##
541
+ # Delete the ConversationInstance
542
+ # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
543
+ # X-Twilio-Webhook-Enabled HTTP request header
544
+ # @return [Boolean] true if delete succeeds, false otherwise
545
+ def delete(x_twilio_webhook_enabled: :unset)
546
+ context.delete(x_twilio_webhook_enabled: x_twilio_webhook_enabled, )
547
+ end
548
+
549
+ ##
550
+ # Fetch the ConversationInstance
551
+ # @return [ConversationInstance] Fetched ConversationInstance
552
+ def fetch
553
+ context.fetch
554
+ end
555
+
556
+ ##
557
+ # Access the participants
558
+ # @return [participants] participants
559
+ def participants
560
+ context.participants
561
+ end
562
+
563
+ ##
564
+ # Access the messages
565
+ # @return [messages] messages
566
+ def messages
567
+ context.messages
568
+ end
569
+
570
+ ##
571
+ # Access the webhooks
572
+ # @return [webhooks] webhooks
573
+ def webhooks
574
+ context.webhooks
575
+ end
576
+
577
+ ##
578
+ # Provide a user friendly representation
579
+ def to_s
580
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
581
+ "<Twilio.Conversations.V1.ConversationInstance #{values}>"
582
+ end
583
+
584
+ ##
585
+ # Provide a detailed, user friendly representation
586
+ def inspect
587
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
588
+ "<Twilio.Conversations.V1.ConversationInstance #{values}>"
589
+ end
590
+ end
591
+ end
592
+ end
593
+ end
594
+ end
595
+ end