twilio-ruby 5.39.3 → 5.40.4

Sign up to get free protection for your applications and to get access to all the features.
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,419 @@
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 CredentialList < ListResource
14
+ ##
15
+ # Initialize the CredentialList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [CredentialList] CredentialList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/Credentials"
24
+ end
25
+
26
+ ##
27
+ # Create the CredentialInstance
28
+ # @param [credential.PushType] type The type of push-notification service the
29
+ # credential is for. Can be: `fcm`, `gcm`, or `apn`.
30
+ # @param [String] friendly_name A descriptive string that you create to describe
31
+ # the new resource. It can be up to 64 characters long.
32
+ # @param [String] certificate [APN only] The URL encoded representation of the
33
+ # certificate. For example,
34
+ # `-----BEGIN CERTIFICATE-----
35
+ # MIIFnTCCBIWgAwIBAgIIAjy9H849+E8wDQYJKoZIhvcNAQEF.....A==
36
+ # -----END CERTIFICATE-----`.
37
+ # @param [String] private_key [APN only] The URL encoded representation of the
38
+ # private key. For example,
39
+ # `-----BEGIN RSA PRIVATE KEY-----
40
+ # MIIEpQIBAAKCAQEAuyf/lNrH9ck8DmNyo3fG...
41
+ # -----END RSA PRIVATE KEY-----`.
42
+ # @param [Boolean] sandbox [APN only] Whether to send the credential to sandbox
43
+ # APNs. Can be `true` to send to sandbox APNs or `false` to send to production.
44
+ # @param [String] api_key [GCM only] The API key for the project that was obtained
45
+ # from the Google Developer console for your GCM Service application credential.
46
+ # @param [String] secret [FCM only] The **Server key** of your project from the
47
+ # Firebase console, found under Settings / Cloud messaging.
48
+ # @return [CredentialInstance] Created CredentialInstance
49
+ def create(type: nil, friendly_name: :unset, certificate: :unset, private_key: :unset, sandbox: :unset, api_key: :unset, secret: :unset)
50
+ data = Twilio::Values.of({
51
+ 'Type' => type,
52
+ 'FriendlyName' => friendly_name,
53
+ 'Certificate' => certificate,
54
+ 'PrivateKey' => private_key,
55
+ 'Sandbox' => sandbox,
56
+ 'ApiKey' => api_key,
57
+ 'Secret' => secret,
58
+ })
59
+
60
+ payload = @version.create('POST', @uri, data: data)
61
+
62
+ CredentialInstance.new(@version, payload, )
63
+ end
64
+
65
+ ##
66
+ # Lists CredentialInstance records from the API as a list.
67
+ # Unlike stream(), this operation is eager and will load `limit` records into
68
+ # memory before returning.
69
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
70
+ # guarantees to never return more than limit. Default is no limit
71
+ # @param [Integer] page_size Number of records to fetch per request, when
72
+ # not set will use the default value of 50 records. If no page_size is defined
73
+ # but a limit is defined, stream() will attempt to read the limit with the most
74
+ # efficient page size, i.e. min(limit, 1000)
75
+ # @return [Array] Array of up to limit results
76
+ def list(limit: nil, page_size: nil)
77
+ self.stream(limit: limit, page_size: page_size).entries
78
+ end
79
+
80
+ ##
81
+ # Streams CredentialInstance records from the API as an Enumerable.
82
+ # This operation lazily loads records as efficiently as possible until the limit
83
+ # is reached.
84
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
85
+ # guarantees to never return more than limit. Default is no limit.
86
+ # @param [Integer] page_size Number of records to fetch per request, when
87
+ # not set will use the default value of 50 records. If no page_size is defined
88
+ # but a limit is defined, stream() will attempt to read the limit with the most
89
+ # efficient page size, i.e. min(limit, 1000)
90
+ # @return [Enumerable] Enumerable that will yield up to limit results
91
+ def stream(limit: nil, page_size: nil)
92
+ limits = @version.read_limits(limit, page_size)
93
+
94
+ page = self.page(page_size: limits[:page_size], )
95
+
96
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
97
+ end
98
+
99
+ ##
100
+ # When passed a block, yields CredentialInstance records from the API.
101
+ # This operation lazily loads records as efficiently as possible until the limit
102
+ # is reached.
103
+ def each
104
+ limits = @version.read_limits
105
+
106
+ page = self.page(page_size: limits[:page_size], )
107
+
108
+ @version.stream(page,
109
+ limit: limits[:limit],
110
+ page_limit: limits[:page_limit]).each {|x| yield x}
111
+ end
112
+
113
+ ##
114
+ # Retrieve a single page of CredentialInstance records from the API.
115
+ # Request is executed immediately.
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 CredentialInstance
120
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
121
+ params = Twilio::Values.of({
122
+ 'PageToken' => page_token,
123
+ 'Page' => page_number,
124
+ 'PageSize' => page_size,
125
+ })
126
+
127
+ response = @version.page('GET', @uri, params: params)
128
+
129
+ CredentialPage.new(@version, response, @solution)
130
+ end
131
+
132
+ ##
133
+ # Retrieve a single page of CredentialInstance records from the API.
134
+ # Request is executed immediately.
135
+ # @param [String] target_url API-generated URL for the requested results page
136
+ # @return [Page] Page of CredentialInstance
137
+ def get_page(target_url)
138
+ response = @version.domain.request(
139
+ 'GET',
140
+ target_url
141
+ )
142
+ CredentialPage.new(@version, response, @solution)
143
+ end
144
+
145
+ ##
146
+ # Provide a user friendly representation
147
+ def to_s
148
+ '#<Twilio.Conversations.V1.CredentialList>'
149
+ end
150
+ end
151
+
152
+ class CredentialPage < Page
153
+ ##
154
+ # Initialize the CredentialPage
155
+ # @param [Version] version Version that contains the resource
156
+ # @param [Response] response Response from the API
157
+ # @param [Hash] solution Path solution for the resource
158
+ # @return [CredentialPage] CredentialPage
159
+ def initialize(version, response, solution)
160
+ super(version, response)
161
+
162
+ # Path Solution
163
+ @solution = solution
164
+ end
165
+
166
+ ##
167
+ # Build an instance of CredentialInstance
168
+ # @param [Hash] payload Payload response from the API
169
+ # @return [CredentialInstance] CredentialInstance
170
+ def get_instance(payload)
171
+ CredentialInstance.new(@version, payload, )
172
+ end
173
+
174
+ ##
175
+ # Provide a user friendly representation
176
+ def to_s
177
+ '<Twilio.Conversations.V1.CredentialPage>'
178
+ end
179
+ end
180
+
181
+ class CredentialContext < InstanceContext
182
+ ##
183
+ # Initialize the CredentialContext
184
+ # @param [Version] version Version that contains the resource
185
+ # @param [String] sid A 34 character string that uniquely identifies this
186
+ # resource.
187
+ # @return [CredentialContext] CredentialContext
188
+ def initialize(version, sid)
189
+ super(version)
190
+
191
+ # Path Solution
192
+ @solution = {sid: sid, }
193
+ @uri = "/Credentials/#{@solution[:sid]}"
194
+ end
195
+
196
+ ##
197
+ # Update the CredentialInstance
198
+ # @param [credential.PushType] type The type of push-notification service the
199
+ # credential is for. Can be: `fcm`, `gcm`, or `apn`.
200
+ # @param [String] friendly_name A descriptive string that you create to describe
201
+ # the new resource. It can be up to 64 characters long.
202
+ # @param [String] certificate [APN only] The URL encoded representation of the
203
+ # certificate. For example,
204
+ # `-----BEGIN CERTIFICATE-----
205
+ # MIIFnTCCBIWgAwIBAgIIAjy9H849+E8wDQYJKoZIhvcNAQEF.....A==
206
+ # -----END CERTIFICATE-----`.
207
+ # @param [String] private_key [APN only] The URL encoded representation of the
208
+ # private key. For example,
209
+ # `-----BEGIN RSA PRIVATE KEY-----
210
+ # MIIEpQIBAAKCAQEAuyf/lNrH9ck8DmNyo3fG...
211
+ # -----END RSA PRIVATE KEY-----`.
212
+ # @param [Boolean] sandbox [APN only] Whether to send the credential to sandbox
213
+ # APNs. Can be `true` to send to sandbox APNs or `false` to send to production.
214
+ # @param [String] api_key [GCM only] The API key for the project that was obtained
215
+ # from the Google Developer console for your GCM Service application credential.
216
+ # @param [String] secret [FCM only] The **Server key** of your project from the
217
+ # Firebase console, found under Settings / Cloud messaging.
218
+ # @return [CredentialInstance] Updated CredentialInstance
219
+ def update(type: :unset, friendly_name: :unset, certificate: :unset, private_key: :unset, sandbox: :unset, api_key: :unset, secret: :unset)
220
+ data = Twilio::Values.of({
221
+ 'Type' => type,
222
+ 'FriendlyName' => friendly_name,
223
+ 'Certificate' => certificate,
224
+ 'PrivateKey' => private_key,
225
+ 'Sandbox' => sandbox,
226
+ 'ApiKey' => api_key,
227
+ 'Secret' => secret,
228
+ })
229
+
230
+ payload = @version.update('POST', @uri, data: data)
231
+
232
+ CredentialInstance.new(@version, payload, sid: @solution[:sid], )
233
+ end
234
+
235
+ ##
236
+ # Delete the CredentialInstance
237
+ # @return [Boolean] true if delete succeeds, false otherwise
238
+ def delete
239
+ @version.delete('DELETE', @uri)
240
+ end
241
+
242
+ ##
243
+ # Fetch the CredentialInstance
244
+ # @return [CredentialInstance] Fetched CredentialInstance
245
+ def fetch
246
+ payload = @version.fetch('GET', @uri)
247
+
248
+ CredentialInstance.new(@version, payload, sid: @solution[:sid], )
249
+ end
250
+
251
+ ##
252
+ # Provide a user friendly representation
253
+ def to_s
254
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
255
+ "#<Twilio.Conversations.V1.CredentialContext #{context}>"
256
+ end
257
+
258
+ ##
259
+ # Provide a detailed, user friendly representation
260
+ def inspect
261
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
262
+ "#<Twilio.Conversations.V1.CredentialContext #{context}>"
263
+ end
264
+ end
265
+
266
+ class CredentialInstance < InstanceResource
267
+ ##
268
+ # Initialize the CredentialInstance
269
+ # @param [Version] version Version that contains the resource
270
+ # @param [Hash] payload payload that contains response from Twilio
271
+ # @param [String] sid A 34 character string that uniquely identifies this
272
+ # resource.
273
+ # @return [CredentialInstance] CredentialInstance
274
+ def initialize(version, payload, sid: nil)
275
+ super(version)
276
+
277
+ # Marshaled Properties
278
+ @properties = {
279
+ 'sid' => payload['sid'],
280
+ 'account_sid' => payload['account_sid'],
281
+ 'friendly_name' => payload['friendly_name'],
282
+ 'type' => payload['type'],
283
+ 'sandbox' => payload['sandbox'],
284
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
285
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
286
+ 'url' => payload['url'],
287
+ }
288
+
289
+ # Context
290
+ @instance_context = nil
291
+ @params = {'sid' => sid || @properties['sid'], }
292
+ end
293
+
294
+ ##
295
+ # Generate an instance context for the instance, the context is capable of
296
+ # performing various actions. All instance actions are proxied to the context
297
+ # @return [CredentialContext] CredentialContext for this CredentialInstance
298
+ def context
299
+ unless @instance_context
300
+ @instance_context = CredentialContext.new(@version, @params['sid'], )
301
+ end
302
+ @instance_context
303
+ end
304
+
305
+ ##
306
+ # @return [String] A 34 character string that uniquely identifies this resource.
307
+ def sid
308
+ @properties['sid']
309
+ end
310
+
311
+ ##
312
+ # @return [String] The unique ID of the Account responsible for this credential.
313
+ def account_sid
314
+ @properties['account_sid']
315
+ end
316
+
317
+ ##
318
+ # @return [String] The human-readable name of this credential.
319
+ def friendly_name
320
+ @properties['friendly_name']
321
+ end
322
+
323
+ ##
324
+ # @return [credential.PushType] The type of push-notification service the credential is for.
325
+ def type
326
+ @properties['type']
327
+ end
328
+
329
+ ##
330
+ # @return [String] [APN only] Whether to send the credential to sandbox APNs.
331
+ def sandbox
332
+ @properties['sandbox']
333
+ end
334
+
335
+ ##
336
+ # @return [Time] The date that this resource was created.
337
+ def date_created
338
+ @properties['date_created']
339
+ end
340
+
341
+ ##
342
+ # @return [Time] The date that this resource was last updated.
343
+ def date_updated
344
+ @properties['date_updated']
345
+ end
346
+
347
+ ##
348
+ # @return [String] An absolute URL for this credential.
349
+ def url
350
+ @properties['url']
351
+ end
352
+
353
+ ##
354
+ # Update the CredentialInstance
355
+ # @param [credential.PushType] type The type of push-notification service the
356
+ # credential is for. Can be: `fcm`, `gcm`, or `apn`.
357
+ # @param [String] friendly_name A descriptive string that you create to describe
358
+ # the new resource. It can be up to 64 characters long.
359
+ # @param [String] certificate [APN only] The URL encoded representation of the
360
+ # certificate. For example,
361
+ # `-----BEGIN CERTIFICATE-----
362
+ # MIIFnTCCBIWgAwIBAgIIAjy9H849+E8wDQYJKoZIhvcNAQEF.....A==
363
+ # -----END CERTIFICATE-----`.
364
+ # @param [String] private_key [APN only] The URL encoded representation of the
365
+ # private key. For example,
366
+ # `-----BEGIN RSA PRIVATE KEY-----
367
+ # MIIEpQIBAAKCAQEAuyf/lNrH9ck8DmNyo3fG...
368
+ # -----END RSA PRIVATE KEY-----`.
369
+ # @param [Boolean] sandbox [APN only] Whether to send the credential to sandbox
370
+ # APNs. Can be `true` to send to sandbox APNs or `false` to send to production.
371
+ # @param [String] api_key [GCM only] The API key for the project that was obtained
372
+ # from the Google Developer console for your GCM Service application credential.
373
+ # @param [String] secret [FCM only] The **Server key** of your project from the
374
+ # Firebase console, found under Settings / Cloud messaging.
375
+ # @return [CredentialInstance] Updated CredentialInstance
376
+ def update(type: :unset, friendly_name: :unset, certificate: :unset, private_key: :unset, sandbox: :unset, api_key: :unset, secret: :unset)
377
+ context.update(
378
+ type: type,
379
+ friendly_name: friendly_name,
380
+ certificate: certificate,
381
+ private_key: private_key,
382
+ sandbox: sandbox,
383
+ api_key: api_key,
384
+ secret: secret,
385
+ )
386
+ end
387
+
388
+ ##
389
+ # Delete the CredentialInstance
390
+ # @return [Boolean] true if delete succeeds, false otherwise
391
+ def delete
392
+ context.delete
393
+ end
394
+
395
+ ##
396
+ # Fetch the CredentialInstance
397
+ # @return [CredentialInstance] Fetched CredentialInstance
398
+ def fetch
399
+ context.fetch
400
+ end
401
+
402
+ ##
403
+ # Provide a user friendly representation
404
+ def to_s
405
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
406
+ "<Twilio.Conversations.V1.CredentialInstance #{values}>"
407
+ end
408
+
409
+ ##
410
+ # Provide a detailed, user friendly representation
411
+ def inspect
412
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
413
+ "<Twilio.Conversations.V1.CredentialInstance #{values}>"
414
+ end
415
+ end
416
+ end
417
+ end
418
+ end
419
+ end
@@ -0,0 +1,366 @@
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 RoleList < ListResource
14
+ ##
15
+ # Initialize the RoleList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [RoleList] RoleList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/Roles"
24
+ end
25
+
26
+ ##
27
+ # Create the RoleInstance
28
+ # @param [String] friendly_name A descriptive string that you create to describe
29
+ # the new resource. It can be up to 64 characters long.
30
+ # @param [role.RoleType] type The type of role. Can be: `conversation` for
31
+ # {Conversation}[https://www.twilio.com/docs/conversations/api/conversation-resource]
32
+ # roles or `service` for {Conversation
33
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] roles.
34
+ # @param [String] permission A permission that you grant to the new role. Only one
35
+ # permission can be granted per parameter. To assign more than one permission,
36
+ # repeat this parameter for each permission value. The values for this parameter
37
+ # depend on the role's `type`.
38
+ # @return [RoleInstance] Created RoleInstance
39
+ def create(friendly_name: nil, type: nil, permission: nil)
40
+ data = Twilio::Values.of({
41
+ 'FriendlyName' => friendly_name,
42
+ 'Type' => type,
43
+ 'Permission' => Twilio.serialize_list(permission) { |e| e },
44
+ })
45
+
46
+ payload = @version.create('POST', @uri, data: data)
47
+
48
+ RoleInstance.new(@version, payload, )
49
+ end
50
+
51
+ ##
52
+ # Lists RoleInstance records from the API as a list.
53
+ # Unlike stream(), this operation is eager and will load `limit` records into
54
+ # memory before returning.
55
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
56
+ # guarantees to never return more than limit. Default is no limit
57
+ # @param [Integer] page_size Number of records to fetch per request, when
58
+ # not set will use the default value of 50 records. If no page_size is defined
59
+ # but a limit is defined, stream() will attempt to read the limit with the most
60
+ # efficient page size, i.e. min(limit, 1000)
61
+ # @return [Array] Array of up to limit results
62
+ def list(limit: nil, page_size: nil)
63
+ self.stream(limit: limit, page_size: page_size).entries
64
+ end
65
+
66
+ ##
67
+ # Streams RoleInstance records from the API as an Enumerable.
68
+ # This operation lazily loads records as efficiently as possible until the limit
69
+ # is reached.
70
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
71
+ # guarantees to never return more than limit. Default is no limit.
72
+ # @param [Integer] page_size Number of records to fetch per request, when
73
+ # not set will use the default value of 50 records. If no page_size is defined
74
+ # but a limit is defined, stream() will attempt to read the limit with the most
75
+ # efficient page size, i.e. min(limit, 1000)
76
+ # @return [Enumerable] Enumerable that will yield up to limit results
77
+ def stream(limit: nil, page_size: nil)
78
+ limits = @version.read_limits(limit, page_size)
79
+
80
+ page = self.page(page_size: limits[:page_size], )
81
+
82
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
83
+ end
84
+
85
+ ##
86
+ # When passed a block, yields RoleInstance records from the API.
87
+ # This operation lazily loads records as efficiently as possible until the limit
88
+ # is reached.
89
+ def each
90
+ limits = @version.read_limits
91
+
92
+ page = self.page(page_size: limits[:page_size], )
93
+
94
+ @version.stream(page,
95
+ limit: limits[:limit],
96
+ page_limit: limits[:page_limit]).each {|x| yield x}
97
+ end
98
+
99
+ ##
100
+ # Retrieve a single page of RoleInstance records from the API.
101
+ # Request is executed immediately.
102
+ # @param [String] page_token PageToken provided by the API
103
+ # @param [Integer] page_number Page Number, this value is simply for client state
104
+ # @param [Integer] page_size Number of records to return, defaults to 50
105
+ # @return [Page] Page of RoleInstance
106
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
107
+ params = Twilio::Values.of({
108
+ 'PageToken' => page_token,
109
+ 'Page' => page_number,
110
+ 'PageSize' => page_size,
111
+ })
112
+
113
+ response = @version.page('GET', @uri, params: params)
114
+
115
+ RolePage.new(@version, response, @solution)
116
+ end
117
+
118
+ ##
119
+ # Retrieve a single page of RoleInstance records from the API.
120
+ # Request is executed immediately.
121
+ # @param [String] target_url API-generated URL for the requested results page
122
+ # @return [Page] Page of RoleInstance
123
+ def get_page(target_url)
124
+ response = @version.domain.request(
125
+ 'GET',
126
+ target_url
127
+ )
128
+ RolePage.new(@version, response, @solution)
129
+ end
130
+
131
+ ##
132
+ # Provide a user friendly representation
133
+ def to_s
134
+ '#<Twilio.Conversations.V1.RoleList>'
135
+ end
136
+ end
137
+
138
+ class RolePage < Page
139
+ ##
140
+ # Initialize the RolePage
141
+ # @param [Version] version Version that contains the resource
142
+ # @param [Response] response Response from the API
143
+ # @param [Hash] solution Path solution for the resource
144
+ # @return [RolePage] RolePage
145
+ def initialize(version, response, solution)
146
+ super(version, response)
147
+
148
+ # Path Solution
149
+ @solution = solution
150
+ end
151
+
152
+ ##
153
+ # Build an instance of RoleInstance
154
+ # @param [Hash] payload Payload response from the API
155
+ # @return [RoleInstance] RoleInstance
156
+ def get_instance(payload)
157
+ RoleInstance.new(@version, payload, )
158
+ end
159
+
160
+ ##
161
+ # Provide a user friendly representation
162
+ def to_s
163
+ '<Twilio.Conversations.V1.RolePage>'
164
+ end
165
+ end
166
+
167
+ class RoleContext < InstanceContext
168
+ ##
169
+ # Initialize the RoleContext
170
+ # @param [Version] version Version that contains the resource
171
+ # @param [String] sid The SID of the Role resource to fetch.
172
+ # @return [RoleContext] RoleContext
173
+ def initialize(version, sid)
174
+ super(version)
175
+
176
+ # Path Solution
177
+ @solution = {sid: sid, }
178
+ @uri = "/Roles/#{@solution[:sid]}"
179
+ end
180
+
181
+ ##
182
+ # Update the RoleInstance
183
+ # @param [String] permission A permission that you grant to the role. Only one
184
+ # permission can be granted per parameter. To assign more than one permission,
185
+ # repeat this parameter for each permission value. Note that the update action
186
+ # replaces all previously assigned permissions with those defined in the update
187
+ # action. To remove a permission, do not include it in the subsequent update
188
+ # action. The values for this parameter depend on the role's `type`.
189
+ # @return [RoleInstance] Updated RoleInstance
190
+ def update(permission: nil)
191
+ data = Twilio::Values.of({'Permission' => Twilio.serialize_list(permission) { |e| e }, })
192
+
193
+ payload = @version.update('POST', @uri, data: data)
194
+
195
+ RoleInstance.new(@version, payload, sid: @solution[:sid], )
196
+ end
197
+
198
+ ##
199
+ # Delete the RoleInstance
200
+ # @return [Boolean] true if delete succeeds, false otherwise
201
+ def delete
202
+ @version.delete('DELETE', @uri)
203
+ end
204
+
205
+ ##
206
+ # Fetch the RoleInstance
207
+ # @return [RoleInstance] Fetched RoleInstance
208
+ def fetch
209
+ payload = @version.fetch('GET', @uri)
210
+
211
+ RoleInstance.new(@version, payload, sid: @solution[:sid], )
212
+ end
213
+
214
+ ##
215
+ # Provide a user friendly representation
216
+ def to_s
217
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
218
+ "#<Twilio.Conversations.V1.RoleContext #{context}>"
219
+ end
220
+
221
+ ##
222
+ # Provide a detailed, user friendly representation
223
+ def inspect
224
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
225
+ "#<Twilio.Conversations.V1.RoleContext #{context}>"
226
+ end
227
+ end
228
+
229
+ class RoleInstance < InstanceResource
230
+ ##
231
+ # Initialize the RoleInstance
232
+ # @param [Version] version Version that contains the resource
233
+ # @param [Hash] payload payload that contains response from Twilio
234
+ # @param [String] sid The SID of the Role resource to fetch.
235
+ # @return [RoleInstance] RoleInstance
236
+ def initialize(version, payload, sid: nil)
237
+ super(version)
238
+
239
+ # Marshaled Properties
240
+ @properties = {
241
+ 'sid' => payload['sid'],
242
+ 'account_sid' => payload['account_sid'],
243
+ 'chat_service_sid' => payload['chat_service_sid'],
244
+ 'friendly_name' => payload['friendly_name'],
245
+ 'type' => payload['type'],
246
+ 'permissions' => payload['permissions'],
247
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
248
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
249
+ 'url' => payload['url'],
250
+ }
251
+
252
+ # Context
253
+ @instance_context = nil
254
+ @params = {'sid' => sid || @properties['sid'], }
255
+ end
256
+
257
+ ##
258
+ # Generate an instance context for the instance, the context is capable of
259
+ # performing various actions. All instance actions are proxied to the context
260
+ # @return [RoleContext] RoleContext for this RoleInstance
261
+ def context
262
+ unless @instance_context
263
+ @instance_context = RoleContext.new(@version, @params['sid'], )
264
+ end
265
+ @instance_context
266
+ end
267
+
268
+ ##
269
+ # @return [String] The unique string that identifies the resource
270
+ def sid
271
+ @properties['sid']
272
+ end
273
+
274
+ ##
275
+ # @return [String] The SID of the Account that created the resource
276
+ def account_sid
277
+ @properties['account_sid']
278
+ end
279
+
280
+ ##
281
+ # @return [String] The SID of the Conversation Service that the resource is associated with
282
+ def chat_service_sid
283
+ @properties['chat_service_sid']
284
+ end
285
+
286
+ ##
287
+ # @return [String] The string that you assigned to describe the resource
288
+ def friendly_name
289
+ @properties['friendly_name']
290
+ end
291
+
292
+ ##
293
+ # @return [role.RoleType] The type of role
294
+ def type
295
+ @properties['type']
296
+ end
297
+
298
+ ##
299
+ # @return [String] An array of the permissions the role has been granted
300
+ def permissions
301
+ @properties['permissions']
302
+ end
303
+
304
+ ##
305
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was created
306
+ def date_created
307
+ @properties['date_created']
308
+ end
309
+
310
+ ##
311
+ # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
312
+ def date_updated
313
+ @properties['date_updated']
314
+ end
315
+
316
+ ##
317
+ # @return [String] An absolute URL for this user role.
318
+ def url
319
+ @properties['url']
320
+ end
321
+
322
+ ##
323
+ # Update the RoleInstance
324
+ # @param [String] permission A permission that you grant to the role. Only one
325
+ # permission can be granted per parameter. To assign more than one permission,
326
+ # repeat this parameter for each permission value. Note that the update action
327
+ # replaces all previously assigned permissions with those defined in the update
328
+ # action. To remove a permission, do not include it in the subsequent update
329
+ # action. The values for this parameter depend on the role's `type`.
330
+ # @return [RoleInstance] Updated RoleInstance
331
+ def update(permission: nil)
332
+ context.update(permission: permission, )
333
+ end
334
+
335
+ ##
336
+ # Delete the RoleInstance
337
+ # @return [Boolean] true if delete succeeds, false otherwise
338
+ def delete
339
+ context.delete
340
+ end
341
+
342
+ ##
343
+ # Fetch the RoleInstance
344
+ # @return [RoleInstance] Fetched RoleInstance
345
+ def fetch
346
+ context.fetch
347
+ end
348
+
349
+ ##
350
+ # Provide a user friendly representation
351
+ def to_s
352
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
353
+ "<Twilio.Conversations.V1.RoleInstance #{values}>"
354
+ end
355
+
356
+ ##
357
+ # Provide a detailed, user friendly representation
358
+ def inspect
359
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
360
+ "<Twilio.Conversations.V1.RoleInstance #{values}>"
361
+ end
362
+ end
363
+ end
364
+ end
365
+ end
366
+ end