twilio-ruby 5.0.0 → 5.1.0

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 (258) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +30 -2
  3. data/CONTRIBUTING.md +159 -0
  4. data/ISSUE_TEMPLATE.md +26 -0
  5. data/LICENSE.md +1 -1
  6. data/README.md +6 -7
  7. data/VERSIONS.md +21 -49
  8. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +11 -11
  9. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +11 -11
  10. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +11 -11
  11. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +11 -11
  12. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +11 -11
  13. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +11 -11
  14. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +11 -11
  15. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +11 -11
  16. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +11 -11
  17. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +11 -11
  18. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +11 -18
  19. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +11 -11
  20. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +11 -11
  21. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +11 -11
  22. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +11 -11
  23. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +358 -0
  24. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +439 -0
  25. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +11 -11
  26. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +11 -11
  27. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +11 -11
  28. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +48 -11
  29. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +11 -11
  30. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +11 -11
  31. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +22 -12
  32. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +11 -11
  33. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +11 -11
  34. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +11 -11
  35. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +11 -11
  36. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +11 -11
  37. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +11 -11
  38. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +11 -11
  39. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +11 -18
  40. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +11 -11
  41. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +11 -11
  42. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +11 -11
  43. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +11 -11
  44. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  45. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  46. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +11 -11
  47. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +11 -11
  48. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +11 -11
  49. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +11 -11
  50. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +11 -11
  51. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +11 -11
  52. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +11 -11
  53. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +11 -11
  54. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +11 -11
  55. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +11 -11
  56. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +11 -11
  57. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +11 -11
  58. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +11 -11
  59. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +11 -11
  60. data/lib/twilio-ruby/rest/api/v2010/account.rb +11 -11
  61. data/lib/twilio-ruby/rest/chat/v1/credential.rb +11 -11
  62. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +11 -11
  63. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +11 -11
  64. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +11 -11
  65. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +11 -11
  66. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +11 -11
  67. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +11 -11
  68. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +11 -11
  69. data/lib/twilio-ruby/rest/chat/v1/service.rb +11 -11
  70. data/lib/twilio-ruby/rest/chat/v2/credential.rb +11 -11
  71. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +11 -11
  72. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +11 -11
  73. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +11 -11
  74. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +11 -11
  75. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +11 -11
  76. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +11 -11
  77. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +11 -11
  78. data/lib/twilio-ruby/rest/chat/v2/service.rb +11 -11
  79. data/lib/twilio-ruby/rest/client.rb +42 -0
  80. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +334 -0
  81. data/lib/twilio-ruby/rest/fax/v1/fax.rb +549 -0
  82. data/lib/twilio-ruby/rest/fax/v1.rb +41 -0
  83. data/lib/twilio-ruby/rest/fax.rb +44 -0
  84. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +11 -11
  85. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +11 -11
  86. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +11 -11
  87. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +11 -11
  88. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +11 -11
  89. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +11 -11
  90. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +11 -11
  91. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +11 -11
  92. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +11 -11
  93. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +11 -11
  94. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +11 -11
  95. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +11 -11
  96. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +11 -11
  97. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +11 -11
  98. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +11 -11
  99. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +11 -11
  100. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +11 -11
  101. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +11 -11
  102. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +360 -0
  103. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +367 -0
  104. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +367 -0
  105. data/lib/twilio-ruby/rest/messaging/v1/service.rb +645 -0
  106. data/lib/twilio-ruby/rest/messaging/v1.rb +41 -0
  107. data/lib/twilio-ruby/rest/messaging.rb +44 -0
  108. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +11 -11
  109. data/lib/twilio-ruby/rest/monitor/v1/event.rb +11 -11
  110. data/lib/twilio-ruby/rest/notify/v1/credential.rb +411 -0
  111. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +438 -0
  112. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +294 -0
  113. data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +230 -0
  114. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +262 -0
  115. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +442 -0
  116. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +453 -0
  117. data/lib/twilio-ruby/rest/notify/v1/service.rb +647 -0
  118. data/lib/twilio-ruby/rest/notify/v1.rb +56 -0
  119. data/lib/twilio-ruby/rest/notify.rb +52 -0
  120. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +216 -0
  121. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +211 -0
  122. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +251 -0
  123. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +56 -0
  124. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +570 -0
  125. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +42 -0
  126. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +309 -0
  127. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +341 -0
  128. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +349 -0
  129. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +448 -0
  130. data/lib/twilio-ruby/rest/preview/marketplace.rb +58 -0
  131. data/lib/twilio-ruby/rest/preview/proxy/service/phone_number.rb +367 -0
  132. data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +437 -0
  133. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +460 -0
  134. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +514 -0
  135. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +544 -0
  136. data/lib/twilio-ruby/rest/preview/proxy/service/short_code.rb +367 -0
  137. data/lib/twilio-ruby/rest/preview/proxy/service.rb +508 -0
  138. data/lib/twilio-ruby/rest/preview/proxy.rb +41 -0
  139. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +403 -0
  140. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +453 -0
  141. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +438 -0
  142. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +403 -0
  143. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +446 -0
  144. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +440 -0
  145. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +403 -0
  146. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +446 -0
  147. data/lib/twilio-ruby/rest/preview/sync/service.rb +512 -0
  148. data/lib/twilio-ruby/rest/preview/sync.rb +41 -0
  149. data/lib/twilio-ruby/rest/preview/wireless/command.rb +390 -0
  150. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +443 -0
  151. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +244 -0
  152. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +552 -0
  153. data/lib/twilio-ruby/rest/preview/wireless.rb +71 -0
  154. data/lib/twilio-ruby/rest/preview.rb +145 -0
  155. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +11 -11
  156. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +11 -11
  157. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +11 -11
  158. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +403 -0
  159. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +453 -0
  160. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +438 -0
  161. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +403 -0
  162. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +446 -0
  163. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +440 -0
  164. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +403 -0
  165. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +446 -0
  166. data/lib/twilio-ruby/rest/sync/v1/service.rb +512 -0
  167. data/lib/twilio-ruby/rest/sync/v1.rb +41 -0
  168. data/lib/twilio-ruby/rest/sync.rb +44 -0
  169. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +11 -11
  170. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +11 -11
  171. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +143 -13
  172. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +11 -11
  173. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +11 -11
  174. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +11 -11
  175. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +11 -11
  176. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +143 -13
  177. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +11 -11
  178. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +11 -11
  179. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +11 -11
  180. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +11 -11
  181. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +11 -11
  182. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +11 -11
  183. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +11 -11
  184. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +11 -11
  185. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +11 -11
  186. data/lib/twilio-ruby/rest/video/v1/recording.rb +11 -11
  187. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +11 -11
  188. data/lib/twilio-ruby/rest/video/v1/room.rb +11 -11
  189. data/lib/twilio-ruby/rest/wireless/v1/command.rb +375 -0
  190. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +460 -0
  191. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +241 -0
  192. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +556 -0
  193. data/lib/twilio-ruby/rest/wireless/v1.rb +71 -0
  194. data/lib/twilio-ruby/rest/wireless.rb +60 -0
  195. data/lib/twilio-ruby/version.rb +1 -1
  196. data/spec/integration/api/v2010/account/call/recording_spec.rb +0 -2
  197. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +135 -0
  198. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +223 -0
  199. data/spec/integration/api/v2010/account/recording_spec.rb +0 -2
  200. data/spec/integration/fax/v1/fax/fax_media_spec.rb +126 -0
  201. data/spec/integration/fax/v1/fax_spec.rb +272 -0
  202. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +170 -0
  203. data/spec/integration/messaging/v1/service/phone_number_spec.rb +201 -0
  204. data/spec/integration/messaging/v1/service/short_code_spec.rb +173 -0
  205. data/spec/integration/messaging/v1/service_spec.rb +263 -0
  206. data/spec/integration/notify/v1/credential_spec.rb +223 -0
  207. data/spec/integration/notify/v1/service/binding_spec.rb +227 -0
  208. data/spec/integration/notify/v1/service/notification_spec.rb +97 -0
  209. data/spec/integration/notify/v1/service/segment_spec.rb +84 -0
  210. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +118 -0
  211. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +269 -0
  212. data/spec/integration/notify/v1/service/user_spec.rb +213 -0
  213. data/spec/integration/notify/v1/service_spec.rb +280 -0
  214. data/spec/integration/preview/bulk_exports/export/day_spec.rb +56 -0
  215. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +79 -0
  216. data/spec/integration/preview/bulk_exports/export_spec.rb +43 -0
  217. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +280 -0
  218. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +121 -0
  219. data/spec/integration/preview/marketplace/available_add_on_spec.rb +142 -0
  220. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +164 -0
  221. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +252 -0
  222. data/spec/integration/preview/proxy/service/phone_number_spec.rb +173 -0
  223. data/spec/integration/preview/proxy/service/session/interaction_spec.rb +104 -0
  224. data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +164 -0
  225. data/spec/integration/preview/proxy/service/session/participant_spec.rb +226 -0
  226. data/spec/integration/preview/proxy/service/session_spec.rb +216 -0
  227. data/spec/integration/preview/proxy/service/short_code_spec.rb +173 -0
  228. data/spec/integration/preview/proxy/service_spec.rb +200 -0
  229. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +206 -0
  230. data/spec/integration/preview/sync/service/document_spec.rb +254 -0
  231. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +256 -0
  232. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +206 -0
  233. data/spec/integration/preview/sync/service/sync_list_spec.rb +207 -0
  234. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +257 -0
  235. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +206 -0
  236. data/spec/integration/preview/sync/service/sync_map_spec.rb +207 -0
  237. data/spec/integration/preview/sync/service_spec.rb +244 -0
  238. data/spec/integration/preview/wireless/command_spec.rb +169 -0
  239. data/spec/integration/preview/wireless/rate_plan_spec.rb +260 -0
  240. data/spec/integration/preview/wireless/sim/usage_spec.rb +49 -0
  241. data/spec/integration/preview/wireless/sim_spec.rb +208 -0
  242. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +206 -0
  243. data/spec/integration/sync/v1/service/document_spec.rb +254 -0
  244. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +256 -0
  245. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +206 -0
  246. data/spec/integration/sync/v1/service/sync_list_spec.rb +207 -0
  247. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +257 -0
  248. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +206 -0
  249. data/spec/integration/sync/v1/service/sync_map_spec.rb +207 -0
  250. data/spec/integration/sync/v1/service_spec.rb +244 -0
  251. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +5 -5
  252. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +5 -5
  253. data/spec/integration/wireless/v1/command_spec.rb +166 -0
  254. data/spec/integration/wireless/v1/rate_plan_spec.rb +268 -0
  255. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +65 -0
  256. data/spec/integration/wireless/v1/sim_spec.rb +208 -0
  257. data/twilio-ruby.gemspec +1 -3
  258. metadata +192 -2
@@ -0,0 +1,514 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Preview < Domain
10
+ class Proxy < Version
11
+ class ServiceContext < InstanceContext
12
+ class SessionContext < InstanceContext
13
+ ##
14
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
15
+ class ParticipantList < ListResource
16
+ ##
17
+ # Initialize the ParticipantList
18
+ # @param [Version] version Version that contains the resource
19
+ # @param [String] service_sid The unique SID identifier of the Service.
20
+ # @param [String] session_sid The unique SID identifier of the Session.
21
+ # @return [ParticipantList] ParticipantList
22
+ def initialize(version, service_sid: nil, session_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {
27
+ service_sid: service_sid,
28
+ session_sid: session_sid
29
+ }
30
+ @uri = "/Services/#{@solution[:service_sid]}/Sessions/#{@solution[:session_sid]}/Participants"
31
+ end
32
+
33
+ ##
34
+ # Lists ParticipantInstance records from the API as a list.
35
+ # Unlike stream(), this operation is eager and will load `limit` records into
36
+ # memory before returning.
37
+ # @param [String] identifier The Participant's contact identifier, normally a
38
+ # phone number.
39
+ # @param [participant.ParticipantType] participant_type The Type of this
40
+ # Participant. One of `sms`, `voice` or `phone`.
41
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
42
+ # guarantees to never return more than limit. Default is no limit
43
+ # @param [Integer] page_size Number of records to fetch per request, when
44
+ # not set will use the default value of 50 records. If no page_size is defined
45
+ # but a limit is defined, stream() will attempt to read the limit with the most
46
+ # efficient page size, i.e. min(limit, 1000)
47
+ # @return [Array] Array of up to limit results
48
+ def list(identifier: :unset, participant_type: :unset, limit: nil, page_size: nil)
49
+ self.stream(
50
+ identifier: identifier,
51
+ participant_type: participant_type,
52
+ limit: limit,
53
+ page_size: page_size
54
+ ).entries
55
+ end
56
+
57
+ ##
58
+ # Streams ParticipantInstance records from the API as an Enumerable.
59
+ # This operation lazily loads records as efficiently as possible until the limit
60
+ # is reached.
61
+ # @param [String] identifier The Participant's contact identifier, normally a
62
+ # phone number.
63
+ # @param [participant.ParticipantType] participant_type The Type of this
64
+ # Participant. One of `sms`, `voice` or `phone`.
65
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
66
+ # guarantees to never return more than limit. Default is no limit.
67
+ # @param [Integer] page_size Number of records to fetch per request, when
68
+ # not set will use the default value of 50 records. If no page_size is defined
69
+ # but a limit is defined, stream() will attempt to read the limit with the most
70
+ # efficient page size, i.e. min(limit, 1000)
71
+ # @return [Enumerable] Enumerable that will yield up to limit results
72
+ def stream(identifier: :unset, participant_type: :unset, limit: nil, page_size: nil)
73
+ limits = @version.read_limits(limit, page_size)
74
+
75
+ page = self.page(
76
+ identifier: identifier,
77
+ participant_type: participant_type,
78
+ page_size: limits[:page_size],
79
+ )
80
+
81
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
82
+ end
83
+
84
+ ##
85
+ # When passed a block, yields ParticipantInstance records from the API.
86
+ # This operation lazily loads records as efficiently as possible until the limit
87
+ # is reached.
88
+ def each
89
+ limits = @version.read_limits
90
+
91
+ page = self.page(
92
+ page_size: limits[:page_size],
93
+ )
94
+
95
+ @version.stream(page,
96
+ limit: limits[:limit],
97
+ page_limit: limits[:page_limit]).each {|x| yield x}
98
+ end
99
+
100
+ ##
101
+ # Retrieve a single page of ParticipantInstance records from the API.
102
+ # Request is executed immediately.
103
+ # @param [String] identifier The Participant's contact identifier, normally a
104
+ # phone number.
105
+ # @param [participant.ParticipantType] participant_type The Type of this
106
+ # Participant. One of `sms`, `voice` or `phone`.
107
+ # @param [String] page_token PageToken provided by the API
108
+ # @param [Integer] page_number Page Number, this value is simply for client state
109
+ # @param [Integer] page_size Number of records to return, defaults to 50
110
+ # @return [Page] Page of ParticipantInstance
111
+ def page(identifier: :unset, participant_type: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
112
+ params = Twilio::Values.of({
113
+ 'Identifier' => identifier,
114
+ 'ParticipantType' => participant_type,
115
+ 'PageToken' => page_token,
116
+ 'Page' => page_number,
117
+ 'PageSize' => page_size,
118
+ })
119
+ response = @version.page(
120
+ 'GET',
121
+ @uri,
122
+ params
123
+ )
124
+ ParticipantPage.new(@version, response, @solution)
125
+ end
126
+
127
+ ##
128
+ # Retrieve a single page of ParticipantInstance records from the API.
129
+ # Request is executed immediately.
130
+ # @param [String] target_url API-generated URL for the requested results page
131
+ # @return [Page] Page of ParticipantInstance
132
+ def get_page(target_url)
133
+ response = @version.domain.request(
134
+ 'GET',
135
+ target_url
136
+ )
137
+ ParticipantPage.new(@version, response, @solution)
138
+ end
139
+
140
+ ##
141
+ # Retrieve a single page of ParticipantInstance records from the API.
142
+ # Request is executed immediately.
143
+ # @param [String] identifier The Participant's contact identifier, normally a
144
+ # phone number.
145
+ # @param [String] friendly_name A human readable description of this resource, up
146
+ # to 64 characters.
147
+ # @param [participant.ParticipantType] participant_type The Type of this
148
+ # Participant. One of `sms`, `voice` or `phone`.
149
+ # @return [ParticipantInstance] Newly created ParticipantInstance
150
+ def create(identifier: nil, friendly_name: :unset, participant_type: :unset)
151
+ data = Twilio::Values.of({
152
+ 'Identifier' => identifier,
153
+ 'FriendlyName' => friendly_name,
154
+ 'ParticipantType' => participant_type,
155
+ })
156
+
157
+ payload = @version.create(
158
+ 'POST',
159
+ @uri,
160
+ data: data
161
+ )
162
+
163
+ ParticipantInstance.new(
164
+ @version,
165
+ payload,
166
+ service_sid: @solution[:service_sid],
167
+ session_sid: @solution[:session_sid],
168
+ )
169
+ end
170
+
171
+ ##
172
+ # Provide a user friendly representation
173
+ def to_s
174
+ '#<Twilio.Preview.Proxy.ParticipantList>'
175
+ end
176
+ end
177
+
178
+ ##
179
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
180
+ class ParticipantPage < Page
181
+ ##
182
+ # Initialize the ParticipantPage
183
+ # @param [Version] version Version that contains the resource
184
+ # @param [Response] response Response from the API
185
+ # @param [Hash] solution Path solution for the resource
186
+ # @return [ParticipantPage] ParticipantPage
187
+ def initialize(version, response, solution)
188
+ super(version, response)
189
+
190
+ # Path Solution
191
+ @solution = solution
192
+ end
193
+
194
+ ##
195
+ # Build an instance of ParticipantInstance
196
+ # @param [Hash] payload Payload response from the API
197
+ # @return [ParticipantInstance] ParticipantInstance
198
+ def get_instance(payload)
199
+ ParticipantInstance.new(
200
+ @version,
201
+ payload,
202
+ service_sid: @solution[:service_sid],
203
+ session_sid: @solution[:session_sid],
204
+ )
205
+ end
206
+
207
+ ##
208
+ # Provide a user friendly representation
209
+ def to_s
210
+ '<Twilio.Preview.Proxy.ParticipantPage>'
211
+ end
212
+ end
213
+
214
+ ##
215
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
216
+ class ParticipantContext < InstanceContext
217
+ ##
218
+ # Initialize the ParticipantContext
219
+ # @param [Version] version Version that contains the resource
220
+ # @param [String] service_sid The unique SID identifier of the Service.
221
+ # @param [String] session_sid The unique SID identifier of the Session.
222
+ # @param [String] sid A 34 character string that uniquely identifies this
223
+ # Participant.
224
+ # @return [ParticipantContext] ParticipantContext
225
+ def initialize(version, service_sid, session_sid, sid)
226
+ super(version)
227
+
228
+ # Path Solution
229
+ @solution = {
230
+ service_sid: service_sid,
231
+ session_sid: session_sid,
232
+ sid: sid,
233
+ }
234
+ @uri = "/Services/#{@solution[:service_sid]}/Sessions/#{@solution[:session_sid]}/Participants/#{@solution[:sid]}"
235
+
236
+ # Dependents
237
+ @message_interactions = nil
238
+ end
239
+
240
+ ##
241
+ # Fetch a ParticipantInstance
242
+ # @return [ParticipantInstance] Fetched ParticipantInstance
243
+ def fetch
244
+ params = Twilio::Values.of({})
245
+
246
+ payload = @version.fetch(
247
+ 'GET',
248
+ @uri,
249
+ params,
250
+ )
251
+
252
+ ParticipantInstance.new(
253
+ @version,
254
+ payload,
255
+ service_sid: @solution[:service_sid],
256
+ session_sid: @solution[:session_sid],
257
+ sid: @solution[:sid],
258
+ )
259
+ end
260
+
261
+ ##
262
+ # Deletes the ParticipantInstance
263
+ # @return [Boolean] true if delete succeeds, true otherwise
264
+ def delete
265
+ @version.delete('delete', @uri)
266
+ end
267
+
268
+ ##
269
+ # Update the ParticipantInstance
270
+ # @param [participant.ParticipantType] participant_type The Type of this
271
+ # Participant. One of `sms`, `voice` or `phone`.
272
+ # @param [String] identifier The Participant's contact identifier, normally a
273
+ # phone number.
274
+ # @param [String] friendly_name A human readable description of this resource, up
275
+ # to 64 characters.
276
+ # @return [ParticipantInstance] Updated ParticipantInstance
277
+ def update(participant_type: :unset, identifier: :unset, friendly_name: :unset)
278
+ data = Twilio::Values.of({
279
+ 'ParticipantType' => participant_type,
280
+ 'Identifier' => identifier,
281
+ 'FriendlyName' => friendly_name,
282
+ })
283
+
284
+ payload = @version.update(
285
+ 'POST',
286
+ @uri,
287
+ data: data,
288
+ )
289
+
290
+ ParticipantInstance.new(
291
+ @version,
292
+ payload,
293
+ service_sid: @solution[:service_sid],
294
+ session_sid: @solution[:session_sid],
295
+ sid: @solution[:sid],
296
+ )
297
+ end
298
+
299
+ ##
300
+ # Access the message_interactions
301
+ # @return [MessageInteractionList]
302
+ # @return [MessageInteractionContext] if sid was passed.
303
+ def message_interactions(sid=:unset)
304
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
305
+
306
+ if sid != :unset
307
+ return MessageInteractionContext.new(
308
+ @version,
309
+ @solution[:service_sid],
310
+ @solution[:session_sid],
311
+ @solution[:sid],
312
+ sid,
313
+ )
314
+ end
315
+
316
+ unless @message_interactions
317
+ @message_interactions = MessageInteractionList.new(
318
+ @version,
319
+ service_sid: @solution[:service_sid],
320
+ session_sid: @solution[:session_sid],
321
+ participant_sid: @solution[:sid],
322
+ )
323
+ end
324
+
325
+ @message_interactions
326
+ end
327
+
328
+ ##
329
+ # Provide a user friendly representation
330
+ def to_s
331
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
332
+ "#<Twilio.Preview.Proxy.ParticipantContext #{context}>"
333
+ end
334
+ end
335
+
336
+ ##
337
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
338
+ class ParticipantInstance < InstanceResource
339
+ ##
340
+ # Initialize the ParticipantInstance
341
+ # @param [Version] version Version that contains the resource
342
+ # @param [Hash] payload payload that contains response from Twilio
343
+ # @param [String] service_sid The unique SID identifier of the Service.
344
+ # @param [String] session_sid The unique SID identifier of the Session.
345
+ # @param [String] sid A 34 character string that uniquely identifies this
346
+ # Participant.
347
+ # @return [ParticipantInstance] ParticipantInstance
348
+ def initialize(version, payload, service_sid: nil, session_sid: nil, sid: nil)
349
+ super(version)
350
+
351
+ # Marshaled Properties
352
+ @properties = {
353
+ 'sid' => payload['sid'],
354
+ 'session_sid' => payload['session_sid'],
355
+ 'service_sid' => payload['service_sid'],
356
+ 'account_sid' => payload['account_sid'],
357
+ 'friendly_name' => payload['friendly_name'],
358
+ 'participant_type' => payload['participant_type'],
359
+ 'identifier' => payload['identifier'],
360
+ 'proxy_identifier' => payload['proxy_identifier'],
361
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
362
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
363
+ 'url' => payload['url'],
364
+ 'links' => payload['links'],
365
+ }
366
+
367
+ # Context
368
+ @instance_context = nil
369
+ @params = {
370
+ 'service_sid' => service_sid,
371
+ 'session_sid' => session_sid,
372
+ 'sid' => sid || @properties['sid'],
373
+ }
374
+ end
375
+
376
+ ##
377
+ # Generate an instance context for the instance, the context is capable of
378
+ # performing various actions. All instance actions are proxied to the context
379
+ # @return [ParticipantContext] ParticipantContext for this ParticipantInstance
380
+ def context
381
+ unless @instance_context
382
+ @instance_context = ParticipantContext.new(
383
+ @version,
384
+ @params['service_sid'],
385
+ @params['session_sid'],
386
+ @params['sid'],
387
+ )
388
+ end
389
+ @instance_context
390
+ end
391
+
392
+ ##
393
+ # @return [String] A string that uniquely identifies this Participant.
394
+ def sid
395
+ @properties['sid']
396
+ end
397
+
398
+ ##
399
+ # @return [String] Session Sid.
400
+ def session_sid
401
+ @properties['session_sid']
402
+ end
403
+
404
+ ##
405
+ # @return [String] Service Sid.
406
+ def service_sid
407
+ @properties['service_sid']
408
+ end
409
+
410
+ ##
411
+ # @return [String] Account Sid.
412
+ def account_sid
413
+ @properties['account_sid']
414
+ end
415
+
416
+ ##
417
+ # @return [String] A human readable description of this resource
418
+ def friendly_name
419
+ @properties['friendly_name']
420
+ end
421
+
422
+ ##
423
+ # @return [participant.ParticipantType] The Type of this Participant
424
+ def participant_type
425
+ @properties['participant_type']
426
+ end
427
+
428
+ ##
429
+ # @return [String] The Participant's contact identifier, normally a phone number.
430
+ def identifier
431
+ @properties['identifier']
432
+ end
433
+
434
+ ##
435
+ # @return [String] What this Participant communicates with, normally a phone number.
436
+ def proxy_identifier
437
+ @properties['proxy_identifier']
438
+ end
439
+
440
+ ##
441
+ # @return [Time] The date this Participant was created
442
+ def date_created
443
+ @properties['date_created']
444
+ end
445
+
446
+ ##
447
+ # @return [Time] The date this Participant was updated
448
+ def date_updated
449
+ @properties['date_updated']
450
+ end
451
+
452
+ ##
453
+ # @return [String] The URL of this resource.
454
+ def url
455
+ @properties['url']
456
+ end
457
+
458
+ ##
459
+ # @return [String] Nested resource URLs.
460
+ def links
461
+ @properties['links']
462
+ end
463
+
464
+ ##
465
+ # Fetch a ParticipantInstance
466
+ # @return [ParticipantInstance] Fetched ParticipantInstance
467
+ def fetch
468
+ context.fetch
469
+ end
470
+
471
+ ##
472
+ # Deletes the ParticipantInstance
473
+ # @return [Boolean] true if delete succeeds, true otherwise
474
+ def delete
475
+ context.delete
476
+ end
477
+
478
+ ##
479
+ # Update the ParticipantInstance
480
+ # @param [participant.ParticipantType] participant_type The Type of this
481
+ # Participant. One of `sms`, `voice` or `phone`.
482
+ # @param [String] identifier The Participant's contact identifier, normally a
483
+ # phone number.
484
+ # @param [String] friendly_name A human readable description of this resource, up
485
+ # to 64 characters.
486
+ # @return [ParticipantInstance] Updated ParticipantInstance
487
+ def update(participant_type: :unset, identifier: :unset, friendly_name: :unset)
488
+ context.update(
489
+ participant_type: participant_type,
490
+ identifier: identifier,
491
+ friendly_name: friendly_name,
492
+ )
493
+ end
494
+
495
+ ##
496
+ # Access the message_interactions
497
+ # @return [message_interactions] message_interactions
498
+ def message_interactions
499
+ context.message_interactions
500
+ end
501
+
502
+ ##
503
+ # Provide a user friendly representation
504
+ def to_s
505
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
506
+ "<Twilio.Preview.Proxy.ParticipantInstance #{values}>"
507
+ end
508
+ end
509
+ end
510
+ end
511
+ end
512
+ end
513
+ end
514
+ end