twilio-ruby 5.39.3 → 5.40.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +112 -1
  3. data/CONTRIBUTING.md +2 -2
  4. data/README.md +2 -3
  5. data/lib/twilio-ruby/framework/version.rb +4 -8
  6. data/lib/twilio-ruby/rest/api.rb +1 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +3 -3
  8. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +2 -2
  9. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +9 -7
  10. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +3 -3
  11. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +3 -3
  12. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +32 -23
  13. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +32 -23
  14. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +32 -23
  15. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +32 -23
  16. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +32 -23
  17. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +32 -23
  18. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +32 -23
  19. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +21 -20
  20. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +3 -3
  21. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +3 -3
  22. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +6 -6
  23. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +20 -14
  24. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +8 -8
  25. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +3 -3
  26. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +29 -22
  27. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +3 -3
  28. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +3 -3
  29. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +10 -10
  30. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +3 -3
  31. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +3 -3
  32. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +3 -3
  33. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +3 -3
  34. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +3 -3
  35. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +1 -1
  36. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +28 -21
  37. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +6 -4
  38. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +3 -3
  39. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +3 -3
  40. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +3 -3
  41. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +3 -3
  42. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +5 -5
  43. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +6 -6
  44. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +3 -3
  45. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +3 -3
  46. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +6 -6
  47. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +3 -3
  48. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +1 -1
  49. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types.rb +2 -2
  50. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping.rb +2 -2
  51. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_credential_list_mapping.rb +3 -3
  52. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_calls_mapping/auth_calls_ip_access_control_list_mapping.rb +3 -3
  53. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping.rb +2 -2
  54. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/auth_types/auth_registrations_mapping/auth_registrations_credential_list_mapping.rb +3 -3
  55. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +1 -1
  56. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +1 -1
  57. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +1 -1
  58. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +2 -2
  59. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +3 -3
  60. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +6 -6
  61. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +6 -6
  62. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +6 -6
  63. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +6 -6
  64. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +6 -6
  65. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +6 -6
  66. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +6 -6
  67. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +6 -6
  68. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +6 -6
  69. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +19 -18
  70. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +3 -3
  71. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +12 -12
  72. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +3 -3
  73. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +3 -3
  74. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +3 -3
  75. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +15 -11
  76. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +3 -3
  77. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +33 -26
  78. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +3 -3
  79. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb +6 -6
  80. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +9 -9
  81. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +31 -24
  82. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +8 -8
  83. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +6 -6
  84. data/lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb +3 -3
  85. data/lib/twilio-ruby/rest/chat/v1/service.rb +36 -36
  86. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +3 -3
  87. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +19 -19
  88. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +28 -28
  89. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +7 -7
  90. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +5 -5
  91. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +8 -8
  92. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +2 -2
  93. data/lib/twilio-ruby/rest/chat/v2/service.rb +36 -36
  94. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +18 -18
  95. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +15 -15
  96. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +19 -19
  97. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +54 -54
  98. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +25 -25
  99. data/lib/twilio-ruby/rest/chat/v2/service/channel/webhook.rb +15 -15
  100. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +5 -5
  101. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +8 -8
  102. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +18 -18
  103. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +20 -20
  104. data/lib/twilio-ruby/rest/client.rb +8 -1
  105. data/lib/twilio-ruby/rest/conversations.rb +39 -3
  106. data/lib/twilio-ruby/rest/conversations/v1.rb +68 -5
  107. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +260 -0
  108. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +254 -0
  109. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +24 -21
  110. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +15 -20
  111. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +35 -28
  112. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +48 -40
  113. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +14 -19
  114. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +419 -0
  115. data/lib/twilio-ruby/rest/conversations/v1/role.rb +366 -0
  116. data/lib/twilio-ruby/rest/conversations/v1/service.rb +434 -0
  117. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +380 -0
  118. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +263 -0
  119. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +307 -0
  120. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +578 -0
  121. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +541 -0
  122. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +386 -0
  123. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +511 -0
  124. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +449 -0
  125. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +387 -0
  126. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +430 -0
  127. data/lib/twilio-ruby/rest/conversations/v1/user.rb +409 -0
  128. data/lib/twilio-ruby/rest/events.rb +72 -0
  129. data/lib/twilio-ruby/rest/events/v1.rb +90 -0
  130. data/lib/twilio-ruby/rest/events/v1/event_type.rb +291 -0
  131. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  132. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +290 -0
  133. data/lib/twilio-ruby/rest/events/v1/sink.rb +380 -0
  134. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  135. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +119 -0
  136. data/lib/twilio-ruby/rest/events/v1/subscription.rb +383 -0
  137. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +216 -0
  138. data/lib/twilio-ruby/rest/fax/v1/fax.rb +28 -27
  139. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +36 -36
  140. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +3 -3
  141. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +19 -19
  142. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -28
  143. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +7 -7
  144. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +5 -5
  145. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +8 -8
  146. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +2 -2
  147. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +36 -36
  148. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +18 -18
  149. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +15 -15
  150. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +19 -19
  151. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +54 -54
  152. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +25 -25
  153. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +15 -15
  154. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +5 -5
  155. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +8 -8
  156. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +18 -18
  157. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +20 -20
  158. data/lib/twilio-ruby/rest/lookups.rb +1 -1
  159. data/lib/twilio-ruby/rest/lookups/v1.rb +1 -1
  160. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +10 -10
  161. data/lib/twilio-ruby/rest/messaging.rb +6 -0
  162. data/lib/twilio-ruby/rest/messaging/v1.rb +7 -0
  163. data/lib/twilio-ruby/rest/messaging/v1/deactivation.rb +164 -0
  164. data/lib/twilio-ruby/rest/messaging/v1/service.rb +39 -36
  165. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +3 -3
  166. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +3 -3
  167. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +3 -3
  168. data/lib/twilio-ruby/rest/monitor/v1/event.rb +15 -15
  169. data/lib/twilio-ruby/rest/notify/v1/credential.rb +12 -6
  170. data/lib/twilio-ruby/rest/notify/v1/service.rb +24 -24
  171. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +10 -10
  172. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +23 -15
  173. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance.rb +3 -3
  174. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/end_user.rb +16 -2
  175. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +18 -4
  176. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +15 -10
  177. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +9 -6
  178. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +1 -1
  179. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +4 -4
  180. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +1 -4
  181. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +4 -4
  182. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +52 -52
  183. data/lib/twilio-ruby/rest/preview/understand/assistant/task/field.rb +2 -2
  184. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +2 -2
  185. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +4 -4
  186. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +2 -2
  187. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +4 -4
  188. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +2 -2
  189. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +4 -4
  190. data/lib/twilio-ruby/rest/pricing/v2/voice.rb +3 -3
  191. data/lib/twilio-ruby/rest/pricing/v2/voice/country.rb +4 -4
  192. data/lib/twilio-ruby/rest/pricing/v2/voice/number.rb +4 -4
  193. data/lib/twilio-ruby/rest/proxy/v1/service.rb +15 -15
  194. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +13 -11
  195. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +42 -23
  196. data/lib/twilio-ruby/rest/proxy/v1/service/session/interaction.rb +6 -6
  197. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +20 -7
  198. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +9 -9
  199. data/lib/twilio-ruby/rest/proxy/v1/service/short_code.rb +8 -8
  200. data/lib/twilio-ruby/rest/serverless/v1/service.rb +13 -13
  201. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +6 -6
  202. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +5 -5
  203. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +33 -8
  204. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +219 -0
  205. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +6 -8
  206. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +8 -8
  207. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +14 -14
  208. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  209. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +7 -7
  210. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +1 -1
  211. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +6 -6
  212. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +6 -6
  213. data/lib/twilio-ruby/rest/supersim/v1/command.rb +7 -7
  214. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +12 -11
  215. data/lib/twilio-ruby/rest/supersim/v1/network.rb +6 -6
  216. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +22 -12
  217. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +81 -15
  218. data/lib/twilio-ruby/rest/sync/v1/service.rb +3 -3
  219. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +6 -6
  220. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +6 -6
  221. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +6 -6
  222. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +6 -6
  223. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +6 -6
  224. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +6 -6
  225. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +12 -12
  226. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +6 -6
  227. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +6 -6
  228. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream/stream_message.rb +4 -4
  229. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +4 -4
  230. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +2 -1
  231. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +6 -6
  232. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +16 -12
  233. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +8 -8
  234. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +6 -6
  235. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +6 -6
  236. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +9 -9
  237. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +4 -7
  238. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +16 -12
  239. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +4 -4
  240. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +4 -4
  241. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +6 -6
  242. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +12 -12
  243. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +4 -4
  244. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +6 -6
  245. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +4 -4
  246. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +6 -6
  247. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +62 -47
  248. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +2 -2
  249. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +3 -2
  250. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +3 -2
  251. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +201 -0
  252. data/lib/twilio-ruby/rest/verify/v2/service.rb +3 -3
  253. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +3 -3
  254. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +2 -6
  255. data/lib/twilio-ruby/rest/verify/v2/service/messaging_configuration.rb +12 -12
  256. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit.rb +3 -3
  257. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +3 -3
  258. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +14 -12
  259. data/lib/twilio-ruby/rest/verify/v2/service/verification_check.rb +5 -5
  260. data/lib/twilio-ruby/rest/video/v1/composition.rb +13 -9
  261. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +33 -24
  262. data/lib/twilio-ruby/rest/video/v1/recording.rb +6 -6
  263. data/lib/twilio-ruby/rest/video/v1/room.rb +7 -9
  264. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +6 -6
  265. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +9 -9
  266. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +2 -8
  267. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +9 -9
  268. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +3 -6
  269. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country.rb +22 -22
  270. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/country/highrisk_special_prefix.rb +4 -4
  271. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +2 -2
  272. data/lib/twilio-ruby/rest/wireless/v1/command.rb +7 -7
  273. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +8 -7
  274. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +22 -22
  275. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +9 -23
  276. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +10 -10
  277. data/lib/twilio-ruby/rest/wireless/v1/usage_record.rb +6 -6
  278. data/lib/twilio-ruby/version.rb +1 -1
  279. data/spec/framework/version_spec.rb +53 -0
  280. data/spec/holodeck/holodeck.rb +3 -3
  281. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  282. data/spec/integration/bulkexports/v1/export/day_spec.rb +5 -5
  283. data/spec/integration/bulkexports/v1/export_configuration_spec.rb +4 -4
  284. data/spec/integration/bulkexports/v1/export_spec.rb +3 -3
  285. data/spec/integration/conversations/v1/{webhook_spec.rb → configuration/webhook_spec.rb} +12 -8
  286. data/spec/integration/conversations/v1/configuration_spec.rb +87 -0
  287. data/spec/integration/conversations/v1/conversation/message/delivery_receipt_spec.rb +4 -0
  288. data/spec/integration/conversations/v1/conversation/participant_spec.rb +6 -6
  289. data/spec/integration/conversations/v1/conversation_spec.rb +5 -0
  290. data/spec/integration/conversations/v1/credential_spec.rb +219 -0
  291. data/spec/integration/conversations/v1/role_spec.rb +249 -0
  292. data/spec/integration/conversations/v1/service/binding_spec.rb +166 -0
  293. data/spec/integration/conversations/v1/service/configuration/notification_spec.rb +115 -0
  294. data/spec/integration/conversations/v1/service/configuration_spec.rb +87 -0
  295. data/spec/integration/conversations/v1/service/conversation/message/delivery_receipt_spec.rb +144 -0
  296. data/spec/integration/conversations/v1/service/conversation/message_spec.rb +429 -0
  297. data/spec/integration/conversations/v1/service/conversation/participant_spec.rb +407 -0
  298. data/spec/integration/conversations/v1/service/conversation/webhook_spec.rb +299 -0
  299. data/spec/integration/conversations/v1/service/conversation_spec.rb +289 -0
  300. data/spec/integration/conversations/v1/service/role_spec.rb +260 -0
  301. data/spec/integration/conversations/v1/service/user_spec.rb +236 -0
  302. data/spec/integration/conversations/v1/service_spec.rb +174 -0
  303. data/spec/integration/conversations/v1/user_spec.rb +226 -0
  304. data/spec/integration/events/v1/event_type_spec.rb +133 -0
  305. data/spec/integration/events/v1/schema/schema_version_spec.rb +126 -0
  306. data/spec/integration/events/v1/schema_spec.rb +46 -0
  307. data/spec/integration/events/v1/sink/sink_test_spec.rb +42 -0
  308. data/spec/integration/events/v1/sink/sink_validate_spec.rb +44 -0
  309. data/spec/integration/events/v1/sink_spec.rb +217 -0
  310. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +91 -0
  311. data/spec/integration/events/v1/subscription_spec.rb +243 -0
  312. data/spec/integration/messaging/v1/deactivation_spec.rb +40 -0
  313. data/spec/integration/numbers/v2/regulatory_compliance/end_user_spec.rb +27 -0
  314. data/spec/integration/numbers/v2/regulatory_compliance/supporting_document_spec.rb +27 -0
  315. data/spec/integration/serverless/v1/service/build/build_status_spec.rb +48 -0
  316. data/spec/integration/serverless/v1/service/build_spec.rb +8 -2
  317. data/spec/integration/studio/v1/flow/execution/execution_step_spec.rb +1 -0
  318. data/spec/integration/studio/v2/flow/execution/execution_step_spec.rb +1 -0
  319. data/spec/integration/supersim/v1/sim_spec.rb +23 -0
  320. data/spec/integration/supersim/v1/usage_record_spec.rb +463 -18
  321. data/spec/integration/trunking/v1/trunk/recording_spec.rb +79 -0
  322. data/spec/integration/trunking/v1/trunk_spec.rb +4 -0
  323. data/spec/integration/verify/v2/service/entity/factor_spec.rb +2 -2
  324. data/spec/integration/video/v1/room_spec.rb +37 -0
  325. data/spec/integration/wireless/v1/sim/data_session_spec.rb +2 -2
  326. data/spec/spec_helper.rb +1 -1
  327. metadata +85 -5
  328. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -262
@@ -0,0 +1,434 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Conversations < Domain
12
+ class V1 < Version
13
+ class ServiceList < ListResource
14
+ ##
15
+ # Initialize the ServiceList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [ServiceList] ServiceList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/Services"
24
+ end
25
+
26
+ ##
27
+ # Create the ServiceInstance
28
+ # @param [String] friendly_name The human-readable name of this service, limited
29
+ # to 256 characters. Optional.
30
+ # @return [ServiceInstance] Created ServiceInstance
31
+ def create(friendly_name: nil)
32
+ data = Twilio::Values.of({'FriendlyName' => friendly_name, })
33
+
34
+ payload = @version.create('POST', @uri, data: data)
35
+
36
+ ServiceInstance.new(@version, payload, )
37
+ end
38
+
39
+ ##
40
+ # Lists ServiceInstance records from the API as a list.
41
+ # Unlike stream(), this operation is eager and will load `limit` records into
42
+ # memory before returning.
43
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
44
+ # guarantees to never return more than limit. Default is no limit
45
+ # @param [Integer] page_size Number of records to fetch per request, when
46
+ # not set will use the default value of 50 records. If no page_size is defined
47
+ # but a limit is defined, stream() will attempt to read the limit with the most
48
+ # efficient page size, i.e. min(limit, 1000)
49
+ # @return [Array] Array of up to limit results
50
+ def list(limit: nil, page_size: nil)
51
+ self.stream(limit: limit, page_size: page_size).entries
52
+ end
53
+
54
+ ##
55
+ # Streams ServiceInstance records from the API as an Enumerable.
56
+ # This operation lazily loads records as efficiently as possible until the limit
57
+ # is reached.
58
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
59
+ # guarantees to never return more than limit. Default is no limit.
60
+ # @param [Integer] page_size Number of records to fetch per request, when
61
+ # not set will use the default value of 50 records. If no page_size is defined
62
+ # but a limit is defined, stream() will attempt to read the limit with the most
63
+ # efficient page size, i.e. min(limit, 1000)
64
+ # @return [Enumerable] Enumerable that will yield up to limit results
65
+ def stream(limit: nil, page_size: nil)
66
+ limits = @version.read_limits(limit, page_size)
67
+
68
+ page = self.page(page_size: limits[:page_size], )
69
+
70
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
71
+ end
72
+
73
+ ##
74
+ # When passed a block, yields ServiceInstance records from the API.
75
+ # This operation lazily loads records as efficiently as possible until the limit
76
+ # is reached.
77
+ def each
78
+ limits = @version.read_limits
79
+
80
+ page = self.page(page_size: limits[:page_size], )
81
+
82
+ @version.stream(page,
83
+ limit: limits[:limit],
84
+ page_limit: limits[:page_limit]).each {|x| yield x}
85
+ end
86
+
87
+ ##
88
+ # Retrieve a single page of ServiceInstance records from the API.
89
+ # Request is executed immediately.
90
+ # @param [String] page_token PageToken provided by the API
91
+ # @param [Integer] page_number Page Number, this value is simply for client state
92
+ # @param [Integer] page_size Number of records to return, defaults to 50
93
+ # @return [Page] Page of ServiceInstance
94
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
95
+ params = Twilio::Values.of({
96
+ 'PageToken' => page_token,
97
+ 'Page' => page_number,
98
+ 'PageSize' => page_size,
99
+ })
100
+
101
+ response = @version.page('GET', @uri, params: params)
102
+
103
+ ServicePage.new(@version, response, @solution)
104
+ end
105
+
106
+ ##
107
+ # Retrieve a single page of ServiceInstance records from the API.
108
+ # Request is executed immediately.
109
+ # @param [String] target_url API-generated URL for the requested results page
110
+ # @return [Page] Page of ServiceInstance
111
+ def get_page(target_url)
112
+ response = @version.domain.request(
113
+ 'GET',
114
+ target_url
115
+ )
116
+ ServicePage.new(@version, response, @solution)
117
+ end
118
+
119
+ ##
120
+ # Provide a user friendly representation
121
+ def to_s
122
+ '#<Twilio.Conversations.V1.ServiceList>'
123
+ end
124
+ end
125
+
126
+ class ServicePage < Page
127
+ ##
128
+ # Initialize the ServicePage
129
+ # @param [Version] version Version that contains the resource
130
+ # @param [Response] response Response from the API
131
+ # @param [Hash] solution Path solution for the resource
132
+ # @return [ServicePage] ServicePage
133
+ def initialize(version, response, solution)
134
+ super(version, response)
135
+
136
+ # Path Solution
137
+ @solution = solution
138
+ end
139
+
140
+ ##
141
+ # Build an instance of ServiceInstance
142
+ # @param [Hash] payload Payload response from the API
143
+ # @return [ServiceInstance] ServiceInstance
144
+ def get_instance(payload)
145
+ ServiceInstance.new(@version, payload, )
146
+ end
147
+
148
+ ##
149
+ # Provide a user friendly representation
150
+ def to_s
151
+ '<Twilio.Conversations.V1.ServicePage>'
152
+ end
153
+ end
154
+
155
+ class ServiceContext < InstanceContext
156
+ ##
157
+ # Initialize the ServiceContext
158
+ # @param [Version] version Version that contains the resource
159
+ # @param [String] sid A 34 character string that uniquely identifies this
160
+ # resource.
161
+ # @return [ServiceContext] ServiceContext
162
+ def initialize(version, sid)
163
+ super(version)
164
+
165
+ # Path Solution
166
+ @solution = {sid: sid, }
167
+ @uri = "/Services/#{@solution[:sid]}"
168
+
169
+ # Dependents
170
+ @conversations = nil
171
+ @bindings = nil
172
+ @users = nil
173
+ @roles = nil
174
+ @configuration = nil
175
+ end
176
+
177
+ ##
178
+ # Delete the ServiceInstance
179
+ # @return [Boolean] true if delete succeeds, false otherwise
180
+ def delete
181
+ @version.delete('DELETE', @uri)
182
+ end
183
+
184
+ ##
185
+ # Fetch the ServiceInstance
186
+ # @return [ServiceInstance] Fetched ServiceInstance
187
+ def fetch
188
+ payload = @version.fetch('GET', @uri)
189
+
190
+ ServiceInstance.new(@version, payload, sid: @solution[:sid], )
191
+ end
192
+
193
+ ##
194
+ # Access the conversations
195
+ # @return [ConversationList]
196
+ # @return [ConversationContext] if sid was passed.
197
+ def conversations(sid=:unset)
198
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
199
+
200
+ if sid != :unset
201
+ return ConversationContext.new(@version, @solution[:sid], sid, )
202
+ end
203
+
204
+ unless @conversations
205
+ @conversations = ConversationList.new(@version, chat_service_sid: @solution[:sid], )
206
+ end
207
+
208
+ @conversations
209
+ end
210
+
211
+ ##
212
+ # Access the bindings
213
+ # @return [BindingList]
214
+ # @return [BindingContext] if sid was passed.
215
+ def bindings(sid=:unset)
216
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
217
+
218
+ if sid != :unset
219
+ return BindingContext.new(@version, @solution[:sid], sid, )
220
+ end
221
+
222
+ unless @bindings
223
+ @bindings = BindingList.new(@version, chat_service_sid: @solution[:sid], )
224
+ end
225
+
226
+ @bindings
227
+ end
228
+
229
+ ##
230
+ # Access the users
231
+ # @return [UserList]
232
+ # @return [UserContext] if sid was passed.
233
+ def users(sid=:unset)
234
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
235
+
236
+ if sid != :unset
237
+ return UserContext.new(@version, @solution[:sid], sid, )
238
+ end
239
+
240
+ unless @users
241
+ @users = UserList.new(@version, chat_service_sid: @solution[:sid], )
242
+ end
243
+
244
+ @users
245
+ end
246
+
247
+ ##
248
+ # Access the roles
249
+ # @return [RoleList]
250
+ # @return [RoleContext] if sid was passed.
251
+ def roles(sid=:unset)
252
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
253
+
254
+ if sid != :unset
255
+ return RoleContext.new(@version, @solution[:sid], sid, )
256
+ end
257
+
258
+ unless @roles
259
+ @roles = RoleList.new(@version, chat_service_sid: @solution[:sid], )
260
+ end
261
+
262
+ @roles
263
+ end
264
+
265
+ ##
266
+ # Access the configuration
267
+ # @return [ConfigurationList]
268
+ # @return [ConfigurationContext]
269
+ def configuration
270
+ ConfigurationContext.new(@version, @solution[:sid], )
271
+ end
272
+
273
+ ##
274
+ # Provide a user friendly representation
275
+ def to_s
276
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
277
+ "#<Twilio.Conversations.V1.ServiceContext #{context}>"
278
+ end
279
+
280
+ ##
281
+ # Provide a detailed, user friendly representation
282
+ def inspect
283
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
284
+ "#<Twilio.Conversations.V1.ServiceContext #{context}>"
285
+ end
286
+ end
287
+
288
+ class ServiceInstance < InstanceResource
289
+ ##
290
+ # Initialize the ServiceInstance
291
+ # @param [Version] version Version that contains the resource
292
+ # @param [Hash] payload payload that contains response from Twilio
293
+ # @param [String] sid A 34 character string that uniquely identifies this
294
+ # resource.
295
+ # @return [ServiceInstance] ServiceInstance
296
+ def initialize(version, payload, sid: nil)
297
+ super(version)
298
+
299
+ # Marshaled Properties
300
+ @properties = {
301
+ 'account_sid' => payload['account_sid'],
302
+ 'sid' => payload['sid'],
303
+ 'friendly_name' => payload['friendly_name'],
304
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
305
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
306
+ 'url' => payload['url'],
307
+ 'links' => payload['links'],
308
+ }
309
+
310
+ # Context
311
+ @instance_context = nil
312
+ @params = {'sid' => sid || @properties['sid'], }
313
+ end
314
+
315
+ ##
316
+ # Generate an instance context for the instance, the context is capable of
317
+ # performing various actions. All instance actions are proxied to the context
318
+ # @return [ServiceContext] ServiceContext for this ServiceInstance
319
+ def context
320
+ unless @instance_context
321
+ @instance_context = ServiceContext.new(@version, @params['sid'], )
322
+ end
323
+ @instance_context
324
+ end
325
+
326
+ ##
327
+ # @return [String] The unique ID of the Account responsible for this service.
328
+ def account_sid
329
+ @properties['account_sid']
330
+ end
331
+
332
+ ##
333
+ # @return [String] A 34 character string that uniquely identifies this resource.
334
+ def sid
335
+ @properties['sid']
336
+ end
337
+
338
+ ##
339
+ # @return [String] The human-readable name of this service.
340
+ def friendly_name
341
+ @properties['friendly_name']
342
+ end
343
+
344
+ ##
345
+ # @return [Time] The date that this resource was created.
346
+ def date_created
347
+ @properties['date_created']
348
+ end
349
+
350
+ ##
351
+ # @return [Time] The date that this resource was last updated.
352
+ def date_updated
353
+ @properties['date_updated']
354
+ end
355
+
356
+ ##
357
+ # @return [String] An absolute URL for this service.
358
+ def url
359
+ @properties['url']
360
+ end
361
+
362
+ ##
363
+ # @return [String] Absolute URLs to access the conversations, users, roles, bindings and configuration of this service.
364
+ def links
365
+ @properties['links']
366
+ end
367
+
368
+ ##
369
+ # Delete the ServiceInstance
370
+ # @return [Boolean] true if delete succeeds, false otherwise
371
+ def delete
372
+ context.delete
373
+ end
374
+
375
+ ##
376
+ # Fetch the ServiceInstance
377
+ # @return [ServiceInstance] Fetched ServiceInstance
378
+ def fetch
379
+ context.fetch
380
+ end
381
+
382
+ ##
383
+ # Access the conversations
384
+ # @return [conversations] conversations
385
+ def conversations
386
+ context.conversations
387
+ end
388
+
389
+ ##
390
+ # Access the bindings
391
+ # @return [bindings] bindings
392
+ def bindings
393
+ context.bindings
394
+ end
395
+
396
+ ##
397
+ # Access the users
398
+ # @return [users] users
399
+ def users
400
+ context.users
401
+ end
402
+
403
+ ##
404
+ # Access the roles
405
+ # @return [roles] roles
406
+ def roles
407
+ context.roles
408
+ end
409
+
410
+ ##
411
+ # Access the configuration
412
+ # @return [configuration] configuration
413
+ def configuration
414
+ context.configuration
415
+ end
416
+
417
+ ##
418
+ # Provide a user friendly representation
419
+ def to_s
420
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
421
+ "<Twilio.Conversations.V1.ServiceInstance #{values}>"
422
+ end
423
+
424
+ ##
425
+ # Provide a detailed, user friendly representation
426
+ def inspect
427
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
428
+ "<Twilio.Conversations.V1.ServiceInstance #{values}>"
429
+ end
430
+ end
431
+ end
432
+ end
433
+ end
434
+ end
@@ -0,0 +1,380 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Conversations < Domain
12
+ class V1 < Version
13
+ class ServiceContext < InstanceContext
14
+ class BindingList < ListResource
15
+ ##
16
+ # Initialize the BindingList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] chat_service_sid The SID of the {Conversation
19
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
20
+ # Binding resource is associated with.
21
+ # @return [BindingList] BindingList
22
+ def initialize(version, chat_service_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {chat_service_sid: chat_service_sid}
27
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Bindings"
28
+ end
29
+
30
+ ##
31
+ # Lists BindingInstance records from the API as a list.
32
+ # Unlike stream(), this operation is eager and will load `limit` records into
33
+ # memory before returning.
34
+ # @param [binding.BindingType] binding_type The push technology used by the
35
+ # Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
36
+ # notification
37
+ # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
38
+ # for more info.
39
+ # @param [String] identity The identity of a {Conversation
40
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource] this binding
41
+ # belongs to. See {access
42
+ # tokens}[https://www.twilio.com/docs/conversations/create-tokens] for more
43
+ # details.
44
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
45
+ # guarantees to never return more than limit. Default is no limit
46
+ # @param [Integer] page_size Number of records to fetch per request, when
47
+ # not set will use the default value of 50 records. If no page_size is defined
48
+ # but a limit is defined, stream() will attempt to read the limit with the most
49
+ # efficient page size, i.e. min(limit, 1000)
50
+ # @return [Array] Array of up to limit results
51
+ def list(binding_type: :unset, identity: :unset, limit: nil, page_size: nil)
52
+ self.stream(
53
+ binding_type: binding_type,
54
+ identity: identity,
55
+ limit: limit,
56
+ page_size: page_size
57
+ ).entries
58
+ end
59
+
60
+ ##
61
+ # Streams BindingInstance records from the API as an Enumerable.
62
+ # This operation lazily loads records as efficiently as possible until the limit
63
+ # is reached.
64
+ # @param [binding.BindingType] binding_type The push technology used by the
65
+ # Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
66
+ # notification
67
+ # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
68
+ # for more info.
69
+ # @param [String] identity The identity of a {Conversation
70
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource] this binding
71
+ # belongs to. See {access
72
+ # tokens}[https://www.twilio.com/docs/conversations/create-tokens] for more
73
+ # details.
74
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
75
+ # guarantees to never return more than limit. Default is no limit.
76
+ # @param [Integer] page_size Number of records to fetch per request, when
77
+ # not set will use the default value of 50 records. If no page_size is defined
78
+ # but a limit is defined, stream() will attempt to read the limit with the most
79
+ # efficient page size, i.e. min(limit, 1000)
80
+ # @return [Enumerable] Enumerable that will yield up to limit results
81
+ def stream(binding_type: :unset, identity: :unset, limit: nil, page_size: nil)
82
+ limits = @version.read_limits(limit, page_size)
83
+
84
+ page = self.page(binding_type: binding_type, identity: identity, page_size: limits[:page_size], )
85
+
86
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
87
+ end
88
+
89
+ ##
90
+ # When passed a block, yields BindingInstance records from the API.
91
+ # This operation lazily loads records as efficiently as possible until the limit
92
+ # is reached.
93
+ def each
94
+ limits = @version.read_limits
95
+
96
+ page = self.page(page_size: limits[:page_size], )
97
+
98
+ @version.stream(page,
99
+ limit: limits[:limit],
100
+ page_limit: limits[:page_limit]).each {|x| yield x}
101
+ end
102
+
103
+ ##
104
+ # Retrieve a single page of BindingInstance records from the API.
105
+ # Request is executed immediately.
106
+ # @param [binding.BindingType] binding_type The push technology used by the
107
+ # Binding resources to read. Can be: `apn`, `gcm`, or `fcm`. See {push
108
+ # notification
109
+ # configuration}[https://www.twilio.com/docs/chat/push-notification-configuration]
110
+ # for more info.
111
+ # @param [String] identity The identity of a {Conversation
112
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource] this binding
113
+ # belongs to. See {access
114
+ # tokens}[https://www.twilio.com/docs/conversations/create-tokens] for more
115
+ # details.
116
+ # @param [String] page_token PageToken provided by the API
117
+ # @param [Integer] page_number Page Number, this value is simply for client state
118
+ # @param [Integer] page_size Number of records to return, defaults to 50
119
+ # @return [Page] Page of BindingInstance
120
+ def page(binding_type: :unset, identity: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
121
+ params = Twilio::Values.of({
122
+ 'BindingType' => Twilio.serialize_list(binding_type) { |e| e },
123
+ 'Identity' => Twilio.serialize_list(identity) { |e| e },
124
+ 'PageToken' => page_token,
125
+ 'Page' => page_number,
126
+ 'PageSize' => page_size,
127
+ })
128
+
129
+ response = @version.page('GET', @uri, params: params)
130
+
131
+ BindingPage.new(@version, response, @solution)
132
+ end
133
+
134
+ ##
135
+ # Retrieve a single page of BindingInstance records from the API.
136
+ # Request is executed immediately.
137
+ # @param [String] target_url API-generated URL for the requested results page
138
+ # @return [Page] Page of BindingInstance
139
+ def get_page(target_url)
140
+ response = @version.domain.request(
141
+ 'GET',
142
+ target_url
143
+ )
144
+ BindingPage.new(@version, response, @solution)
145
+ end
146
+
147
+ ##
148
+ # Provide a user friendly representation
149
+ def to_s
150
+ '#<Twilio.Conversations.V1.BindingList>'
151
+ end
152
+ end
153
+
154
+ class BindingPage < Page
155
+ ##
156
+ # Initialize the BindingPage
157
+ # @param [Version] version Version that contains the resource
158
+ # @param [Response] response Response from the API
159
+ # @param [Hash] solution Path solution for the resource
160
+ # @return [BindingPage] BindingPage
161
+ def initialize(version, response, solution)
162
+ super(version, response)
163
+
164
+ # Path Solution
165
+ @solution = solution
166
+ end
167
+
168
+ ##
169
+ # Build an instance of BindingInstance
170
+ # @param [Hash] payload Payload response from the API
171
+ # @return [BindingInstance] BindingInstance
172
+ def get_instance(payload)
173
+ BindingInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
174
+ end
175
+
176
+ ##
177
+ # Provide a user friendly representation
178
+ def to_s
179
+ '<Twilio.Conversations.V1.BindingPage>'
180
+ end
181
+ end
182
+
183
+ class BindingContext < InstanceContext
184
+ ##
185
+ # Initialize the BindingContext
186
+ # @param [Version] version Version that contains the resource
187
+ # @param [String] chat_service_sid The SID of the {Conversation
188
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
189
+ # Binding resource is associated with.
190
+ # @param [String] sid A 34 character string that uniquely identifies this
191
+ # resource.
192
+ # @return [BindingContext] BindingContext
193
+ def initialize(version, chat_service_sid, sid)
194
+ super(version)
195
+
196
+ # Path Solution
197
+ @solution = {chat_service_sid: chat_service_sid, sid: sid, }
198
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Bindings/#{@solution[:sid]}"
199
+ end
200
+
201
+ ##
202
+ # Delete the BindingInstance
203
+ # @return [Boolean] true if delete succeeds, false otherwise
204
+ def delete
205
+ @version.delete('DELETE', @uri)
206
+ end
207
+
208
+ ##
209
+ # Fetch the BindingInstance
210
+ # @return [BindingInstance] Fetched BindingInstance
211
+ def fetch
212
+ payload = @version.fetch('GET', @uri)
213
+
214
+ BindingInstance.new(
215
+ @version,
216
+ payload,
217
+ chat_service_sid: @solution[:chat_service_sid],
218
+ sid: @solution[:sid],
219
+ )
220
+ end
221
+
222
+ ##
223
+ # Provide a user friendly representation
224
+ def to_s
225
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
226
+ "#<Twilio.Conversations.V1.BindingContext #{context}>"
227
+ end
228
+
229
+ ##
230
+ # Provide a detailed, user friendly representation
231
+ def inspect
232
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
233
+ "#<Twilio.Conversations.V1.BindingContext #{context}>"
234
+ end
235
+ end
236
+
237
+ class BindingInstance < InstanceResource
238
+ ##
239
+ # Initialize the BindingInstance
240
+ # @param [Version] version Version that contains the resource
241
+ # @param [Hash] payload payload that contains response from Twilio
242
+ # @param [String] chat_service_sid The SID of the {Conversation
243
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
244
+ # Binding resource is associated with.
245
+ # @param [String] sid A 34 character string that uniquely identifies this
246
+ # resource.
247
+ # @return [BindingInstance] BindingInstance
248
+ def initialize(version, payload, chat_service_sid: nil, sid: nil)
249
+ super(version)
250
+
251
+ # Marshaled Properties
252
+ @properties = {
253
+ 'sid' => payload['sid'],
254
+ 'account_sid' => payload['account_sid'],
255
+ 'chat_service_sid' => payload['chat_service_sid'],
256
+ 'credential_sid' => payload['credential_sid'],
257
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
258
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
259
+ 'endpoint' => payload['endpoint'],
260
+ 'identity' => payload['identity'],
261
+ 'binding_type' => payload['binding_type'],
262
+ 'message_types' => payload['message_types'],
263
+ 'url' => payload['url'],
264
+ }
265
+
266
+ # Context
267
+ @instance_context = nil
268
+ @params = {'chat_service_sid' => chat_service_sid, 'sid' => sid || @properties['sid'], }
269
+ end
270
+
271
+ ##
272
+ # Generate an instance context for the instance, the context is capable of
273
+ # performing various actions. All instance actions are proxied to the context
274
+ # @return [BindingContext] BindingContext for this BindingInstance
275
+ def context
276
+ unless @instance_context
277
+ @instance_context = BindingContext.new(@version, @params['chat_service_sid'], @params['sid'], )
278
+ end
279
+ @instance_context
280
+ end
281
+
282
+ ##
283
+ # @return [String] A 34 character string that uniquely identifies this resource.
284
+ def sid
285
+ @properties['sid']
286
+ end
287
+
288
+ ##
289
+ # @return [String] The unique ID of the Account responsible for this binding.
290
+ def account_sid
291
+ @properties['account_sid']
292
+ end
293
+
294
+ ##
295
+ # @return [String] The SID of the Conversation Service that the resource is associated with.
296
+ def chat_service_sid
297
+ @properties['chat_service_sid']
298
+ end
299
+
300
+ ##
301
+ # @return [String] The SID of the Credential for the binding.
302
+ def credential_sid
303
+ @properties['credential_sid']
304
+ end
305
+
306
+ ##
307
+ # @return [Time] The date that this resource was created.
308
+ def date_created
309
+ @properties['date_created']
310
+ end
311
+
312
+ ##
313
+ # @return [Time] The date that this resource was last updated.
314
+ def date_updated
315
+ @properties['date_updated']
316
+ end
317
+
318
+ ##
319
+ # @return [String] The unique endpoint identifier for the Binding.
320
+ def endpoint
321
+ @properties['endpoint']
322
+ end
323
+
324
+ ##
325
+ # @return [String] The identity of Conversation User associated with this binding.
326
+ def identity
327
+ @properties['identity']
328
+ end
329
+
330
+ ##
331
+ # @return [binding.BindingType] The push technology to use for the binding.
332
+ def binding_type
333
+ @properties['binding_type']
334
+ end
335
+
336
+ ##
337
+ # @return [String] The Conversation message types the binding is subscribed to.
338
+ def message_types
339
+ @properties['message_types']
340
+ end
341
+
342
+ ##
343
+ # @return [String] An absolute URL for this binding.
344
+ def url
345
+ @properties['url']
346
+ end
347
+
348
+ ##
349
+ # Delete the BindingInstance
350
+ # @return [Boolean] true if delete succeeds, false otherwise
351
+ def delete
352
+ context.delete
353
+ end
354
+
355
+ ##
356
+ # Fetch the BindingInstance
357
+ # @return [BindingInstance] Fetched BindingInstance
358
+ def fetch
359
+ context.fetch
360
+ end
361
+
362
+ ##
363
+ # Provide a user friendly representation
364
+ def to_s
365
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
366
+ "<Twilio.Conversations.V1.BindingInstance #{values}>"
367
+ end
368
+
369
+ ##
370
+ # Provide a detailed, user friendly representation
371
+ def inspect
372
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
373
+ "<Twilio.Conversations.V1.BindingInstance #{values}>"
374
+ end
375
+ end
376
+ end
377
+ end
378
+ end
379
+ end
380
+ end