twilio-ruby 5.61.2 → 6.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (677) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/pr-lint.yml +21 -0
  3. data/.github/workflows/test-and-deploy.yml +139 -0
  4. data/.gitignore +3 -0
  5. data/.rubocop.yml +1 -1
  6. data/.rubocop_todo.yml +84 -21
  7. data/CHANGES.md +893 -1
  8. data/CONTRIBUTING.md +11 -9
  9. data/LICENSE +1 -1
  10. data/Makefile +13 -8
  11. data/PULL_REQUEST_TEMPLATE.md +1 -1
  12. data/README.md +136 -44
  13. data/UPGRADE.md +10 -0
  14. data/advanced-examples/custom-http-client.md +170 -0
  15. data/cluster_spec.rb +77 -0
  16. data/lib/rack/twilio_webhook_authentication.rb +25 -1
  17. data/lib/twilio-ruby/base/client_base.rb +121 -0
  18. data/lib/twilio-ruby/framework/rest/error.rb +0 -12
  19. data/lib/twilio-ruby/http/http_client.rb +11 -6
  20. data/lib/twilio-ruby/jwt/access_token.rb +0 -59
  21. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +198 -178
  22. data/lib/twilio-ruby/rest/accounts/v1/credential/aws.rb +371 -332
  23. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +371 -332
  24. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +121 -114
  25. data/lib/twilio-ruby/rest/accounts/v1/safelist.rb +169 -0
  26. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +214 -192
  27. data/lib/twilio-ruby/rest/accounts/v1.rb +51 -42
  28. data/lib/twilio-ruby/rest/accounts.rb +4 -34
  29. data/lib/twilio-ruby/rest/accounts_base.rb +38 -0
  30. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +370 -365
  31. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +551 -514
  32. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +615 -586
  33. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +313 -320
  34. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/local.rb +394 -0
  35. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/machine_to_machine.rb +394 -0
  36. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/mobile.rb +394 -0
  37. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/national.rb +394 -0
  38. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/shared_cost.rb +394 -0
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/toll_free.rb +394 -0
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country/voip.rb +394 -0
  41. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number_country.rb +432 -0
  42. data/lib/twilio-ruby/rest/api/v2010/account/balance.rb +136 -118
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +202 -194
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +252 -289
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +317 -303
  46. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +400 -417
  47. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +291 -342
  48. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +494 -511
  49. data/lib/twilio-ruby/rest/api/v2010/account/call/siprec.rb +839 -634
  50. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +872 -0
  51. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message.rb +163 -0
  52. data/lib/twilio-ruby/rest/api/v2010/account/call/user_defined_message_subscription.rb +239 -0
  53. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +952 -972
  54. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +652 -717
  55. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +451 -458
  56. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +489 -493
  57. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +426 -407
  58. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +321 -351
  59. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +398 -418
  60. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +536 -554
  61. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +536 -553
  62. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +536 -553
  63. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +841 -903
  64. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +335 -302
  65. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +167 -166
  66. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +340 -350
  67. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +615 -612
  68. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +157 -138
  69. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +157 -138
  70. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +400 -399
  71. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +368 -358
  72. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +340 -338
  73. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +426 -390
  74. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +358 -380
  75. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +368 -385
  76. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +364 -372
  77. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +507 -486
  78. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +417 -408
  79. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +335 -306
  80. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +375 -368
  81. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +399 -373
  82. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls/auth_calls_credential_list_mapping.rb +346 -0
  83. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/{auth_calls_mapping → auth_type_calls}/auth_calls_ip_access_control_list_mapping.rb +193 -195
  84. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_calls.rb +140 -0
  85. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/{auth_registrations_mapping → auth_type_registrations}/auth_registrations_credential_list_mapping.rb +193 -195
  86. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_type_registrations.rb +126 -0
  87. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +94 -103
  88. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +339 -339
  89. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +339 -338
  90. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +649 -645
  91. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +412 -421
  92. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +399 -374
  93. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +141 -150
  94. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +171 -154
  95. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +364 -350
  96. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +314 -339
  97. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +314 -339
  98. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +314 -339
  99. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +314 -339
  100. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +314 -339
  101. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +314 -339
  102. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +314 -339
  103. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +314 -339
  104. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +381 -416
  105. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +485 -484
  106. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +112 -104
  107. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +172 -161
  108. data/lib/twilio-ruby/rest/api/v2010/account.rb +979 -943
  109. data/lib/twilio-ruby/rest/api/v2010.rb +126 -148
  110. data/lib/twilio-ruby/rest/api.rb +25 -34
  111. data/lib/twilio-ruby/rest/api_base.rb +38 -0
  112. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +299 -279
  113. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +298 -279
  114. data/lib/twilio-ruby/rest/bulkexports/v1/export/job.rb +271 -248
  115. data/lib/twilio-ruby/rest/bulkexports/v1/export.rb +246 -235
  116. data/lib/twilio-ruby/rest/bulkexports/v1/export_configuration.rb +245 -218
  117. data/lib/twilio-ruby/rest/bulkexports/v1.rb +57 -55
  118. data/lib/twilio-ruby/rest/bulkexports.rb +3 -34
  119. data/lib/twilio-ruby/rest/bulkexports_base.rb +38 -0
  120. data/lib/twilio-ruby/rest/chat/v1/credential.rb +419 -403
  121. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +374 -391
  122. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +422 -440
  123. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +438 -437
  124. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +534 -515
  125. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +396 -367
  126. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +244 -239
  127. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +465 -440
  128. data/lib/twilio-ruby/rest/chat/v1/service.rb +861 -894
  129. data/lib/twilio-ruby/rest/chat/v1.rb +57 -55
  130. data/lib/twilio-ruby/rest/chat/v2/credential.rb +419 -401
  131. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +371 -370
  132. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +374 -386
  133. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +486 -527
  134. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +513 -533
  135. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +440 -467
  136. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +606 -605
  137. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +396 -369
  138. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +364 -381
  139. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +406 -413
  140. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +509 -491
  141. data/lib/twilio-ruby/rest/chat/v2/service.rb +764 -778
  142. data/lib/twilio-ruby/rest/chat/v2.rb +57 -53
  143. data/lib/twilio-ruby/rest/chat/v3/channel.rb +297 -0
  144. data/lib/twilio-ruby/rest/chat/v3.rb +71 -0
  145. data/lib/twilio-ruby/rest/chat.rb +10 -38
  146. data/lib/twilio-ruby/rest/chat_base.rb +48 -0
  147. data/lib/twilio-ruby/rest/client.rb +318 -561
  148. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +208 -0
  149. data/lib/twilio-ruby/rest/content/v1/content.rb +363 -0
  150. data/lib/twilio-ruby/rest/content/v1/content_and_approvals.rb +251 -0
  151. data/lib/twilio-ruby/rest/content/v1/legacy_content.rb +265 -0
  152. data/lib/twilio-ruby/rest/content/v1.rb +61 -0
  153. data/lib/twilio-ruby/rest/content.rb +15 -0
  154. data/lib/twilio-ruby/rest/content_base.rb +38 -0
  155. data/lib/twilio-ruby/rest/conversations/v1/address_configuration.rb +482 -0
  156. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -227
  157. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +279 -252
  158. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +334 -344
  159. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +537 -495
  160. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +498 -495
  161. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +425 -403
  162. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +620 -552
  163. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +425 -409
  164. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +304 -304
  165. data/lib/twilio-ruby/rest/conversations/v1/role.rb +384 -356
  166. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +364 -373
  167. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +300 -289
  168. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +246 -235
  169. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +307 -279
  170. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +341 -371
  171. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +544 -535
  172. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +507 -530
  173. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +434 -438
  174. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +632 -588
  175. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +310 -317
  176. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +396 -380
  177. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +446 -455
  178. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +484 -474
  179. data/lib/twilio-ruby/rest/conversations/v1/service.rb +476 -447
  180. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +445 -435
  181. data/lib/twilio-ruby/rest/conversations/v1/user.rb +472 -441
  182. data/lib/twilio-ruby/rest/conversations/v1.rb +129 -119
  183. data/lib/twilio-ruby/rest/conversations.rb +18 -34
  184. data/lib/twilio-ruby/rest/conversations_base.rb +38 -0
  185. data/lib/twilio-ruby/rest/events/v1/event_type.rb +302 -288
  186. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +299 -0
  187. data/lib/twilio-ruby/rest/events/v1/schema.rb +227 -218
  188. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +114 -100
  189. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +120 -103
  190. data/lib/twilio-ruby/rest/events/v1/sink.rb +434 -408
  191. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +365 -339
  192. data/lib/twilio-ruby/rest/events/v1/subscription.rb +416 -387
  193. data/lib/twilio-ruby/rest/events/v1.rb +87 -87
  194. data/lib/twilio-ruby/rest/events.rb +5 -34
  195. data/lib/twilio-ruby/rest/events_base.rb +38 -0
  196. data/lib/twilio-ruby/rest/flex_api/v1/assessments.rb +448 -0
  197. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +365 -330
  198. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +510 -475
  199. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +563 -555
  200. data/lib/twilio-ruby/rest/flex_api/v1/insights_assessments_comment.rb +327 -0
  201. data/lib/twilio-ruby/rest/flex_api/v1/insights_conversations.rb +228 -0
  202. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires.rb +442 -0
  203. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_category.rb +358 -0
  204. data/lib/twilio-ruby/rest/flex_api/v1/insights_questionnaires_question.rb +443 -0
  205. data/lib/twilio-ruby/rest/flex_api/v1/insights_segments.rb +361 -0
  206. data/lib/twilio-ruby/rest/flex_api/v1/insights_session.rb +217 -0
  207. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_answer_sets.rb +155 -0
  208. data/lib/twilio-ruby/rest/flex_api/v1/insights_settings_comment.rb +141 -0
  209. data/lib/twilio-ruby/rest/flex_api/v1/insights_user_roles.rb +196 -0
  210. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +251 -0
  211. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +339 -0
  212. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +406 -0
  213. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +267 -0
  214. data/lib/twilio-ruby/rest/flex_api/v1/provisioning_status.rb +187 -0
  215. data/lib/twilio-ruby/rest/flex_api/v1/web_channel.rb +378 -331
  216. data/lib/twilio-ruby/rest/flex_api/v1.rb +201 -76
  217. data/lib/twilio-ruby/rest/flex_api/v2/web_channels.rb +146 -0
  218. data/lib/twilio-ruby/rest/flex_api/v2.rb +40 -0
  219. data/lib/twilio-ruby/rest/flex_api.rb +33 -31
  220. data/lib/twilio-ruby/rest/flex_api_base.rb +43 -0
  221. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +244 -227
  222. data/lib/twilio-ruby/rest/frontline_api/v1.rb +42 -38
  223. data/lib/twilio-ruby/rest/frontline_api.rb +2 -34
  224. data/lib/twilio-ruby/rest/frontline_api_base.rb +38 -0
  225. data/lib/twilio-ruby/rest/insights/v1/call/annotation.rb +319 -0
  226. data/lib/twilio-ruby/rest/insights/v1/call/call_summary.rb +350 -0
  227. data/lib/twilio-ruby/rest/insights/v1/call/event.rb +269 -255
  228. data/lib/twilio-ruby/rest/insights/v1/call/metric.rb +241 -225
  229. data/lib/twilio-ruby/rest/insights/v1/call.rb +260 -228
  230. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +485 -426
  231. data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +488 -0
  232. data/lib/twilio-ruby/rest/insights/v1/conference.rb +505 -0
  233. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -371
  234. data/lib/twilio-ruby/rest/insights/v1/room.rb +490 -489
  235. data/lib/twilio-ruby/rest/insights/v1/setting.rb +254 -0
  236. data/lib/twilio-ruby/rest/insights/v1.rb +84 -60
  237. data/lib/twilio-ruby/rest/insights.rb +17 -31
  238. data/lib/twilio-ruby/rest/insights_base.rb +38 -0
  239. data/lib/twilio-ruby/rest/intelligence/v2/service.rb +510 -0
  240. data/lib/twilio-ruby/rest/intelligence/v2/transcript/media.rb +226 -0
  241. data/lib/twilio-ruby/rest/intelligence/v2/transcript/operator_result.rb +388 -0
  242. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +248 -0
  243. data/lib/twilio-ruby/rest/intelligence/v2/transcript.rb +520 -0
  244. data/lib/twilio-ruby/rest/intelligence/v2.rb +64 -0
  245. data/lib/twilio-ruby/rest/intelligence.rb +6 -0
  246. data/lib/twilio-ruby/rest/intelligence_base.rb +38 -0
  247. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +419 -364
  248. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +374 -359
  249. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +422 -397
  250. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +438 -409
  251. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +534 -488
  252. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +396 -347
  253. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +244 -233
  254. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +465 -418
  255. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +861 -779
  256. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +57 -53
  257. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +419 -364
  258. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +371 -343
  259. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +374 -359
  260. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +486 -451
  261. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +513 -479
  262. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +440 -411
  263. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +606 -555
  264. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +396 -347
  265. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +364 -351
  266. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +397 -384
  267. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +509 -467
  268. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +764 -689
  269. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +57 -53
  270. data/lib/twilio-ruby/rest/ip_messaging.rb +3 -41
  271. data/lib/twilio-ruby/rest/ip_messaging_base.rb +43 -0
  272. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +243 -239
  273. data/lib/twilio-ruby/rest/lookups/v1.rb +42 -39
  274. data/lib/twilio-ruby/rest/lookups/v2/phone_number.rb +370 -0
  275. data/lib/twilio-ruby/rest/lookups/v2.rb +49 -0
  276. data/lib/twilio-ruby/rest/lookups.rb +2 -34
  277. data/lib/twilio-ruby/rest/lookups_base.rb +43 -0
  278. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +410 -374
  279. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +404 -0
  280. data/lib/twilio-ruby/rest/media/v1/player_streamer/playback_grant.rb +245 -214
  281. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +422 -380
  282. data/lib/twilio-ruby/rest/media/v1.rb +72 -53
  283. data/lib/twilio-ruby/rest/media.rb +13 -34
  284. data/lib/twilio-ruby/rest/media_base.rb +38 -0
  285. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_registration_otp.rb +136 -0
  286. data/lib/twilio-ruby/rest/messaging/v1/brand_registration/brand_vetting.rb +358 -346
  287. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +487 -420
  288. data/lib/twilio-ruby/rest/messaging/v1/deactivations.rb +189 -0
  289. data/lib/twilio-ruby/rest/messaging/v1/domain_certs.rb +280 -0
  290. data/lib/twilio-ruby/rest/messaging/v1/domain_config.rb +289 -0
  291. data/lib/twilio-ruby/rest/messaging/v1/domain_config_messaging_service.rb +238 -0
  292. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +155 -144
  293. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service.rb +214 -0
  294. data/lib/twilio-ruby/rest/messaging/v1/linkshortening_messaging_service_domain_association.rb +196 -0
  295. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +351 -335
  296. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +329 -0
  297. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +358 -341
  298. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +358 -336
  299. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person.rb +506 -426
  300. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +121 -115
  301. data/lib/twilio-ruby/rest/messaging/v1/service.rb +767 -763
  302. data/lib/twilio-ruby/rest/messaging/v1/tollfree_verification.rb +777 -0
  303. data/lib/twilio-ruby/rest/messaging/v1/usecase.rb +106 -94
  304. data/lib/twilio-ruby/rest/messaging/v1.rb +187 -74
  305. data/lib/twilio-ruby/rest/messaging.rb +36 -35
  306. data/lib/twilio-ruby/rest/messaging_base.rb +38 -0
  307. data/lib/twilio-ruby/rest/microvisor/v1/account_config.rb +358 -0
  308. data/lib/twilio-ruby/rest/microvisor/v1/account_secret.rb +351 -0
  309. data/lib/twilio-ruby/rest/microvisor/v1/app/app_manifest.rb +208 -0
  310. data/lib/twilio-ruby/rest/microvisor/v1/app.rb +349 -0
  311. data/lib/twilio-ruby/rest/microvisor/v1/device/device_config.rb +374 -0
  312. data/lib/twilio-ruby/rest/microvisor/v1/device/device_secret.rb +367 -0
  313. data/lib/twilio-ruby/rest/microvisor/v1/device.rb +427 -0
  314. data/lib/twilio-ruby/rest/microvisor/v1.rb +94 -0
  315. data/lib/twilio-ruby/rest/microvisor.rb +24 -0
  316. data/lib/twilio-ruby/rest/microvisor_base.rb +38 -0
  317. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +398 -395
  318. data/lib/twilio-ruby/rest/monitor/v1/event.rb +381 -390
  319. data/lib/twilio-ruby/rest/monitor/v1.rb +57 -53
  320. data/lib/twilio-ruby/rest/monitor.rb +3 -34
  321. data/lib/twilio-ruby/rest/monitor_base.rb +38 -0
  322. data/lib/twilio-ruby/rest/notify/v1/credential.rb +421 -408
  323. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +437 -452
  324. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +313 -362
  325. data/lib/twilio-ruby/rest/notify/v1/service.rb +626 -622
  326. data/lib/twilio-ruby/rest/notify/v1.rb +57 -55
  327. data/lib/twilio-ruby/rest/notify.rb +3 -34
  328. data/lib/twilio-ruby/rest/notify_base.rb +38 -0
  329. data/lib/twilio-ruby/rest/numbers/v1/bulk_eligibility.rb +224 -0
  330. data/lib/twilio-ruby/rest/numbers/v1/porting_bulk_portability.rb +229 -0
  331. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_fetch.rb +245 -0
  332. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +263 -0
  333. data/lib/twilio-ruby/rest/numbers/v1.rb +94 -0
  334. data/lib/twilio-ruby/rest/numbers/v2/authorization_document/dependent_hosted_number_order.rb +343 -0
  335. data/lib/twilio-ruby/rest/numbers/v2/authorization_document.rb +403 -0
  336. data/lib/twilio-ruby/rest/numbers/v2/bulk_hosted_number_order.rb +249 -0
  337. data/lib/twilio-ruby/rest/numbers/v2/hosted_number_order.rb +502 -0
  338. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +276 -179
  339. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +324 -298
  340. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/item_assignment.rb +333 -309
  341. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/replace_items.rb +194 -181
  342. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +601 -550
  343. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +391 -351
  344. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user_type.rb +290 -266
  345. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +322 -307
  346. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +412 -364
  347. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document_type.rb +290 -266
  348. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +177 -181
  349. data/lib/twilio-ruby/rest/numbers/v2.rb +78 -28
  350. data/lib/twilio-ruby/rest/numbers.rb +2 -34
  351. data/lib/twilio-ruby/rest/numbers_base.rb +43 -0
  352. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/certificate.rb +410 -375
  353. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/deployment.rb +394 -358
  354. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/device.rb +449 -418
  355. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet/key.rb +407 -369
  356. data/lib/twilio-ruby/rest/preview/deployed_devices/fleet.rb +494 -459
  357. data/lib/twilio-ruby/rest/preview/deployed_devices.rb +42 -38
  358. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +370 -396
  359. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +446 -446
  360. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +610 -625
  361. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +57 -55
  362. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +301 -298
  363. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +325 -309
  364. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +342 -330
  365. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +429 -398
  366. data/lib/twilio-ruby/rest/preview/marketplace.rb +57 -53
  367. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +378 -374
  368. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +442 -399
  369. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +434 -407
  370. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +378 -374
  371. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +419 -398
  372. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +437 -404
  373. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +378 -374
  374. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +419 -398
  375. data/lib/twilio-ruby/rest/preview/sync/service.rb +495 -452
  376. data/lib/twilio-ruby/rest/preview/sync.rb +42 -37
  377. data/lib/twilio-ruby/rest/preview/wireless/command.rb +387 -364
  378. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +448 -398
  379. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +232 -205
  380. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +574 -523
  381. data/lib/twilio-ruby/rest/preview/wireless.rb +72 -69
  382. data/lib/twilio-ruby/rest/preview.rb +11 -137
  383. data/lib/twilio-ruby/rest/preview_base.rb +58 -0
  384. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +297 -275
  385. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +107 -119
  386. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +290 -268
  387. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +107 -119
  388. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +297 -275
  389. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +220 -197
  390. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +121 -135
  391. data/lib/twilio-ruby/rest/pricing/v1.rb +45 -42
  392. data/lib/twilio-ruby/rest/pricing/v2/country.rb +289 -270
  393. data/lib/twilio-ruby/rest/pricing/v2/number.rb +232 -217
  394. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +297 -275
  395. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +238 -220
  396. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +121 -138
  397. data/lib/twilio-ruby/rest/pricing/v2.rb +63 -65
  398. data/lib/twilio-ruby/rest/pricing.rb +6 -41
  399. data/lib/twilio-ruby/rest/pricing_base.rb +43 -0
  400. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +419 -403
  401. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +408 -418
  402. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +430 -449
  403. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +421 -455
  404. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +522 -547
  405. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +399 -370
  406. data/lib/twilio-ruby/rest/proxy/v1/service.rb +559 -596
  407. data/lib/twilio-ruby/rest/proxy/v1.rb +42 -38
  408. data/lib/twilio-ruby/rest/proxy.rb +2 -34
  409. data/lib/twilio-ruby/rest/proxy_base.rb +38 -0
  410. data/lib/twilio-ruby/rest/routes/v2/phone_number.rb +268 -0
  411. data/lib/twilio-ruby/rest/routes/v2/sip_domain.rb +268 -0
  412. data/lib/twilio-ruby/rest/routes/v2/trunk.rb +268 -0
  413. data/lib/twilio-ruby/rest/routes/v2.rb +79 -0
  414. data/lib/twilio-ruby/rest/routes.rb +32 -0
  415. data/lib/twilio-ruby/rest/routes_base.rb +38 -0
  416. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +315 -323
  417. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +412 -380
  418. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +208 -208
  419. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +407 -384
  420. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +336 -338
  421. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +361 -383
  422. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +403 -396
  423. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +456 -447
  424. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +223 -234
  425. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +342 -353
  426. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +412 -380
  427. data/lib/twilio-ruby/rest/serverless/v1/service.rb +523 -493
  428. data/lib/twilio-ruby/rest/serverless/v1.rb +42 -37
  429. data/lib/twilio-ruby/rest/serverless.rb +2 -34
  430. data/lib/twilio-ruby/rest/serverless_base.rb +38 -0
  431. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/engagement_context.rb +206 -199
  432. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step/step_context.rb +221 -218
  433. data/lib/twilio-ruby/rest/studio/v1/flow/engagement/step.rb +361 -355
  434. data/lib/twilio-ruby/rest/studio/v1/flow/engagement.rb +422 -394
  435. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_context.rb +206 -200
  436. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step/execution_step_context.rb +221 -221
  437. data/lib/twilio-ruby/rest/studio/v1/flow/execution/execution_step.rb +361 -361
  438. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +468 -449
  439. data/lib/twilio-ruby/rest/studio/v1/flow.rb +380 -355
  440. data/lib/twilio-ruby/rest/studio/v1.rb +42 -37
  441. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +206 -200
  442. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +221 -221
  443. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +361 -361
  444. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +461 -442
  445. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +341 -320
  446. data/lib/twilio-ruby/rest/studio/v2/flow/flow_test_user.rb +232 -0
  447. data/lib/twilio-ruby/rest/studio/v2/flow.rb +519 -472
  448. data/lib/twilio-ruby/rest/studio/v2/flow_validate.rb +121 -99
  449. data/lib/twilio-ruby/rest/studio/v2.rb +48 -44
  450. data/lib/twilio-ruby/rest/studio.rb +3 -41
  451. data/lib/twilio-ruby/rest/studio_base.rb +43 -0
  452. data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +403 -0
  453. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +472 -484
  454. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +398 -406
  455. data/lib/twilio-ruby/rest/supersim/v1/network.rb +302 -297
  456. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +337 -332
  457. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +380 -351
  458. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +256 -0
  459. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +242 -224
  460. data/lib/twilio-ruby/rest/supersim/v1/sim/sim_ip_address.rb +207 -0
  461. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +460 -433
  462. data/lib/twilio-ruby/rest/supersim/v1/sms_command.rb +358 -361
  463. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +286 -311
  464. data/lib/twilio-ruby/rest/supersim/v1.rb +144 -140
  465. data/lib/twilio-ruby/rest/supersim.rb +22 -40
  466. data/lib/twilio-ruby/rest/supersim_base.rb +38 -0
  467. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +376 -371
  468. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +456 -423
  469. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +466 -490
  470. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +376 -370
  471. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +470 -445
  472. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +469 -495
  473. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +376 -368
  474. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +470 -444
  475. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +139 -132
  476. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +419 -400
  477. data/lib/twilio-ruby/rest/sync/v1/service.rb +575 -567
  478. data/lib/twilio-ruby/rest/sync/v1.rb +42 -37
  479. data/lib/twilio-ruby/rest/sync.rb +2 -34
  480. data/lib/twilio-ruby/rest/sync_base.rb +38 -0
  481. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +405 -395
  482. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +442 -464
  483. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +705 -736
  484. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +623 -661
  485. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +409 -382
  486. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +359 -365
  487. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +279 -275
  488. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +230 -236
  489. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +239 -258
  490. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +574 -566
  491. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +687 -732
  492. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +389 -388
  493. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +235 -239
  494. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +281 -265
  495. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +215 -193
  496. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +251 -234
  497. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +623 -631
  498. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +359 -373
  499. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +245 -241
  500. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +230 -244
  501. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +523 -510
  502. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +353 -354
  503. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +231 -206
  504. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +241 -234
  505. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +720 -730
  506. data/lib/twilio-ruby/rest/taskrouter/v1.rb +42 -37
  507. data/lib/twilio-ruby/rest/taskrouter.rb +2 -34
  508. data/lib/twilio-ruby/rest/taskrouter_base.rb +38 -0
  509. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +342 -320
  510. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +342 -317
  511. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +440 -419
  512. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +475 -451
  513. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +224 -191
  514. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +623 -630
  515. data/lib/twilio-ruby/rest/trunking/v1.rb +42 -38
  516. data/lib/twilio-ruby/rest/trunking.rb +2 -34
  517. data/lib/twilio-ruby/rest/trunking_base.rb +38 -0
  518. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +232 -0
  519. data/lib/twilio-ruby/rest/trusthub/v1/compliance_tollfree_inquiries.rb +211 -0
  520. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_channel_endpoint_assignment.rb +357 -352
  521. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_entity_assignments.rb +335 -323
  522. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles/customer_profiles_evaluations.rb +333 -321
  523. data/lib/twilio-ruby/rest/trusthub/v1/customer_profiles.rb +525 -513
  524. data/lib/twilio-ruby/rest/trusthub/v1/end_user.rb +383 -346
  525. data/lib/twilio-ruby/rest/trusthub/v1/end_user_type.rb +282 -261
  526. data/lib/twilio-ruby/rest/trusthub/v1/policies.rb +275 -252
  527. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document.rb +397 -359
  528. data/lib/twilio-ruby/rest/trusthub/v1/supporting_document_type.rb +282 -261
  529. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_channel_endpoint_assignment.rb +357 -352
  530. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_entity_assignments.rb +335 -323
  531. data/lib/twilio-ruby/rest/trusthub/v1/trust_products/trust_products_evaluations.rb +333 -321
  532. data/lib/twilio-ruby/rest/trusthub/v1/trust_products.rb +525 -513
  533. data/lib/twilio-ruby/rest/trusthub/v1.rb +153 -139
  534. data/lib/twilio-ruby/rest/trusthub.rb +8 -34
  535. data/lib/twilio-ruby/rest/trusthub_base.rb +38 -0
  536. data/lib/twilio-ruby/rest/verify/v2/form.rb +195 -183
  537. data/lib/twilio-ruby/rest/verify/v2/safelist.rb +231 -0
  538. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +265 -116
  539. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +191 -198
  540. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +496 -521
  541. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +447 -454
  542. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +249 -279
  543. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +422 -422
  544. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +379 -363
  545. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +401 -388
  546. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +420 -384
  547. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +380 -359
  548. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +218 -198
  549. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +447 -420
  550. data/lib/twilio-ruby/rest/verify/v2/service.rb +782 -770
  551. data/lib/twilio-ruby/rest/verify/v2/template.rb +221 -198
  552. data/lib/twilio-ruby/rest/verify/v2/verification_attempt.rb +372 -319
  553. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +247 -0
  554. data/lib/twilio-ruby/rest/verify/v2.rb +99 -78
  555. data/lib/twilio-ruby/rest/verify.rb +23 -36
  556. data/lib/twilio-ruby/rest/verify_base.rb +38 -0
  557. data/lib/twilio-ruby/rest/video/v1/composition.rb +477 -486
  558. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +525 -647
  559. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +281 -261
  560. data/lib/twilio-ruby/rest/video/v1/recording.rb +426 -405
  561. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +281 -261
  562. data/lib/twilio-ruby/rest/video/v1/room/participant/anonymize.rb +259 -0
  563. data/lib/twilio-ruby/rest/video/v1/room/participant/published_track.rb +331 -0
  564. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribe_rules.rb +181 -0
  565. data/lib/twilio-ruby/rest/video/v1/room/participant/subscribed_track.rb +338 -0
  566. data/lib/twilio-ruby/rest/video/v1/room/participant.rb +498 -0
  567. data/lib/twilio-ruby/rest/video/v1/room/recording_rules.rb +170 -0
  568. data/lib/twilio-ruby/rest/video/v1/room/room_recording.rb +423 -0
  569. data/lib/twilio-ruby/rest/video/v1/room.rb +606 -567
  570. data/lib/twilio-ruby/rest/video/v1.rb +99 -99
  571. data/lib/twilio-ruby/rest/video.rb +7 -34
  572. data/lib/twilio-ruby/rest/video_base.rb +38 -0
  573. data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +168 -0
  574. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +501 -486
  575. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +440 -434
  576. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +391 -352
  577. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +135 -121
  578. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +195 -183
  579. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +375 -397
  580. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/settings.rb +217 -190
  581. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +122 -121
  582. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +377 -339
  583. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +360 -319
  584. data/lib/twilio-ruby/rest/voice/v1.rb +130 -96
  585. data/lib/twilio-ruby/rest/voice.rb +12 -31
  586. data/lib/twilio-ruby/rest/voice_base.rb +38 -0
  587. data/lib/twilio-ruby/rest/wireless/v1/command.rb +408 -406
  588. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +463 -436
  589. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +298 -284
  590. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +239 -243
  591. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +634 -647
  592. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +226 -221
  593. data/lib/twilio-ruby/rest/wireless/v1.rb +78 -76
  594. data/lib/twilio-ruby/rest/wireless.rb +5 -34
  595. data/lib/twilio-ruby/rest/wireless_base.rb +38 -0
  596. data/lib/twilio-ruby/rest.rb +1 -0
  597. data/lib/twilio-ruby/security/request_validator.rb +1 -1
  598. data/lib/twilio-ruby/twiml/voice_response.rb +209 -42
  599. data/lib/twilio-ruby/version.rb +1 -1
  600. data/lib/twilio-ruby.rb +1 -1
  601. data/sonar-project.properties +2 -2
  602. data/twilio-ruby.gemspec +2 -3
  603. metadata +155 -98
  604. data/.github/workflows/deploy.yml +0 -65
  605. data/.github/workflows/test.yml +0 -52
  606. data/conf/cacert.pem +0 -3376
  607. data/lib/twilio-ruby/framework/twilio_response.rb +0 -19
  608. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +0 -500
  609. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +0 -500
  610. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +0 -500
  611. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +0 -500
  612. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +0 -500
  613. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +0 -500
  614. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +0 -500
  615. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +0 -464
  616. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +0 -348
  617. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +0 -163
  618. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +0 -137
  619. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +0 -220
  620. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +0 -214
  621. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +0 -399
  622. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +0 -418
  623. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +0 -392
  624. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +0 -469
  625. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +0 -218
  626. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +0 -386
  627. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +0 -456
  628. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +0 -255
  629. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +0 -237
  630. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +0 -507
  631. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +0 -420
  632. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +0 -650
  633. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +0 -194
  634. data/lib/twilio-ruby/rest/autopilot/v1.rb +0 -52
  635. data/lib/twilio-ruby/rest/autopilot.rb +0 -53
  636. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +0 -290
  637. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -314
  638. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -536
  639. data/lib/twilio-ruby/rest/fax/v1.rb +0 -45
  640. data/lib/twilio-ruby/rest/fax.rb +0 -47
  641. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +0 -307
  642. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +0 -164
  643. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -294
  644. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +0 -275
  645. data/lib/twilio-ruby/rest/preview/bulk_exports/export/job.rb +0 -249
  646. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -251
  647. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -234
  648. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -62
  649. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +0 -165
  650. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel.rb +0 -225
  651. data/lib/twilio-ruby/rest/preview/trusted_comms/brands_information.rb +0 -195
  652. data/lib/twilio-ruby/rest/preview/trusted_comms/cps.rb +0 -186
  653. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +0 -277
  654. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +0 -65
  655. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_fallback_actions.rb +0 -212
  656. data/lib/twilio-ruby/rest/preview/understand/assistant/assistant_initiation_actions.rb +0 -212
  657. data/lib/twilio-ruby/rest/preview/understand/assistant/dialogue.rb +0 -206
  658. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type/field_value.rb +0 -386
  659. data/lib/twilio-ruby/rest/preview/understand/assistant/field_type.rb +0 -407
  660. data/lib/twilio-ruby/rest/preview/understand/assistant/model_build.rb +0 -380
  661. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +0 -437
  662. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +0 -212
  663. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +0 -373
  664. data/lib/twilio-ruby/rest/preview/understand/assistant/task/sample.rb +0 -428
  665. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_actions.rb +0 -241
  666. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +0 -225
  667. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +0 -495
  668. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +0 -629
  669. data/lib/twilio-ruby/rest/preview/understand.rb +0 -45
  670. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +0 -199
  671. data/lib/twilio-ruby/rest/supersim/v1/command.rb +0 -368
  672. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -406
  673. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +0 -335
  674. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -175
  675. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +0 -340
  676. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +0 -483
  677. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +0 -144
@@ -1,619 +1,622 @@
1
1
  ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
+ #
7
+ # Twilio - Api
8
+ # This is the public Twilio REST API.
9
+ #
10
+ # NOTE: This class is auto generated by OpenAPI Generator.
11
+ # https://openapi-generator.tech
12
+ # Do not edit the class manually.
6
13
  #
7
- # frozen_string_literal: true
8
-
9
- module Twilio
10
- module REST
11
- class Api < Domain
12
- class V2010 < Version
13
- class AccountContext < InstanceContext
14
- class MessageList < ListResource
15
- ##
16
- # Initialize the MessageList
17
- # @param [Version] version Version that contains the resource
18
- # @param [String] account_sid The SID of the
19
- # {Account}[https://www.twilio.com/docs/iam/api/account] that sent the message
20
- # that created the resource.
21
- # @return [MessageList] MessageList
22
- def initialize(version, account_sid: nil)
23
- super(version)
24
-
25
- # Path Solution
26
- @solution = {account_sid: account_sid}
27
- @uri = "/Accounts/#{@solution[:account_sid]}/Messages.json"
28
- end
29
-
30
- ##
31
- # Create the MessageInstance
32
- # @param [String] to The destination phone number in
33
- # {E.164}[https://www.twilio.com/docs/glossary/what-e164] format for SMS/MMS or
34
- # {Channel user
35
- # address}[https://www.twilio.com/docs/sms/channels#channel-addresses] for other
36
- # 3rd-party channels.
37
- # @param [String] status_callback The URL we should call using the
38
- # `status_callback_method` to send status information to your application. If
39
- # specified, we POST these message status changes to the URL: `queued`, `failed`,
40
- # `sent`, `delivered`, or `undelivered`. Twilio will POST its {standard request
41
- # parameters}[https://www.twilio.com/docs/sms/twiml#request-parameters] as well as
42
- # some additional parameters including `MessageSid`, `MessageStatus`, and
43
- # `ErrorCode`. If you include this parameter with the `messaging_service_sid`, we
44
- # use this URL instead of the Status Callback URL of the {Messaging
45
- # Service}[https://www.twilio.com/docs/sms/services/api]. URLs must contain a
46
- # valid hostname and underscores are not allowed.
47
- # @param [String] application_sid The SID of the application that should receive
48
- # message status. We POST a `message_sid` parameter and a `message_status`
49
- # parameter with a value of `sent` or `failed` to the
50
- # {application}[https://www.twilio.com/docs/usage/api/applications]'s
51
- # `message_status_callback`. If a `status_callback` parameter is also passed, it
52
- # will be ignored and the application's `message_status_callback` parameter will
53
- # be used.
54
- # @param [String] max_price The maximum total price in US dollars that you will
55
- # pay for the message to be delivered. Can be a decimal value that has up to 4
56
- # decimal places. All messages are queued for delivery and the message cost is
57
- # checked before the message is sent. If the cost exceeds `max_price`, the message
58
- # will fail and a status of `Failed` is sent to the status callback. If `MaxPrice`
59
- # is not set, the message cost is not checked.
60
- # @param [Boolean] provide_feedback Whether to confirm delivery of the message.
61
- # Set this value to `true` if you are sending messages that have a trackable user
62
- # action and you intend to confirm delivery of the message using the {Message
63
- # Feedback API}[https://www.twilio.com/docs/sms/api/message-feedback-resource].
64
- # This parameter is `false` by default.
65
- # @param [String] attempt Total number of attempts made ( including this ) to send
66
- # out the message regardless of the provider used
67
- # @param [String] validity_period How long in seconds the message can remain in
68
- # our outgoing message queue. After this period elapses, the message fails and we
69
- # call your status callback. Can be between 1 and the default value of 14,400
70
- # seconds. After a message has been accepted by a carrier, however, we cannot
71
- # guarantee that the message will not be queued after this period. We recommend
72
- # that this value be at least 5 seconds.
73
- # @param [Boolean] force_delivery Reserved
74
- # @param [message.ContentRetention] content_retention Determines if the message
75
- # content can be stored or redacted based on privacy settings
76
- # @param [message.AddressRetention] address_retention Determines if the address
77
- # can be stored or obfuscated based on privacy settings
78
- # @param [Boolean] smart_encoded Whether to detect Unicode characters that have a
79
- # similar GSM-7 character and replace them. Can be: `true` or `false`.
80
- # @param [Array[String]] persistent_action Rich actions for Channels Messages.
81
- # @param [String] from A Twilio phone number in
82
- # {E.164}[https://www.twilio.com/docs/glossary/what-e164] format, an {alphanumeric
83
- # sender
84
- # ID}[https://www.twilio.com/docs/sms/send-messages#use-an-alphanumeric-sender-id],
85
- # or a {Channel Endpoint
86
- # address}[https://www.twilio.com/docs/sms/channels#channel-addresses] that is
87
- # enabled for the type of message you want to send. Phone numbers or {short
88
- # codes}[https://www.twilio.com/docs/sms/api/short-code] purchased from Twilio
89
- # also work here. You cannot, for example, spoof messages from a private cell
90
- # phone number. If you are using `messaging_service_sid`, this parameter must be
91
- # empty.
92
- # @param [String] messaging_service_sid The SID of the {Messaging
93
- # Service}[https://www.twilio.com/docs/sms/services#send-a-message-with-copilot]
94
- # you want to associate with the Message. Set this parameter to use the {Messaging
95
- # Service Settings and Copilot
96
- # Features}[https://www.twilio.com/console/sms/services] you have configured and
97
- # leave the `from` parameter empty. When only this parameter is set, Twilio will
98
- # use your enabled Copilot Features to select the `from` phone number for
99
- # delivery.
100
- # @param [String] body The text of the message you want to send. Can be up to
101
- # 1,600 characters in length.
102
- # @param [Array[String]] media_url The URL of the media to send with the message.
103
- # The media can be of type `gif`, `png`, and `jpeg` and will be formatted
104
- # correctly on the recipient's device. The media size limit is 5MB for supported
105
- # file types (JPEG, PNG, GIF) and 500KB for {other
106
- # types}[https://www.twilio.com/docs/sms/accepted-mime-types] of accepted media.
107
- # To send more than one image in the message body, provide multiple `media_url`
108
- # parameters in the POST request. You can include up to 10 `media_url` parameters
109
- # per message. You can send images in an SMS message in only the US and Canada.
110
- # @return [MessageInstance] Created MessageInstance
111
- def create(to: nil, status_callback: :unset, application_sid: :unset, max_price: :unset, provide_feedback: :unset, attempt: :unset, validity_period: :unset, force_delivery: :unset, content_retention: :unset, address_retention: :unset, smart_encoded: :unset, persistent_action: :unset, from: :unset, messaging_service_sid: :unset, body: :unset, media_url: :unset)
112
- data = Twilio::Values.of({
113
- 'To' => to,
114
- 'From' => from,
115
- 'MessagingServiceSid' => messaging_service_sid,
116
- 'Body' => body,
117
- 'MediaUrl' => Twilio.serialize_list(media_url) { |e| e },
118
- 'StatusCallback' => status_callback,
119
- 'ApplicationSid' => application_sid,
120
- 'MaxPrice' => max_price,
121
- 'ProvideFeedback' => provide_feedback,
122
- 'Attempt' => attempt,
123
- 'ValidityPeriod' => validity_period,
124
- 'ForceDelivery' => force_delivery,
125
- 'ContentRetention' => content_retention,
126
- 'AddressRetention' => address_retention,
127
- 'SmartEncoded' => smart_encoded,
128
- 'PersistentAction' => Twilio.serialize_list(persistent_action) { |e| e },
129
- })
130
-
131
- payload = @version.create('POST', @uri, data: data)
132
-
133
- MessageInstance.new(@version, payload, account_sid: @solution[:account_sid], )
134
- end
135
-
136
- ##
137
- # Lists MessageInstance records from the API as a list.
138
- # Unlike stream(), this operation is eager and will load `limit` records into
139
- # memory before returning.
140
- # @param [String] to Read messages sent to only this phone number.
141
- # @param [String] from Read messages sent from only this phone number or
142
- # alphanumeric sender ID.
143
- # @param [Time] date_sent_before Filter by date sent
144
- # @param [Time] date_sent Filter by date sent
145
- # @param [Time] date_sent_after Filter by date sent
146
- # @param [Integer] limit Upper limit for the number of records to return. stream()
147
- # guarantees to never return more than limit. Default is no limit
148
- # @param [Integer] page_size Number of records to fetch per request, when
149
- # not set will use the default value of 50 records. If no page_size is defined
150
- # but a limit is defined, stream() will attempt to read the limit with the most
151
- # efficient page size, i.e. min(limit, 1000)
152
- # @return [Array] Array of up to limit results
153
- def list(to: :unset, from: :unset, date_sent_before: :unset, date_sent: :unset, date_sent_after: :unset, limit: nil, page_size: nil)
154
- self.stream(
155
- to: to,
156
- from: from,
157
- date_sent_before: date_sent_before,
158
- date_sent: date_sent,
159
- date_sent_after: date_sent_after,
160
- limit: limit,
161
- page_size: page_size
162
- ).entries
163
- end
164
-
165
- ##
166
- # Streams MessageInstance records from the API as an Enumerable.
167
- # This operation lazily loads records as efficiently as possible until the limit
168
- # is reached.
169
- # @param [String] to Read messages sent to only this phone number.
170
- # @param [String] from Read messages sent from only this phone number or
171
- # alphanumeric sender ID.
172
- # @param [Time] date_sent_before Filter by date sent
173
- # @param [Time] date_sent Filter by date sent
174
- # @param [Time] date_sent_after Filter by date sent
175
- # @param [Integer] limit Upper limit for the number of records to return. stream()
176
- # guarantees to never return more than limit. Default is no limit.
177
- # @param [Integer] page_size Number of records to fetch per request, when
178
- # not set will use the default value of 50 records. If no page_size is defined
179
- # but a limit is defined, stream() will attempt to read the limit with the most
180
- # efficient page size, i.e. min(limit, 1000)
181
- # @return [Enumerable] Enumerable that will yield up to limit results
182
- def stream(to: :unset, from: :unset, date_sent_before: :unset, date_sent: :unset, date_sent_after: :unset, limit: nil, page_size: nil)
183
- limits = @version.read_limits(limit, page_size)
184
-
185
- page = self.page(
186
- to: to,
187
- from: from,
188
- date_sent_before: date_sent_before,
189
- date_sent: date_sent,
190
- date_sent_after: date_sent_after,
191
- page_size: limits[:page_size],
192
- )
193
-
194
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
195
- end
196
-
197
- ##
198
- # When passed a block, yields MessageInstance records from the API.
199
- # This operation lazily loads records as efficiently as possible until the limit
200
- # is reached.
201
- def each
202
- limits = @version.read_limits
203
-
204
- page = self.page(page_size: limits[:page_size], )
205
-
206
- @version.stream(page,
207
- limit: limits[:limit],
208
- page_limit: limits[:page_limit]).each {|x| yield x}
209
- end
210
-
211
- ##
212
- # Retrieve a single page of MessageInstance records from the API.
213
- # Request is executed immediately.
214
- # @param [String] to Read messages sent to only this phone number.
215
- # @param [String] from Read messages sent from only this phone number or
216
- # alphanumeric sender ID.
217
- # @param [Time] date_sent_before Filter by date sent
218
- # @param [Time] date_sent Filter by date sent
219
- # @param [Time] date_sent_after Filter by date sent
220
- # @param [String] page_token PageToken provided by the API
221
- # @param [Integer] page_number Page Number, this value is simply for client state
222
- # @param [Integer] page_size Number of records to return, defaults to 50
223
- # @return [Page] Page of MessageInstance
224
- def page(to: :unset, from: :unset, date_sent_before: :unset, date_sent: :unset, date_sent_after: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
225
- params = Twilio::Values.of({
226
- 'To' => to,
227
- 'From' => from,
228
- 'DateSent<' => Twilio.serialize_iso8601_datetime(date_sent_before),
229
- 'DateSent' => Twilio.serialize_iso8601_datetime(date_sent),
230
- 'DateSent>' => Twilio.serialize_iso8601_datetime(date_sent_after),
231
- 'PageToken' => page_token,
232
- 'Page' => page_number,
233
- 'PageSize' => page_size,
234
- })
235
-
236
- response = @version.page('GET', @uri, params: params)
237
-
238
- MessagePage.new(@version, response, @solution)
239
- end
240
-
241
- ##
242
- # Retrieve a single page of MessageInstance records from the API.
243
- # Request is executed immediately.
244
- # @param [String] target_url API-generated URL for the requested results page
245
- # @return [Page] Page of MessageInstance
246
- def get_page(target_url)
247
- response = @version.domain.request(
248
- 'GET',
249
- target_url
250
- )
251
- MessagePage.new(@version, response, @solution)
252
- end
253
-
254
- ##
255
- # Provide a user friendly representation
256
- def to_s
257
- '#<Twilio.Api.V2010.MessageList>'
258
- end
259
- end
260
-
261
- class MessagePage < Page
262
- ##
263
- # Initialize the MessagePage
264
- # @param [Version] version Version that contains the resource
265
- # @param [Response] response Response from the API
266
- # @param [Hash] solution Path solution for the resource
267
- # @return [MessagePage] MessagePage
268
- def initialize(version, response, solution)
269
- super(version, response)
270
-
271
- # Path Solution
272
- @solution = solution
273
- end
274
-
275
- ##
276
- # Build an instance of MessageInstance
277
- # @param [Hash] payload Payload response from the API
278
- # @return [MessageInstance] MessageInstance
279
- def get_instance(payload)
280
- MessageInstance.new(@version, payload, account_sid: @solution[:account_sid], )
281
- end
282
-
283
- ##
284
- # Provide a user friendly representation
285
- def to_s
286
- '<Twilio.Api.V2010.MessagePage>'
287
- end
288
- end
289
-
290
- class MessageContext < InstanceContext
291
- ##
292
- # Initialize the MessageContext
293
- # @param [Version] version Version that contains the resource
294
- # @param [String] account_sid The SID of the
295
- # {Account}[https://www.twilio.com/docs/iam/api/account] that created the Message
296
- # resource to fetch.
297
- # @param [String] sid The Twilio-provided string that uniquely identifies the
298
- # Message resource to fetch.
299
- # @return [MessageContext] MessageContext
300
- def initialize(version, account_sid, sid)
301
- super(version)
302
-
303
- # Path Solution
304
- @solution = {account_sid: account_sid, sid: sid, }
305
- @uri = "/Accounts/#{@solution[:account_sid]}/Messages/#{@solution[:sid]}.json"
306
-
307
- # Dependents
308
- @media = nil
309
- @feedback = nil
310
- end
311
-
312
- ##
313
- # Delete the MessageInstance
314
- # @return [Boolean] true if delete succeeds, false otherwise
315
- def delete
316
- @version.delete('DELETE', @uri)
317
- end
318
-
319
- ##
320
- # Fetch the MessageInstance
321
- # @return [MessageInstance] Fetched MessageInstance
322
- def fetch
323
- payload = @version.fetch('GET', @uri)
324
-
325
- MessageInstance.new(@version, payload, account_sid: @solution[:account_sid], sid: @solution[:sid], )
326
- end
327
-
328
- ##
329
- # Update the MessageInstance
330
- # @param [String] body The text of the message you want to send. Can be up to
331
- # 1,600 characters long.
332
- # @return [MessageInstance] Updated MessageInstance
333
- def update(body: :unset)
334
- data = Twilio::Values.of({'Body' => body, })
335
-
336
- payload = @version.update('POST', @uri, data: data)
337
-
338
- MessageInstance.new(@version, payload, account_sid: @solution[:account_sid], sid: @solution[:sid], )
339
- end
340
-
341
- ##
342
- # Access the media
343
- # @return [MediaList]
344
- # @return [MediaContext] if sid was passed.
345
- def media(sid=:unset)
346
- raise ArgumentError, 'sid cannot be nil' if sid.nil?
347
-
348
- if sid != :unset
349
- return MediaContext.new(@version, @solution[:account_sid], @solution[:sid], sid, )
350
- end
351
-
352
- unless @media
353
- @media = MediaList.new(@version, account_sid: @solution[:account_sid], message_sid: @solution[:sid], )
354
- end
355
-
356
- @media
357
- end
358
-
359
- ##
360
- # Access the feedback
361
- # @return [FeedbackList]
362
- # @return [FeedbackContext]
363
- def feedback
364
- unless @feedback
365
- @feedback = FeedbackList.new(
366
- @version,
367
- account_sid: @solution[:account_sid],
368
- message_sid: @solution[:sid],
369
- )
370
- end
371
-
372
- @feedback
373
- end
374
-
375
- ##
376
- # Provide a user friendly representation
377
- def to_s
378
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
379
- "#<Twilio.Api.V2010.MessageContext #{context}>"
380
- end
381
-
382
- ##
383
- # Provide a detailed, user friendly representation
384
- def inspect
385
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
386
- "#<Twilio.Api.V2010.MessageContext #{context}>"
387
- end
388
- end
389
-
390
- class MessageInstance < InstanceResource
391
- ##
392
- # Initialize the MessageInstance
393
- # @param [Version] version Version that contains the resource
394
- # @param [Hash] payload payload that contains response from Twilio
395
- # @param [String] account_sid The SID of the
396
- # {Account}[https://www.twilio.com/docs/iam/api/account] that sent the message
397
- # that created the resource.
398
- # @param [String] sid The Twilio-provided string that uniquely identifies the
399
- # Message resource to fetch.
400
- # @return [MessageInstance] MessageInstance
401
- def initialize(version, payload, account_sid: nil, sid: nil)
402
- super(version)
403
-
404
- # Marshaled Properties
405
- @properties = {
406
- 'body' => payload['body'],
407
- 'num_segments' => payload['num_segments'],
408
- 'direction' => payload['direction'],
409
- 'from' => payload['from'],
410
- 'to' => payload['to'],
411
- 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
412
- 'price' => payload['price'],
413
- 'error_message' => payload['error_message'],
414
- 'uri' => payload['uri'],
415
- 'account_sid' => payload['account_sid'],
416
- 'num_media' => payload['num_media'],
417
- 'status' => payload['status'],
418
- 'messaging_service_sid' => payload['messaging_service_sid'],
419
- 'sid' => payload['sid'],
420
- 'date_sent' => Twilio.deserialize_rfc2822(payload['date_sent']),
421
- 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
422
- 'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
423
- 'price_unit' => payload['price_unit'],
424
- 'api_version' => payload['api_version'],
425
- 'subresource_uris' => payload['subresource_uris'],
426
- }
427
-
428
- # Context
429
- @instance_context = nil
430
- @params = {'account_sid' => account_sid, 'sid' => sid || @properties['sid'], }
431
- end
432
-
433
- ##
434
- # Generate an instance context for the instance, the context is capable of
435
- # performing various actions. All instance actions are proxied to the context
436
- # @return [MessageContext] MessageContext for this MessageInstance
437
- def context
438
- unless @instance_context
439
- @instance_context = MessageContext.new(@version, @params['account_sid'], @params['sid'], )
440
- end
441
- @instance_context
442
- end
443
-
444
- ##
445
- # @return [String] The message text
446
- def body
447
- @properties['body']
448
- end
449
-
450
- ##
451
- # @return [String] The number of messages used to deliver the message body
452
- def num_segments
453
- @properties['num_segments']
454
- end
455
-
456
- ##
457
- # @return [message.Direction] The direction of the message
458
- def direction
459
- @properties['direction']
460
- end
461
-
462
- ##
463
- # @return [String] The phone number that initiated the message
464
- def from
465
- @properties['from']
466
- end
467
-
468
- ##
469
- # @return [String] The phone number that received the message
470
- def to
471
- @properties['to']
472
- end
473
-
474
- ##
475
- # @return [Time] The RFC 2822 date and time in GMT that the resource was last updated
476
- def date_updated
477
- @properties['date_updated']
478
- end
479
-
480
- ##
481
- # @return [String] The amount billed for the message
482
- def price
483
- @properties['price']
484
- end
485
-
486
- ##
487
- # @return [String] The description of the error_code
488
- def error_message
489
- @properties['error_message']
490
- end
491
-
492
- ##
493
- # @return [String] The URI of the resource, relative to `https://api.twilio.com`
494
- def uri
495
- @properties['uri']
496
- end
497
-
498
- ##
499
- # @return [String] The SID of the Account that created the resource
500
- def account_sid
501
- @properties['account_sid']
502
- end
503
-
504
- ##
505
- # @return [String] The number of media files associated with the message
506
- def num_media
507
- @properties['num_media']
508
- end
509
-
510
- ##
511
- # @return [message.Status] The status of the message
512
- def status
513
- @properties['status']
514
- end
515
-
516
- ##
517
- # @return [String] The SID of the Messaging Service used with the message.
518
- def messaging_service_sid
519
- @properties['messaging_service_sid']
520
- end
521
-
522
- ##
523
- # @return [String] The unique string that identifies the resource
524
- def sid
525
- @properties['sid']
526
- end
527
-
528
- ##
529
- # @return [Time] The RFC 2822 date and time in GMT when the message was sent
530
- def date_sent
531
- @properties['date_sent']
532
- end
533
-
534
- ##
535
- # @return [Time] The RFC 2822 date and time in GMT that the resource was created
536
- def date_created
537
- @properties['date_created']
538
- end
539
-
540
- ##
541
- # @return [String] The error code associated with the message
542
- def error_code
543
- @properties['error_code']
544
- end
545
-
546
- ##
547
- # @return [String] The currency in which price is measured
548
- def price_unit
549
- @properties['price_unit']
550
- end
551
-
552
- ##
553
- # @return [String] The API version used to process the message
554
- def api_version
555
- @properties['api_version']
556
- end
557
-
558
- ##
559
- # @return [String] A list of related resources identified by their relative URIs
560
- def subresource_uris
561
- @properties['subresource_uris']
562
- end
563
-
564
- ##
565
- # Delete the MessageInstance
566
- # @return [Boolean] true if delete succeeds, false otherwise
567
- def delete
568
- context.delete
569
- end
570
-
571
- ##
572
- # Fetch the MessageInstance
573
- # @return [MessageInstance] Fetched MessageInstance
574
- def fetch
575
- context.fetch
576
- end
577
-
578
- ##
579
- # Update the MessageInstance
580
- # @param [String] body The text of the message you want to send. Can be up to
581
- # 1,600 characters long.
582
- # @return [MessageInstance] Updated MessageInstance
583
- def update(body: :unset)
584
- context.update(body: body, )
585
- end
586
-
587
- ##
588
- # Access the media
589
- # @return [media] media
590
- def media
591
- context.media
592
- end
593
-
594
- ##
595
- # Access the feedback
596
- # @return [feedback] feedback
597
- def feedback
598
- context.feedback
599
- end
600
14
 
601
- ##
602
- # Provide a user friendly representation
603
- def to_s
604
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
605
- "<Twilio.Api.V2010.MessageInstance #{values}>"
606
- end
607
15
 
608
- ##
609
- # Provide a detailed, user friendly representation
610
- def inspect
611
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
612
- "<Twilio.Api.V2010.MessageInstance #{values}>"
16
+ module Twilio
17
+ module REST
18
+ class Api < ApiBase
19
+ class V2010 < Version
20
+ class AccountContext < InstanceContext
21
+
22
+ class MessageList < ListResource
23
+ ##
24
+ # Initialize the MessageList
25
+ # @param [Version] version Version that contains the resource
26
+ # @return [MessageList] MessageList
27
+ def initialize(version, account_sid: nil)
28
+ super(version)
29
+ # Path Solution
30
+ @solution = { account_sid: account_sid }
31
+ @uri = "/Accounts/#{@solution[:account_sid]}/Messages.json"
32
+
33
+ end
34
+ ##
35
+ # Create the MessageInstance
36
+ # @param [String] to The recipient's phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) format (for SMS/MMS) or [channel address](https://www.twilio.com/docs/messaging/channels), e.g. `whatsapp:+15552229999`.
37
+ # @param [String] status_callback The URL of the endpoint to which Twilio sends [Message status callback requests](https://www.twilio.com/docs/sms/api/message-resource#twilios-request-to-the-statuscallback-url). URL must contain a valid hostname and underscores are not allowed. If you include this parameter with the `messaging_service_sid`, Twilio uses this URL instead of the Status Callback URL of the [Messaging Service](https://www.twilio.com/docs/messaging/api/service-resource).
38
+ # @param [String] application_sid The SID of the associated [TwiML Application](https://www.twilio.com/docs/usage/api/applications). If this parameter is provided, the `status_callback` parameter of this request is ignored; [Message status callback requests](https://www.twilio.com/docs/sms/api/message-resource#twilios-request-to-the-statuscallback-url) are sent to the TwiML App's `message_status_callback` URL.
39
+ # @param [Float] max_price The maximum price in US dollars that you are willing to pay for this Message's delivery. The value can have up to four decimal places. When the `max_price` parameter is provided, the cost of a message is checked before it is sent. If the cost exceeds `max_price`, the message is not sent and the Message `status` is `failed`.
40
+ # @param [Boolean] provide_feedback Boolean indicating whether or not you intend to provide delivery confirmation feedback to Twilio (used in conjunction with the [Message Feedback subresource](https://www.twilio.com/docs/sms/api/message-feedback-resource)). Default value is `false`.
41
+ # @param [String] attempt Total number of attempts made (including this request) to send the message regardless of the provider used
42
+ # @param [String] validity_period The maximum length in seconds that the Message can remain in Twilio's outgoing message queue. If a queued Message exceeds the `validity_period`, the Message is not sent. Accepted values are integers from `1` to `14400`. Default value is `14400`. A `validity_period` greater than `5` is recommended. [Learn more about the validity period](https://www.twilio.com/blog/take-more-control-of-outbound-messages-using-validity-period-html)
43
+ # @param [Boolean] force_delivery Reserved
44
+ # @param [ContentRetention] content_retention
45
+ # @param [AddressRetention] address_retention
46
+ # @param [Boolean] smart_encoded Whether to detect Unicode characters that have a similar GSM-7 character and replace them. Can be: `true` or `false`.
47
+ # @param [Array[String]] persistent_action Rich actions for non-SMS/MMS channels. Used for [sending location in WhatsApp messages](https://www.twilio.com/docs/whatsapp/message-features#location-messages-with-whatsapp).
48
+ # @param [Boolean] shorten_urls For Messaging Services with [Link Shortening configured](https://www.twilio.com/docs/messaging/features/link-shortening) only: A Boolean indicating whether or not Twilio should shorten links in the `body` of the Message. Default value is `false`. If `true`, the `messaging_service_sid` parameter must also be provided.
49
+ # @param [ScheduleType] schedule_type
50
+ # @param [Time] send_at The time that Twilio will send the message. Must be in ISO 8601 format.
51
+ # @param [Boolean] send_as_mms If set to `true`, Twilio delivers the message as a single MMS message, regardless of the presence of media.
52
+ # @param [String] content_variables For [Content Editor/API](https://www.twilio.com/docs/content) only: Key-value pairs of [Template variables](https://www.twilio.com/docs/content/using-variables-with-content-api) and their substitution values. `content_sid` parameter must also be provided. If values are not defined in the `content_variables` parameter, the [Template's default placeholder values](https://www.twilio.com/docs/content/content-api-resources#create-templates) are used.
53
+ # @param [RiskCheck] risk_check
54
+ # @param [String] from The sender's Twilio phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format), [alphanumeric sender ID](https://www.twilio.com/docs/sms/quickstart), [Wireless SIM](https://www.twilio.com/docs/iot/wireless/programmable-wireless-send-machine-machine-sms-commands), [short code](https://www.twilio.com/en-us/messaging/channels/sms/short-codes), or [channel address](https://www.twilio.com/docs/messaging/channels) (e.g., `whatsapp:+15554449999`). The value of the `from` parameter must be a sender that is hosted within Twilio and belongs to the Account creating the Message. If you are using `messaging_service_sid`, this parameter can be empty (Twilio assigns a `from` value from the Messaging Service's Sender Pool) or you can provide a specific sender from your Sender Pool.
55
+ # @param [String] messaging_service_sid The SID of the [Messaging Service](https://www.twilio.com/docs/messaging/services) you want to associate with the Message. When this parameter is provided and the `from` parameter is omitted, Twilio selects the optimal sender from the Messaging Service's Sender Pool. You may also provide a `from` parameter if you want to use a specific Sender from the Sender Pool.
56
+ # @param [String] body The text content of the outgoing message. Can be up to 1,600 characters in length. SMS only: If the `body` contains more than 160 [GSM-7](https://www.twilio.com/docs/glossary/what-is-gsm-7-character-encoding) characters (or 70 [UCS-2](https://www.twilio.com/docs/glossary/what-is-ucs-2-character-encoding) characters), the message is segmented and charged accordingly. For long `body` text, consider using the [send_as_mms parameter](https://www.twilio.com/blog/mms-for-long-text-messages).
57
+ # @param [Array[String]] media_url The URL of media to include in the Message content. `jpeg`, `jpg`, `gif`, and `png` file types are fully supported by Twilio and content is formatted for delivery on destination devices. The media size limit is 5 MB for supported file types (`jpeg`, `jpg`, `png`, `gif`) and 500 KB for [other types](https://www.twilio.com/docs/messaging/guides/accepted-mime-types) of accepted media. To send more than one image in the message, provide multiple `media_url` parameters in the POST request. You can include up to ten `media_url` parameters per message. [International](https://support.twilio.com/hc/en-us/articles/223179808-Sending-and-receiving-MMS-messages) and [carrier](https://support.twilio.com/hc/en-us/articles/223133707-Is-MMS-supported-for-all-carriers-in-US-and-Canada-) limits apply.
58
+ # @param [String] content_sid For [Content Editor/API](https://www.twilio.com/docs/content) only: The SID of the Content Template to be used with the Message, e.g., `HXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`. If this parameter is not provided, a Content Template is not used. Find the SID in the Console on the Content Editor page. For Content API users, the SID is found in Twilio's response when [creating the Template](https://www.twilio.com/docs/content/content-api-resources#create-templates) or by [fetching your Templates](https://www.twilio.com/docs/content/content-api-resources#fetch-all-content-resources).
59
+ # @return [MessageInstance] Created MessageInstance
60
+ def create(
61
+ to: nil,
62
+ status_callback: :unset,
63
+ application_sid: :unset,
64
+ max_price: :unset,
65
+ provide_feedback: :unset,
66
+ attempt: :unset,
67
+ validity_period: :unset,
68
+ force_delivery: :unset,
69
+ content_retention: :unset,
70
+ address_retention: :unset,
71
+ smart_encoded: :unset,
72
+ persistent_action: :unset,
73
+ shorten_urls: :unset,
74
+ schedule_type: :unset,
75
+ send_at: :unset,
76
+ send_as_mms: :unset,
77
+ content_variables: :unset,
78
+ risk_check: :unset,
79
+ from: :unset,
80
+ messaging_service_sid: :unset,
81
+ body: :unset,
82
+ media_url: :unset,
83
+ content_sid: :unset
84
+ )
85
+
86
+ data = Twilio::Values.of({
87
+ 'To' => to,
88
+ 'StatusCallback' => status_callback,
89
+ 'ApplicationSid' => application_sid,
90
+ 'MaxPrice' => max_price,
91
+ 'ProvideFeedback' => provide_feedback,
92
+ 'Attempt' => attempt,
93
+ 'ValidityPeriod' => validity_period,
94
+ 'ForceDelivery' => force_delivery,
95
+ 'ContentRetention' => content_retention,
96
+ 'AddressRetention' => address_retention,
97
+ 'SmartEncoded' => smart_encoded,
98
+ 'PersistentAction' => Twilio.serialize_list(persistent_action) { |e| e },
99
+ 'ShortenUrls' => shorten_urls,
100
+ 'ScheduleType' => schedule_type,
101
+ 'SendAt' => Twilio.serialize_iso8601_datetime(send_at),
102
+ 'SendAsMms' => send_as_mms,
103
+ 'ContentVariables' => content_variables,
104
+ 'RiskCheck' => risk_check,
105
+ 'From' => from,
106
+ 'MessagingServiceSid' => messaging_service_sid,
107
+ 'Body' => body,
108
+ 'MediaUrl' => Twilio.serialize_list(media_url) { |e| e },
109
+ 'ContentSid' => content_sid,
110
+ })
111
+
112
+ payload = @version.create('POST', @uri, data: data)
113
+ MessageInstance.new(
114
+ @version,
115
+ payload,
116
+ account_sid: @solution[:account_sid],
117
+ )
118
+ end
119
+
120
+
121
+ ##
122
+ # Lists MessageInstance records from the API as a list.
123
+ # Unlike stream(), this operation is eager and will load `limit` records into
124
+ # memory before returning.
125
+ # @param [String] to Filter by recipient. For example: Set this `to` parameter to `+15558881111` to retrieve a list of Message resources with `to` properties of `+15558881111`
126
+ # @param [String] from Filter by sender. For example: Set this `from` parameter to `+15552229999` to retrieve a list of Message resources with `from` properties of `+15552229999`
127
+ # @param [Time] date_sent Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
128
+ # @param [Time] date_sent_before Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
129
+ # @param [Time] date_sent_after Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
130
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
131
+ # guarantees to never return more than limit. Default is no limit
132
+ # @param [Integer] page_size Number of records to fetch per request, when
133
+ # not set will use the default value of 50 records. If no page_size is defined
134
+ # but a limit is defined, stream() will attempt to read the limit with the most
135
+ # efficient page size, i.e. min(limit, 1000)
136
+ # @return [Array] Array of up to limit results
137
+ def list(to: :unset, from: :unset, date_sent: :unset, date_sent_before: :unset, date_sent_after: :unset, limit: nil, page_size: nil)
138
+ self.stream(
139
+ to: to,
140
+ from: from,
141
+ date_sent: date_sent,
142
+ date_sent_before: date_sent_before,
143
+ date_sent_after: date_sent_after,
144
+ limit: limit,
145
+ page_size: page_size
146
+ ).entries
147
+ end
148
+
149
+ ##
150
+ # Streams Instance records from the API as an Enumerable.
151
+ # This operation lazily loads records as efficiently as possible until the limit
152
+ # is reached.
153
+ # @param [String] to Filter by recipient. For example: Set this `to` parameter to `+15558881111` to retrieve a list of Message resources with `to` properties of `+15558881111`
154
+ # @param [String] from Filter by sender. For example: Set this `from` parameter to `+15552229999` to retrieve a list of Message resources with `from` properties of `+15552229999`
155
+ # @param [Time] date_sent Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
156
+ # @param [Time] date_sent_before Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
157
+ # @param [Time] date_sent_after Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
158
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
159
+ # guarantees to never return more than limit. Default is no limit
160
+ # @param [Integer] page_size Number of records to fetch per request, when
161
+ # not set will use the default value of 50 records. If no page_size is defined
162
+ # but a limit is defined, stream() will attempt to read the limit with the most
163
+ # efficient page size, i.e. min(limit, 1000)
164
+ # @return [Enumerable] Enumerable that will yield up to limit results
165
+ def stream(to: :unset, from: :unset, date_sent: :unset, date_sent_before: :unset, date_sent_after: :unset, limit: nil, page_size: nil)
166
+ limits = @version.read_limits(limit, page_size)
167
+
168
+ page = self.page(
169
+ to: to,
170
+ from: from,
171
+ date_sent: date_sent,
172
+ date_sent_before: date_sent_before,
173
+ date_sent_after: date_sent_after,
174
+ page_size: limits[:page_size], )
175
+
176
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
177
+ end
178
+
179
+ ##
180
+ # When passed a block, yields MessageInstance records from the API.
181
+ # This operation lazily loads records as efficiently as possible until the limit
182
+ # is reached.
183
+ def each
184
+ limits = @version.read_limits
185
+
186
+ page = self.page(page_size: limits[:page_size], )
187
+
188
+ @version.stream(page,
189
+ limit: limits[:limit],
190
+ page_limit: limits[:page_limit]).each {|x| yield x}
191
+ end
192
+
193
+ ##
194
+ # Retrieve a single page of MessageInstance records from the API.
195
+ # Request is executed immediately.
196
+ # @param [String] to Filter by recipient. For example: Set this `to` parameter to `+15558881111` to retrieve a list of Message resources with `to` properties of `+15558881111`
197
+ # @param [String] from Filter by sender. For example: Set this `from` parameter to `+15552229999` to retrieve a list of Message resources with `from` properties of `+15552229999`
198
+ # @param [Time] date_sent Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
199
+ # @param [Time] date_sent_before Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
200
+ # @param [Time] date_sent_after Filter by Message `sent_date`. Accepts GMT dates in the following formats: `YYYY-MM-DD` (to find Messages with a specific `sent_date`), `<=YYYY-MM-DD` (to find Messages with `sent_date`s on and before a specific date), and `>=YYYY-MM-DD` (to find Messages with `sent_dates` on and after a specific date).
201
+ # @param [String] page_token PageToken provided by the API
202
+ # @param [Integer] page_number Page Number, this value is simply for client state
203
+ # @param [Integer] page_size Number of records to return, defaults to 50
204
+ # @return [Page] Page of MessageInstance
205
+ def page(to: :unset, from: :unset, date_sent: :unset, date_sent_before: :unset, date_sent_after: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
206
+ params = Twilio::Values.of({
207
+ 'To' => to,
208
+ 'From' => from,
209
+ 'DateSent' => Twilio.serialize_iso8601_datetime(date_sent),
210
+ 'DateSent<' => Twilio.serialize_iso8601_datetime(date_sent_before),
211
+ 'DateSent>' => Twilio.serialize_iso8601_datetime(date_sent_after),
212
+ 'PageToken' => page_token,
213
+ 'Page' => page_number,
214
+ 'PageSize' => page_size,
215
+ })
216
+
217
+ response = @version.page('GET', @uri, params: params)
218
+
219
+ MessagePage.new(@version, response, @solution)
220
+ end
221
+
222
+ ##
223
+ # Retrieve a single page of MessageInstance records from the API.
224
+ # Request is executed immediately.
225
+ # @param [String] target_url API-generated URL for the requested results page
226
+ # @return [Page] Page of MessageInstance
227
+ def get_page(target_url)
228
+ response = @version.domain.request(
229
+ 'GET',
230
+ target_url
231
+ )
232
+ MessagePage.new(@version, response, @solution)
233
+ end
234
+
235
+
236
+
237
+ # Provide a user friendly representation
238
+ def to_s
239
+ '#<Twilio.Api.V2010.MessageList>'
240
+ end
241
+ end
242
+
243
+
244
+ class MessageContext < InstanceContext
245
+ ##
246
+ # Initialize the MessageContext
247
+ # @param [Version] version Version that contains the resource
248
+ # @param [String] account_sid The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Message resources to update.
249
+ # @param [String] sid The SID of the Message resource to be updated
250
+ # @return [MessageContext] MessageContext
251
+ def initialize(version, account_sid, sid)
252
+ super(version)
253
+
254
+ # Path Solution
255
+ @solution = { account_sid: account_sid, sid: sid, }
256
+ @uri = "/Accounts/#{@solution[:account_sid]}/Messages/#{@solution[:sid]}.json"
257
+
258
+ # Dependents
259
+ @feedback = nil
260
+ @media = nil
261
+ end
262
+ ##
263
+ # Delete the MessageInstance
264
+ # @return [Boolean] True if delete succeeds, false otherwise
265
+ def delete
266
+
267
+ @version.delete('DELETE', @uri)
268
+ end
269
+
270
+ ##
271
+ # Fetch the MessageInstance
272
+ # @return [MessageInstance] Fetched MessageInstance
273
+ def fetch
274
+
275
+ payload = @version.fetch('GET', @uri)
276
+ MessageInstance.new(
277
+ @version,
278
+ payload,
279
+ account_sid: @solution[:account_sid],
280
+ sid: @solution[:sid],
281
+ )
282
+ end
283
+
284
+ ##
285
+ # Update the MessageInstance
286
+ # @param [String] body The new `body` of the Message resource. To redact the text content of a Message, this parameter's value must be an empty string
287
+ # @param [UpdateStatus] status
288
+ # @return [MessageInstance] Updated MessageInstance
289
+ def update(
290
+ body: :unset,
291
+ status: :unset
292
+ )
293
+
294
+ data = Twilio::Values.of({
295
+ 'Body' => body,
296
+ 'Status' => status,
297
+ })
298
+
299
+ payload = @version.update('POST', @uri, data: data)
300
+ MessageInstance.new(
301
+ @version,
302
+ payload,
303
+ account_sid: @solution[:account_sid],
304
+ sid: @solution[:sid],
305
+ )
306
+ end
307
+
308
+ ##
309
+ # Access the feedback
310
+ # @return [FeedbackList]
311
+ # @return [FeedbackContext]
312
+ def feedback
313
+ unless @feedback
314
+ @feedback = FeedbackList.new(
315
+ @version, account_sid: @solution[:account_sid], message_sid: @solution[:sid], )
316
+ end
317
+ @feedback
318
+ end
319
+ ##
320
+ # Access the media
321
+ # @return [MediaList]
322
+ # @return [MediaContext] if sid was passed.
323
+ def media(sid=:unset)
324
+
325
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
326
+
327
+ if sid != :unset
328
+ return MediaContext.new(@version, @solution[:account_sid], @solution[:sid],sid )
329
+ end
330
+
331
+ unless @media
332
+ @media = MediaList.new(
333
+ @version, account_sid: @solution[:account_sid], message_sid: @solution[:sid], )
334
+ end
335
+
336
+ @media
337
+ end
338
+
339
+ ##
340
+ # Provide a user friendly representation
341
+ def to_s
342
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
343
+ "#<Twilio.Api.V2010.MessageContext #{context}>"
344
+ end
345
+
346
+ ##
347
+ # Provide a detailed, user friendly representation
348
+ def inspect
349
+ context = @solution.map{|k, v| "#{k}: #{v}"}.join(',')
350
+ "#<Twilio.Api.V2010.MessageContext #{context}>"
351
+ end
352
+ end
353
+
354
+ class MessagePage < Page
355
+ ##
356
+ # Initialize the MessagePage
357
+ # @param [Version] version Version that contains the resource
358
+ # @param [Response] response Response from the API
359
+ # @param [Hash] solution Path solution for the resource
360
+ # @return [MessagePage] MessagePage
361
+ def initialize(version, response, solution)
362
+ super(version, response)
363
+
364
+ # Path Solution
365
+ @solution = solution
366
+ end
367
+
368
+ ##
369
+ # Build an instance of MessageInstance
370
+ # @param [Hash] payload Payload response from the API
371
+ # @return [MessageInstance] MessageInstance
372
+ def get_instance(payload)
373
+ MessageInstance.new(@version, payload, account_sid: @solution[:account_sid])
374
+ end
375
+
376
+ ##
377
+ # Provide a user friendly representation
378
+ def to_s
379
+ '<Twilio.Api.V2010.MessagePage>'
380
+ end
381
+ end
382
+ class MessageInstance < InstanceResource
383
+ ##
384
+ # Initialize the MessageInstance
385
+ # @param [Version] version Version that contains the resource
386
+ # @param [Hash] payload payload that contains response from Twilio
387
+ # @param [String] account_sid The SID of the
388
+ # {Account}[https://www.twilio.com/docs/iam/api/account] that created this Message
389
+ # resource.
390
+ # @param [String] sid The SID of the Call resource to fetch.
391
+ # @return [MessageInstance] MessageInstance
392
+ def initialize(version, payload , account_sid: nil, sid: nil)
393
+ super(version)
394
+
395
+ # Marshaled Properties
396
+ @properties = {
397
+ 'body' => payload['body'],
398
+ 'num_segments' => payload['num_segments'],
399
+ 'direction' => payload['direction'],
400
+ 'from' => payload['from'],
401
+ 'to' => payload['to'],
402
+ 'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
403
+ 'price' => payload['price'],
404
+ 'error_message' => payload['error_message'],
405
+ 'uri' => payload['uri'],
406
+ 'account_sid' => payload['account_sid'],
407
+ 'num_media' => payload['num_media'],
408
+ 'status' => payload['status'],
409
+ 'messaging_service_sid' => payload['messaging_service_sid'],
410
+ 'sid' => payload['sid'],
411
+ 'date_sent' => Twilio.deserialize_rfc2822(payload['date_sent']),
412
+ 'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
413
+ 'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
414
+ 'price_unit' => payload['price_unit'],
415
+ 'api_version' => payload['api_version'],
416
+ 'subresource_uris' => payload['subresource_uris'],
417
+ }
418
+
419
+ # Context
420
+ @instance_context = nil
421
+ @params = { 'account_sid' => account_sid ,'sid' => sid || @properties['sid'] , }
422
+ end
423
+
424
+ ##
425
+ # Generate an instance context for the instance, the context is capable of
426
+ # performing various actions. All instance actions are proxied to the context
427
+ # @return [MessageContext] CallContext for this CallInstance
428
+ def context
429
+ unless @instance_context
430
+ @instance_context = MessageContext.new(@version , @params['account_sid'], @params['sid'])
431
+ end
432
+ @instance_context
433
+ end
434
+
435
+ ##
436
+ # @return [String] The text content of the message
437
+ def body
438
+ @properties['body']
439
+ end
440
+
441
+ ##
442
+ # @return [String] The number of segments that make up the complete message. SMS message bodies that exceed the [character limit](https://www.twilio.com/docs/glossary/what-sms-character-limit) are segmented and charged as multiple messages. Note: For messages sent via a Messaging Service, `num_segments` is initially `0`, since a sender hasn't yet been assigned.
443
+ def num_segments
444
+ @properties['num_segments']
445
+ end
446
+
447
+ ##
448
+ # @return [Direction]
449
+ def direction
450
+ @properties['direction']
451
+ end
452
+
453
+ ##
454
+ # @return [String] The sender's phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format), [alphanumeric sender ID](https://www.twilio.com/docs/sms/quickstart), [Wireless SIM](https://www.twilio.com/docs/iot/wireless/programmable-wireless-send-machine-machine-sms-commands), [short code](https://www.twilio.com/en-us/messaging/channels/sms/short-codes), or [channel address](https://www.twilio.com/docs/messaging/channels) (e.g., `whatsapp:+15554449999`). For incoming messages, this is the number or channel address of the sender. For outgoing messages, this value is a Twilio phone number, alphanumeric sender ID, short code, or channel address from which the message is sent.
455
+ def from
456
+ @properties['from']
457
+ end
458
+
459
+ ##
460
+ # @return [String] The recipient's phone number (in [E.164](https://en.wikipedia.org/wiki/E.164) format) or [channel address](https://www.twilio.com/docs/messaging/channels) (e.g. `whatsapp:+15552229999`)
461
+ def to
462
+ @properties['to']
463
+ end
464
+
465
+ ##
466
+ # @return [Time] The [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) timestamp (in GMT) of when the Message resource was last updated
467
+ def date_updated
468
+ @properties['date_updated']
469
+ end
470
+
471
+ ##
472
+ # @return [String] The amount billed for the message in the currency specified by `price_unit`. The `price` is populated after the message has been sent/received, and may not be immediately availalble. View the [Pricing page](https://www.twilio.com/en-us/pricing) for more details.
473
+ def price
474
+ @properties['price']
475
+ end
476
+
477
+ ##
478
+ # @return [String] The description of the `error_code` if the Message `status` is `failed` or `undelivered`. If no error was encountered, the value is `null`.
479
+ def error_message
480
+ @properties['error_message']
481
+ end
482
+
483
+ ##
484
+ # @return [String] The URI of the Message resource, relative to `https://api.twilio.com`.
485
+ def uri
486
+ @properties['uri']
487
+ end
488
+
489
+ ##
490
+ # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) associated with the Message resource
491
+ def account_sid
492
+ @properties['account_sid']
493
+ end
494
+
495
+ ##
496
+ # @return [String] The number of media files associated with the Message resource.
497
+ def num_media
498
+ @properties['num_media']
499
+ end
500
+
501
+ ##
502
+ # @return [Status]
503
+ def status
504
+ @properties['status']
505
+ end
506
+
507
+ ##
508
+ # @return [String] The SID of the [Messaging Service](https://www.twilio.com/docs/messaging/api/service-resource) associated with the Message resource. The value is `null` if a Messaging Service was not used.
509
+ def messaging_service_sid
510
+ @properties['messaging_service_sid']
511
+ end
512
+
513
+ ##
514
+ # @return [String] The unique, Twilio-provided string that identifies the Message resource.
515
+ def sid
516
+ @properties['sid']
517
+ end
518
+
519
+ ##
520
+ # @return [Time] The [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) timestamp (in GMT) of when the Message was sent. For an outgoing message, this is when Twilio sent the message. For an incoming message, this is when Twilio sent the HTTP request to your incoming message webhook URL.
521
+ def date_sent
522
+ @properties['date_sent']
523
+ end
524
+
525
+ ##
526
+ # @return [Time] The [RFC 2822](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) timestamp (in GMT) of when the Message resource was created
527
+ def date_created
528
+ @properties['date_created']
529
+ end
530
+
531
+ ##
532
+ # @return [String] The [error code](https://www.twilio.com/docs/api/errors) returned if the Message `status` is `failed` or `undelivered`. If no error was encountered, the value is `null`.
533
+ def error_code
534
+ @properties['error_code']
535
+ end
536
+
537
+ ##
538
+ # @return [String] The currency in which `price` is measured, in [ISO 4127](https://www.iso.org/iso/home/standards/currency_codes.htm) format (e.g. `usd`, `eur`, `jpy`).
539
+ def price_unit
540
+ @properties['price_unit']
541
+ end
542
+
543
+ ##
544
+ # @return [String] The API version used to process the Message
545
+ def api_version
546
+ @properties['api_version']
547
+ end
548
+
549
+ ##
550
+ # @return [Hash] A list of related resources identified by their URIs relative to `https://api.twilio.com`
551
+ def subresource_uris
552
+ @properties['subresource_uris']
553
+ end
554
+
555
+ ##
556
+ # Delete the MessageInstance
557
+ # @return [Boolean] True if delete succeeds, false otherwise
558
+ def delete
559
+
560
+ context.delete
561
+ end
562
+
563
+ ##
564
+ # Fetch the MessageInstance
565
+ # @return [MessageInstance] Fetched MessageInstance
566
+ def fetch
567
+
568
+ context.fetch
569
+ end
570
+
571
+ ##
572
+ # Update the MessageInstance
573
+ # @param [String] body The new `body` of the Message resource. To redact the text content of a Message, this parameter's value must be an empty string
574
+ # @param [UpdateStatus] status
575
+ # @return [MessageInstance] Updated MessageInstance
576
+ def update(
577
+ body: :unset,
578
+ status: :unset
579
+ )
580
+
581
+ context.update(
582
+ body: body,
583
+ status: status,
584
+ )
585
+ end
586
+
587
+ ##
588
+ # Access the feedback
589
+ # @return [feedback] feedback
590
+ def feedback
591
+ context.feedback
592
+ end
593
+
594
+ ##
595
+ # Access the media
596
+ # @return [media] media
597
+ def media
598
+ context.media
599
+ end
600
+
601
+ ##
602
+ # Provide a user friendly representation
603
+ def to_s
604
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
605
+ "<Twilio.Api.V2010.MessageInstance #{values}>"
606
+ end
607
+
608
+ ##
609
+ # Provide a detailed, user friendly representation
610
+ def inspect
611
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
612
+ "<Twilio.Api.V2010.MessageInstance #{values}>"
613
+ end
614
+ end
615
+
616
+ end
613
617
  end
614
- end
615
618
  end
616
- end
617
619
  end
618
- end
619
- end
620
+ end
621
+
622
+