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,263 @@
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 ConfigurationList < ListResource
15
+ ##
16
+ # Initialize the ConfigurationList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] chat_service_sid The unique string that we created to identify
19
+ # the Service configuration resource.
20
+ # @return [ConfigurationList] ConfigurationList
21
+ def initialize(version, chat_service_sid: nil)
22
+ super(version)
23
+
24
+ # Path Solution
25
+ @solution = {chat_service_sid: chat_service_sid}
26
+ end
27
+
28
+ ##
29
+ # Provide a user friendly representation
30
+ def to_s
31
+ '#<Twilio.Conversations.V1.ConfigurationList>'
32
+ end
33
+ end
34
+
35
+ class ConfigurationPage < Page
36
+ ##
37
+ # Initialize the ConfigurationPage
38
+ # @param [Version] version Version that contains the resource
39
+ # @param [Response] response Response from the API
40
+ # @param [Hash] solution Path solution for the resource
41
+ # @return [ConfigurationPage] ConfigurationPage
42
+ def initialize(version, response, solution)
43
+ super(version, response)
44
+
45
+ # Path Solution
46
+ @solution = solution
47
+ end
48
+
49
+ ##
50
+ # Build an instance of ConfigurationInstance
51
+ # @param [Hash] payload Payload response from the API
52
+ # @return [ConfigurationInstance] ConfigurationInstance
53
+ def get_instance(payload)
54
+ ConfigurationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
55
+ end
56
+
57
+ ##
58
+ # Provide a user friendly representation
59
+ def to_s
60
+ '<Twilio.Conversations.V1.ConfigurationPage>'
61
+ end
62
+ end
63
+
64
+ class ConfigurationContext < InstanceContext
65
+ ##
66
+ # Initialize the ConfigurationContext
67
+ # @param [Version] version Version that contains the resource
68
+ # @param [String] chat_service_sid The SID of the Service configuration resource
69
+ # to fetch.
70
+ # @return [ConfigurationContext] ConfigurationContext
71
+ def initialize(version, chat_service_sid)
72
+ super(version)
73
+
74
+ # Path Solution
75
+ @solution = {chat_service_sid: chat_service_sid, }
76
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Configuration"
77
+
78
+ # Components
79
+ @notifications = nil
80
+ end
81
+
82
+ ##
83
+ # Fetch the ConfigurationInstance
84
+ # @return [ConfigurationInstance] Fetched ConfigurationInstance
85
+ def fetch
86
+ payload = @version.fetch('GET', @uri)
87
+
88
+ ConfigurationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
89
+ end
90
+
91
+ ##
92
+ # Update the ConfigurationInstance
93
+ # @param [String] default_conversation_creator_role_sid The conversation-level
94
+ # role assigned to a conversation creator when they join a new conversation. See
95
+ # the {Conversation
96
+ # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
97
+ # about roles.
98
+ # @param [String] default_conversation_role_sid The conversation-level role
99
+ # assigned to users when they are added to a conversation. See the {Conversation
100
+ # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
101
+ # about roles.
102
+ # @param [String] default_chat_service_role_sid The service-level role assigned to
103
+ # users when they are added to the service. See the {Conversation
104
+ # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
105
+ # about roles.
106
+ # @return [ConfigurationInstance] Updated ConfigurationInstance
107
+ def update(default_conversation_creator_role_sid: :unset, default_conversation_role_sid: :unset, default_chat_service_role_sid: :unset)
108
+ data = Twilio::Values.of({
109
+ 'DefaultConversationCreatorRoleSid' => default_conversation_creator_role_sid,
110
+ 'DefaultConversationRoleSid' => default_conversation_role_sid,
111
+ 'DefaultChatServiceRoleSid' => default_chat_service_role_sid,
112
+ })
113
+
114
+ payload = @version.update('POST', @uri, data: data)
115
+
116
+ ConfigurationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
117
+ end
118
+
119
+ ##
120
+ # Access the notifications
121
+ # @return [NotificationContext] NotificationContext
122
+ def notifications
123
+ return NotificationContext.new(@version, @solution[:chat_service_sid], )
124
+ end
125
+
126
+ ##
127
+ # Provide a user friendly representation
128
+ def to_s
129
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
130
+ "#<Twilio.Conversations.V1.ConfigurationContext #{context}>"
131
+ end
132
+
133
+ ##
134
+ # Provide a detailed, user friendly representation
135
+ def inspect
136
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
137
+ "#<Twilio.Conversations.V1.ConfigurationContext #{context}>"
138
+ end
139
+ end
140
+
141
+ class ConfigurationInstance < InstanceResource
142
+ ##
143
+ # Initialize the ConfigurationInstance
144
+ # @param [Version] version Version that contains the resource
145
+ # @param [Hash] payload payload that contains response from Twilio
146
+ # @param [String] chat_service_sid The unique string that we created to identify
147
+ # the Service configuration resource.
148
+ # @return [ConfigurationInstance] ConfigurationInstance
149
+ def initialize(version, payload, chat_service_sid: nil)
150
+ super(version)
151
+
152
+ # Marshaled Properties
153
+ @properties = {
154
+ 'chat_service_sid' => payload['chat_service_sid'],
155
+ 'default_conversation_creator_role_sid' => payload['default_conversation_creator_role_sid'],
156
+ 'default_conversation_role_sid' => payload['default_conversation_role_sid'],
157
+ 'default_chat_service_role_sid' => payload['default_chat_service_role_sid'],
158
+ 'url' => payload['url'],
159
+ 'links' => payload['links'],
160
+ }
161
+
162
+ # Context
163
+ @instance_context = nil
164
+ @params = {'chat_service_sid' => chat_service_sid, }
165
+ end
166
+
167
+ ##
168
+ # Generate an instance context for the instance, the context is capable of
169
+ # performing various actions. All instance actions are proxied to the context
170
+ # @return [ConfigurationContext] ConfigurationContext for this ConfigurationInstance
171
+ def context
172
+ unless @instance_context
173
+ @instance_context = ConfigurationContext.new(@version, @params['chat_service_sid'], )
174
+ end
175
+ @instance_context
176
+ end
177
+
178
+ ##
179
+ # @return [String] The unique string that identifies the resource
180
+ def chat_service_sid
181
+ @properties['chat_service_sid']
182
+ end
183
+
184
+ ##
185
+ # @return [String] The role assigned to a conversation creator user when they join a new conversation
186
+ def default_conversation_creator_role_sid
187
+ @properties['default_conversation_creator_role_sid']
188
+ end
189
+
190
+ ##
191
+ # @return [String] The role assigned to users when they are added to a conversation
192
+ def default_conversation_role_sid
193
+ @properties['default_conversation_role_sid']
194
+ end
195
+
196
+ ##
197
+ # @return [String] The service role assigned to users when they are added to the service
198
+ def default_chat_service_role_sid
199
+ @properties['default_chat_service_role_sid']
200
+ end
201
+
202
+ ##
203
+ # @return [String] An absolute URL for this service configuration.
204
+ def url
205
+ @properties['url']
206
+ end
207
+
208
+ ##
209
+ # @return [String] Absolute URL to access the push notifications configuration of this service.
210
+ def links
211
+ @properties['links']
212
+ end
213
+
214
+ ##
215
+ # Fetch the ConfigurationInstance
216
+ # @return [ConfigurationInstance] Fetched ConfigurationInstance
217
+ def fetch
218
+ context.fetch
219
+ end
220
+
221
+ ##
222
+ # Update the ConfigurationInstance
223
+ # @param [String] default_conversation_creator_role_sid The conversation-level
224
+ # role assigned to a conversation creator when they join a new conversation. See
225
+ # the {Conversation
226
+ # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
227
+ # about roles.
228
+ # @param [String] default_conversation_role_sid The conversation-level role
229
+ # assigned to users when they are added to a conversation. See the {Conversation
230
+ # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
231
+ # about roles.
232
+ # @param [String] default_chat_service_role_sid The service-level role assigned to
233
+ # users when they are added to the service. See the {Conversation
234
+ # Role}[https://www.twilio.com/docs/conversations/api/role-resource] for more info
235
+ # about roles.
236
+ # @return [ConfigurationInstance] Updated ConfigurationInstance
237
+ def update(default_conversation_creator_role_sid: :unset, default_conversation_role_sid: :unset, default_chat_service_role_sid: :unset)
238
+ context.update(
239
+ default_conversation_creator_role_sid: default_conversation_creator_role_sid,
240
+ default_conversation_role_sid: default_conversation_role_sid,
241
+ default_chat_service_role_sid: default_chat_service_role_sid,
242
+ )
243
+ end
244
+
245
+ ##
246
+ # Provide a user friendly representation
247
+ def to_s
248
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
249
+ "<Twilio.Conversations.V1.ConfigurationInstance #{values}>"
250
+ end
251
+
252
+ ##
253
+ # Provide a detailed, user friendly representation
254
+ def inspect
255
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
256
+ "<Twilio.Conversations.V1.ConfigurationInstance #{values}>"
257
+ end
258
+ end
259
+ end
260
+ end
261
+ end
262
+ end
263
+ end
@@ -0,0 +1,307 @@
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 ConfigurationContext < InstanceContext
15
+ class NotificationList < ListResource
16
+ ##
17
+ # Initialize the NotificationList
18
+ # @param [Version] version Version that contains the resource
19
+ # @param [String] chat_service_sid The unique string that we created to identify
20
+ # the Service configuration resource.
21
+ # @return [NotificationList] NotificationList
22
+ def initialize(version, chat_service_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {chat_service_sid: chat_service_sid}
27
+ end
28
+
29
+ ##
30
+ # Provide a user friendly representation
31
+ def to_s
32
+ '#<Twilio.Conversations.V1.NotificationList>'
33
+ end
34
+ end
35
+
36
+ class NotificationPage < Page
37
+ ##
38
+ # Initialize the NotificationPage
39
+ # @param [Version] version Version that contains the resource
40
+ # @param [Response] response Response from the API
41
+ # @param [Hash] solution Path solution for the resource
42
+ # @return [NotificationPage] NotificationPage
43
+ def initialize(version, response, solution)
44
+ super(version, response)
45
+
46
+ # Path Solution
47
+ @solution = solution
48
+ end
49
+
50
+ ##
51
+ # Build an instance of NotificationInstance
52
+ # @param [Hash] payload Payload response from the API
53
+ # @return [NotificationInstance] NotificationInstance
54
+ def get_instance(payload)
55
+ NotificationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
56
+ end
57
+
58
+ ##
59
+ # Provide a user friendly representation
60
+ def to_s
61
+ '<Twilio.Conversations.V1.NotificationPage>'
62
+ end
63
+ end
64
+
65
+ class NotificationContext < InstanceContext
66
+ ##
67
+ # Initialize the NotificationContext
68
+ # @param [Version] version Version that contains the resource
69
+ # @param [String] chat_service_sid The SID of the {Conversation
70
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
71
+ # Configuration applies to.
72
+ # @return [NotificationContext] NotificationContext
73
+ def initialize(version, chat_service_sid)
74
+ super(version)
75
+
76
+ # Path Solution
77
+ @solution = {chat_service_sid: chat_service_sid, }
78
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Configuration/Notifications"
79
+ end
80
+
81
+ ##
82
+ # Update the NotificationInstance
83
+ # @param [Boolean] log_enabled Weather the notification logging is enabled.
84
+ # @param [Boolean] new_message_enabled Whether to send a notification when a new
85
+ # message is added to a conversation. The default is `false`.
86
+ # @param [String] new_message_template The template to use to create the
87
+ # notification text displayed when a new message is added to a conversation and
88
+ # `new_message.enabled` is `true`.
89
+ # @param [String] new_message_sound The name of the sound to play when a new
90
+ # message is added to a conversation and `new_message.enabled` is `true`.
91
+ # @param [Boolean] new_message_badge_count_enabled Whether the new message badge
92
+ # is enabled. The default is `false`.
93
+ # @param [Boolean] added_to_conversation_enabled Whether to send a notification
94
+ # when a participant is added to a conversation. The default is `false`.
95
+ # @param [String] added_to_conversation_template The template to use to create the
96
+ # notification text displayed when a participant is added to a conversation and
97
+ # `added_to_conversation.enabled` is `true`.
98
+ # @param [String] added_to_conversation_sound The name of the sound to play when a
99
+ # participant is added to a conversation and `added_to_conversation.enabled` is
100
+ # `true`.
101
+ # @param [Boolean] removed_from_conversation_enabled Whether to send a
102
+ # notification to a user when they are removed from a conversation. The default is
103
+ # `false`.
104
+ # @param [String] removed_from_conversation_template The template to use to create
105
+ # the notification text displayed to a user when they are removed from a
106
+ # conversation and `removed_from_conversation.enabled` is `true`.
107
+ # @param [String] removed_from_conversation_sound The name of the sound to play to
108
+ # a user when they are removed from a conversation and
109
+ # `removed_from_conversation.enabled` is `true`.
110
+ # @return [NotificationInstance] Updated NotificationInstance
111
+ def update(log_enabled: :unset, new_message_enabled: :unset, new_message_template: :unset, new_message_sound: :unset, new_message_badge_count_enabled: :unset, added_to_conversation_enabled: :unset, added_to_conversation_template: :unset, added_to_conversation_sound: :unset, removed_from_conversation_enabled: :unset, removed_from_conversation_template: :unset, removed_from_conversation_sound: :unset)
112
+ data = Twilio::Values.of({
113
+ 'LogEnabled' => log_enabled,
114
+ 'NewMessage.Enabled' => new_message_enabled,
115
+ 'NewMessage.Template' => new_message_template,
116
+ 'NewMessage.Sound' => new_message_sound,
117
+ 'NewMessage.BadgeCountEnabled' => new_message_badge_count_enabled,
118
+ 'AddedToConversation.Enabled' => added_to_conversation_enabled,
119
+ 'AddedToConversation.Template' => added_to_conversation_template,
120
+ 'AddedToConversation.Sound' => added_to_conversation_sound,
121
+ 'RemovedFromConversation.Enabled' => removed_from_conversation_enabled,
122
+ 'RemovedFromConversation.Template' => removed_from_conversation_template,
123
+ 'RemovedFromConversation.Sound' => removed_from_conversation_sound,
124
+ })
125
+
126
+ payload = @version.update('POST', @uri, data: data)
127
+
128
+ NotificationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
129
+ end
130
+
131
+ ##
132
+ # Fetch the NotificationInstance
133
+ # @return [NotificationInstance] Fetched NotificationInstance
134
+ def fetch
135
+ payload = @version.fetch('GET', @uri)
136
+
137
+ NotificationInstance.new(@version, payload, chat_service_sid: @solution[:chat_service_sid], )
138
+ end
139
+
140
+ ##
141
+ # Provide a user friendly representation
142
+ def to_s
143
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
144
+ "#<Twilio.Conversations.V1.NotificationContext #{context}>"
145
+ end
146
+
147
+ ##
148
+ # Provide a detailed, user friendly representation
149
+ def inspect
150
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
151
+ "#<Twilio.Conversations.V1.NotificationContext #{context}>"
152
+ end
153
+ end
154
+
155
+ class NotificationInstance < InstanceResource
156
+ ##
157
+ # Initialize the NotificationInstance
158
+ # @param [Version] version Version that contains the resource
159
+ # @param [Hash] payload payload that contains response from Twilio
160
+ # @param [String] chat_service_sid The unique string that we created to identify
161
+ # the Service configuration resource.
162
+ # @return [NotificationInstance] NotificationInstance
163
+ def initialize(version, payload, chat_service_sid: nil)
164
+ super(version)
165
+
166
+ # Marshaled Properties
167
+ @properties = {
168
+ 'account_sid' => payload['account_sid'],
169
+ 'chat_service_sid' => payload['chat_service_sid'],
170
+ 'new_message' => payload['new_message'],
171
+ 'added_to_conversation' => payload['added_to_conversation'],
172
+ 'removed_from_conversation' => payload['removed_from_conversation'],
173
+ 'log_enabled' => payload['log_enabled'],
174
+ 'url' => payload['url'],
175
+ }
176
+
177
+ # Context
178
+ @instance_context = nil
179
+ @params = {'chat_service_sid' => chat_service_sid, }
180
+ end
181
+
182
+ ##
183
+ # Generate an instance context for the instance, the context is capable of
184
+ # performing various actions. All instance actions are proxied to the context
185
+ # @return [NotificationContext] NotificationContext for this NotificationInstance
186
+ def context
187
+ unless @instance_context
188
+ @instance_context = NotificationContext.new(@version, @params['chat_service_sid'], )
189
+ end
190
+ @instance_context
191
+ end
192
+
193
+ ##
194
+ # @return [String] The unique ID of the Account responsible for this configuration.
195
+ def account_sid
196
+ @properties['account_sid']
197
+ end
198
+
199
+ ##
200
+ # @return [String] The SID of the Conversation Service that the Configuration applies to.
201
+ def chat_service_sid
202
+ @properties['chat_service_sid']
203
+ end
204
+
205
+ ##
206
+ # @return [Hash] The Push Notification configuration for New Messages.
207
+ def new_message
208
+ @properties['new_message']
209
+ end
210
+
211
+ ##
212
+ # @return [Hash] The Push Notification configuration for being added to a Conversation.
213
+ def added_to_conversation
214
+ @properties['added_to_conversation']
215
+ end
216
+
217
+ ##
218
+ # @return [Hash] The Push Notification configuration for being removed from a Conversation.
219
+ def removed_from_conversation
220
+ @properties['removed_from_conversation']
221
+ end
222
+
223
+ ##
224
+ # @return [Boolean] Weather the notification logging is enabled.
225
+ def log_enabled
226
+ @properties['log_enabled']
227
+ end
228
+
229
+ ##
230
+ # @return [String] An absolute URL for this configuration.
231
+ def url
232
+ @properties['url']
233
+ end
234
+
235
+ ##
236
+ # Update the NotificationInstance
237
+ # @param [Boolean] log_enabled Weather the notification logging is enabled.
238
+ # @param [Boolean] new_message_enabled Whether to send a notification when a new
239
+ # message is added to a conversation. The default is `false`.
240
+ # @param [String] new_message_template The template to use to create the
241
+ # notification text displayed when a new message is added to a conversation and
242
+ # `new_message.enabled` is `true`.
243
+ # @param [String] new_message_sound The name of the sound to play when a new
244
+ # message is added to a conversation and `new_message.enabled` is `true`.
245
+ # @param [Boolean] new_message_badge_count_enabled Whether the new message badge
246
+ # is enabled. The default is `false`.
247
+ # @param [Boolean] added_to_conversation_enabled Whether to send a notification
248
+ # when a participant is added to a conversation. The default is `false`.
249
+ # @param [String] added_to_conversation_template The template to use to create the
250
+ # notification text displayed when a participant is added to a conversation and
251
+ # `added_to_conversation.enabled` is `true`.
252
+ # @param [String] added_to_conversation_sound The name of the sound to play when a
253
+ # participant is added to a conversation and `added_to_conversation.enabled` is
254
+ # `true`.
255
+ # @param [Boolean] removed_from_conversation_enabled Whether to send a
256
+ # notification to a user when they are removed from a conversation. The default is
257
+ # `false`.
258
+ # @param [String] removed_from_conversation_template The template to use to create
259
+ # the notification text displayed to a user when they are removed from a
260
+ # conversation and `removed_from_conversation.enabled` is `true`.
261
+ # @param [String] removed_from_conversation_sound The name of the sound to play to
262
+ # a user when they are removed from a conversation and
263
+ # `removed_from_conversation.enabled` is `true`.
264
+ # @return [NotificationInstance] Updated NotificationInstance
265
+ def update(log_enabled: :unset, new_message_enabled: :unset, new_message_template: :unset, new_message_sound: :unset, new_message_badge_count_enabled: :unset, added_to_conversation_enabled: :unset, added_to_conversation_template: :unset, added_to_conversation_sound: :unset, removed_from_conversation_enabled: :unset, removed_from_conversation_template: :unset, removed_from_conversation_sound: :unset)
266
+ context.update(
267
+ log_enabled: log_enabled,
268
+ new_message_enabled: new_message_enabled,
269
+ new_message_template: new_message_template,
270
+ new_message_sound: new_message_sound,
271
+ new_message_badge_count_enabled: new_message_badge_count_enabled,
272
+ added_to_conversation_enabled: added_to_conversation_enabled,
273
+ added_to_conversation_template: added_to_conversation_template,
274
+ added_to_conversation_sound: added_to_conversation_sound,
275
+ removed_from_conversation_enabled: removed_from_conversation_enabled,
276
+ removed_from_conversation_template: removed_from_conversation_template,
277
+ removed_from_conversation_sound: removed_from_conversation_sound,
278
+ )
279
+ end
280
+
281
+ ##
282
+ # Fetch the NotificationInstance
283
+ # @return [NotificationInstance] Fetched NotificationInstance
284
+ def fetch
285
+ context.fetch
286
+ end
287
+
288
+ ##
289
+ # Provide a user friendly representation
290
+ def to_s
291
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
292
+ "<Twilio.Conversations.V1.NotificationInstance #{values}>"
293
+ end
294
+
295
+ ##
296
+ # Provide a detailed, user friendly representation
297
+ def inspect
298
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
299
+ "<Twilio.Conversations.V1.NotificationInstance #{values}>"
300
+ end
301
+ end
302
+ end
303
+ end
304
+ end
305
+ end
306
+ end
307
+ end