twilio-ruby 5.0.0.rc19 → 5.0.0.rc20

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 (217) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +8 -0
  3. data/README.md +2 -2
  4. data/VERSIONS.md +64 -0
  5. data/lib/twilio-ruby/framework/{exception.rb → error.rb} +3 -2
  6. data/lib/twilio-ruby/framework/page.rb +3 -3
  7. data/lib/twilio-ruby/framework/serialize.rb +9 -0
  8. data/lib/twilio-ruby/framework/version.rb +1 -1
  9. data/lib/twilio-ruby/http/http_client.rb +1 -0
  10. data/lib/twilio-ruby/jwt/access_token.rb +28 -0
  11. data/lib/twilio-ruby/rest/client.rb +64 -42
  12. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +303 -0
  13. data/lib/twilio-ruby/rest/fax/v1/fax.rb +80 -6
  14. data/lib/twilio-ruby/rest/messaging/v1/service.rb +50 -3
  15. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +1 -1
  16. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +2 -2
  17. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +2 -2
  18. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +2 -2
  19. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +2 -2
  20. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +38 -17
  21. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +74 -2
  22. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +377 -0
  23. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +415 -0
  24. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +409 -0
  25. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +377 -0
  26. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +407 -0
  27. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +411 -0
  28. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +377 -0
  29. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +407 -0
  30. data/lib/twilio-ruby/rest/sync/v1/service.rb +469 -0
  31. data/lib/twilio-ruby/rest/sync/v1.rb +35 -0
  32. data/lib/twilio-ruby/rest/sync.rb +40 -0
  33. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +324 -0
  34. data/lib/twilio-ruby/rest/video/v1/room.rb +37 -0
  35. data/lib/twilio-ruby/rest/wireless/v1/command.rb +344 -0
  36. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +399 -0
  37. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +222 -0
  38. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +502 -0
  39. data/lib/twilio-ruby/rest/wireless/v1.rb +53 -0
  40. data/lib/twilio-ruby/rest/wireless.rb +48 -0
  41. data/lib/twilio-ruby/security/request_validator.rb +19 -1
  42. data/lib/twilio-ruby/version.rb +1 -1
  43. data/spec/framework/serialize_spec.rb +20 -1
  44. data/spec/integration/accounts/v1/credential/public_key_spec.rb +5 -5
  45. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +1 -1
  46. data/spec/integration/api/v2010/account/address_spec.rb +5 -5
  47. data/spec/integration/api/v2010/account/application_spec.rb +5 -5
  48. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +2 -2
  49. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +1 -1
  50. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +1 -1
  51. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +1 -1
  52. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +2 -2
  53. data/spec/integration/api/v2010/account/call/feedback_spec.rb +3 -3
  54. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +3 -3
  55. data/spec/integration/api/v2010/account/call/notification_spec.rb +3 -3
  56. data/spec/integration/api/v2010/account/call/recording_spec.rb +3 -3
  57. data/spec/integration/api/v2010/account/call_spec.rb +5 -5
  58. data/spec/integration/api/v2010/account/conference/participant_spec.rb +5 -5
  59. data/spec/integration/api/v2010/account/conference_spec.rb +3 -3
  60. data/spec/integration/api/v2010/account/connect_app_spec.rb +3 -3
  61. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +2 -2
  62. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +4 -4
  63. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +2 -2
  64. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +2 -2
  65. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +2 -2
  66. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +5 -5
  67. data/spec/integration/api/v2010/account/key_spec.rb +4 -4
  68. data/spec/integration/api/v2010/account/message/feedback_spec.rb +1 -1
  69. data/spec/integration/api/v2010/account/message/media_spec.rb +3 -3
  70. data/spec/integration/api/v2010/account/message_spec.rb +5 -5
  71. data/spec/integration/api/v2010/account/new_key_spec.rb +1 -1
  72. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +1 -1
  73. data/spec/integration/api/v2010/account/notification_spec.rb +3 -3
  74. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +4 -4
  75. data/spec/integration/api/v2010/account/queue/member_spec.rb +3 -3
  76. data/spec/integration/api/v2010/account/queue_spec.rb +5 -5
  77. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +3 -3
  78. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +3 -3
  79. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +3 -3
  80. data/spec/integration/api/v2010/account/recording_spec.rb +3 -3
  81. data/spec/integration/api/v2010/account/short_code_spec.rb +3 -3
  82. data/spec/integration/api/v2010/account/signing_key_spec.rb +4 -4
  83. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +5 -5
  84. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +5 -5
  85. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +4 -4
  86. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +4 -4
  87. data/spec/integration/api/v2010/account/sip/domain_spec.rb +5 -5
  88. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +5 -5
  89. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +5 -5
  90. data/spec/integration/api/v2010/account/token_spec.rb +1 -1
  91. data/spec/integration/api/v2010/account/transcription_spec.rb +3 -3
  92. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +1 -1
  93. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +1 -1
  94. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +1 -1
  95. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +1 -1
  96. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +1 -1
  97. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +1 -1
  98. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +1 -1
  99. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +1 -1
  100. data/spec/integration/api/v2010/account/usage/record_spec.rb +1 -1
  101. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +5 -5
  102. data/spec/integration/api/v2010/account/validation_request_spec.rb +1 -1
  103. data/spec/integration/api/v2010/account_spec.rb +4 -4
  104. data/spec/integration/chat/v1/credential_spec.rb +5 -5
  105. data/spec/integration/chat/v1/service/channel/invite_spec.rb +4 -4
  106. data/spec/integration/chat/v1/service/channel/member_spec.rb +5 -5
  107. data/spec/integration/chat/v1/service/channel/message_spec.rb +5 -5
  108. data/spec/integration/chat/v1/service/channel_spec.rb +5 -5
  109. data/spec/integration/chat/v1/service/role_spec.rb +5 -5
  110. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +1 -1
  111. data/spec/integration/chat/v1/service/user_spec.rb +5 -5
  112. data/spec/integration/chat/v1/service_spec.rb +5 -5
  113. data/spec/integration/chat/v2/credential_spec.rb +5 -5
  114. data/spec/integration/chat/v2/service/channel/invite_spec.rb +4 -4
  115. data/spec/integration/chat/v2/service/channel/member_spec.rb +5 -5
  116. data/spec/integration/chat/v2/service/channel/message_spec.rb +5 -5
  117. data/spec/integration/chat/v2/service/channel_spec.rb +5 -5
  118. data/spec/integration/chat/v2/service/role_spec.rb +5 -5
  119. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +1 -1
  120. data/spec/integration/chat/v2/service/user_spec.rb +5 -5
  121. data/spec/integration/chat/v2/service_spec.rb +5 -5
  122. data/spec/integration/fax/v1/fax/fax_media_spec.rb +126 -0
  123. data/spec/integration/fax/v1/fax_spec.rb +48 -7
  124. data/spec/integration/ip_messaging/v1/credential_spec.rb +5 -5
  125. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +4 -4
  126. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +5 -5
  127. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +5 -5
  128. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +5 -5
  129. data/spec/integration/ip_messaging/v1/service/role_spec.rb +5 -5
  130. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +1 -1
  131. data/spec/integration/ip_messaging/v1/service/user_spec.rb +5 -5
  132. data/spec/integration/ip_messaging/v1/service_spec.rb +5 -5
  133. data/spec/integration/ip_messaging/v2/credential_spec.rb +5 -5
  134. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +4 -4
  135. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +5 -5
  136. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +5 -5
  137. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +5 -5
  138. data/spec/integration/ip_messaging/v2/service/role_spec.rb +5 -5
  139. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +1 -1
  140. data/spec/integration/ip_messaging/v2/service/user_spec.rb +5 -5
  141. data/spec/integration/ip_messaging/v2/service_spec.rb +5 -5
  142. data/spec/integration/lookups/v1/phone_number_spec.rb +1 -1
  143. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +4 -4
  144. data/spec/integration/messaging/v1/service/phone_number_spec.rb +4 -4
  145. data/spec/integration/messaging/v1/service/short_code_spec.rb +4 -4
  146. data/spec/integration/messaging/v1/service_spec.rb +21 -5
  147. data/spec/integration/monitor/v1/alert_spec.rb +3 -3
  148. data/spec/integration/monitor/v1/event_spec.rb +2 -2
  149. data/spec/integration/notify/v1/credential_spec.rb +5 -5
  150. data/spec/integration/notify/v1/service/binding_spec.rb +4 -4
  151. data/spec/integration/notify/v1/service/notification_spec.rb +1 -1
  152. data/spec/integration/notify/v1/service/segment_spec.rb +1 -1
  153. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +3 -3
  154. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +4 -4
  155. data/spec/integration/notify/v1/service/user_spec.rb +4 -4
  156. data/spec/integration/notify/v1/service_spec.rb +5 -5
  157. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +2 -2
  158. data/spec/integration/preview/marketplace/available_add_on_spec.rb +2 -2
  159. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +3 -3
  160. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +5 -5
  161. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +4 -4
  162. data/spec/integration/preview/sync/service/document_spec.rb +6 -6
  163. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +7 -7
  164. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +4 -4
  165. data/spec/integration/preview/sync/service/sync_list_spec.rb +4 -4
  166. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +7 -7
  167. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +4 -4
  168. data/spec/integration/preview/sync/service/sync_map_spec.rb +4 -4
  169. data/spec/integration/preview/sync/service_spec.rb +5 -5
  170. data/spec/integration/preview/wireless/command_spec.rb +3 -3
  171. data/spec/integration/preview/wireless/rate_plan_spec.rb +45 -45
  172. data/spec/integration/preview/wireless/sim/usage_spec.rb +1 -1
  173. data/spec/integration/preview/wireless/sim_spec.rb +27 -3
  174. data/spec/integration/pricing/v1/messaging/country_spec.rb +2 -2
  175. data/spec/integration/pricing/v1/phone_number/country_spec.rb +2 -2
  176. data/spec/integration/pricing/v1/voice/country_spec.rb +2 -2
  177. data/spec/integration/pricing/v1/voice/number_spec.rb +1 -1
  178. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +206 -0
  179. data/spec/integration/sync/v1/service/document_spec.rb +254 -0
  180. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +256 -0
  181. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +206 -0
  182. data/spec/integration/sync/v1/service/sync_list_spec.rb +207 -0
  183. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +257 -0
  184. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +206 -0
  185. data/spec/integration/sync/v1/service/sync_map_spec.rb +207 -0
  186. data/spec/integration/sync/v1/service_spec.rb +244 -0
  187. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +5 -5
  188. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +2 -2
  189. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +3 -3
  190. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +2 -2
  191. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +1 -1
  192. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +1 -1
  193. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +5 -5
  194. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +5 -5
  195. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +3 -3
  196. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +3 -3
  197. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +1 -1
  198. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +1 -1
  199. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +5 -5
  200. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +1 -1
  201. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +5 -5
  202. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +1 -1
  203. data/spec/integration/taskrouter/v1/workspace_spec.rb +5 -5
  204. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +4 -4
  205. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +4 -4
  206. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +5 -5
  207. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +4 -4
  208. data/spec/integration/trunking/v1/trunk_spec.rb +5 -5
  209. data/spec/integration/video/v1/recording_spec.rb +3 -3
  210. data/spec/integration/video/v1/room/recording_spec.rb +145 -0
  211. data/spec/integration/video/v1/room_spec.rb +20 -8
  212. data/spec/integration/wireless/v1/command_spec.rb +166 -0
  213. data/spec/integration/wireless/v1/rate_plan_spec.rb +260 -0
  214. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +65 -0
  215. data/spec/integration/wireless/v1/sim_spec.rb +208 -0
  216. data/twilio-ruby.gemspec +1 -1
  217. metadata +55 -5
@@ -0,0 +1,377 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Sync < Domain
10
+ class V1 < Version
11
+ class ServiceContext < InstanceContext
12
+ class SyncListContext < InstanceContext
13
+ class SyncListPermissionList < ListResource
14
+ ##
15
+ # Initialize the SyncListPermissionList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] service_sid The unique SID identifier of the Sync Service
18
+ # Instance.
19
+ # @param [String] list_sid The unique SID identifier of the Sync List to which the
20
+ # Permission applies.
21
+ # @return [SyncListPermissionList] SyncListPermissionList
22
+ def initialize(version, service_sid: nil, list_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {
27
+ service_sid: service_sid,
28
+ list_sid: list_sid
29
+ }
30
+ @uri = "/Services/#{@solution[:service_sid]}/Lists/#{@solution[:list_sid]}/Permissions"
31
+ end
32
+
33
+ ##
34
+ # Lists SyncListPermissionInstance 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 [Integer] limit Upper limit for the number of records to return. stream()
38
+ # guarantees to never return more than limit. Default is no limit
39
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
40
+ # the default value of 50 records. If no page_size is defined
41
+ # but a limit is defined, stream() will attempt to read the
42
+ # limit with the most efficient page size, i.e. min(limit, 1000)
43
+ # @return [Array] Array of up to limit results
44
+ def list(limit: nil, page_size: nil)
45
+ self.stream(
46
+ limit: limit,
47
+ page_size: page_size
48
+ ).entries
49
+ end
50
+
51
+ ##
52
+ # Streams SyncListPermissionInstance records from the API as an Enumerable.
53
+ # This operation lazily loads records as efficiently as possible until the limit
54
+ # is reached.
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 not set will use
58
+ # the default value of 50 records. If no page_size is defined
59
+ # but a limit is defined, stream() will attempt to read the
60
+ # limit with the most efficient page size, i.e. min(limit, 1000)
61
+ # @return [Enumerable] Enumerable that will yield up to limit results
62
+ def stream(limit: nil, page_size: nil)
63
+ limits = @version.read_limits(limit, page_size)
64
+
65
+ page = self.page(
66
+ page_size: limits[:page_size],
67
+ )
68
+
69
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
70
+ end
71
+
72
+ ##
73
+ # When passed a block, yields SyncListPermissionInstance records from the API.
74
+ # This operation lazily loads records as efficiently as possible until the limit
75
+ # is reached.
76
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
77
+ # guarantees to never return more than limit. Default is no limit
78
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
79
+ # the default value of 50 records. If no page_size is defined
80
+ # but a limit is defined, stream() will attempt to read the
81
+ # limit with the most efficient page size, i.e. min(limit, 1000)
82
+ def each
83
+ limits = @version.read_limits
84
+
85
+ page = self.page(
86
+ page_size: limits[:page_size],
87
+ )
88
+
89
+ @version.stream(page,
90
+ limit: limits[:limit],
91
+ page_limit: limits[:page_limit]).each {|x| yield x}
92
+ end
93
+
94
+ ##
95
+ # Retrieve a single page of SyncListPermissionInstance records from the API.
96
+ # Request is executed immediately.
97
+ # @param [String] page_token PageToken provided by the API
98
+ # @param [Integer] page_number Page Number, this value is simply for client state
99
+ # @param [Integer] page_size Number of records to return, defaults to 50
100
+ # @return [Page] Page of SyncListPermissionInstance
101
+ def page(page_token: nil, page_number: nil, page_size: nil)
102
+ params = {
103
+ 'PageToken' => page_token,
104
+ 'Page' => page_number,
105
+ 'PageSize' => page_size,
106
+ }
107
+ response = @version.page(
108
+ 'GET',
109
+ @uri,
110
+ params
111
+ )
112
+ return SyncListPermissionPage.new(@version, response, @solution)
113
+ end
114
+
115
+ ##
116
+ # Provide a user friendly representation
117
+ def to_s
118
+ '#<Twilio.Sync.V1.SyncListPermissionList>'
119
+ end
120
+ end
121
+
122
+ class SyncListPermissionPage < Page
123
+ ##
124
+ # Initialize the SyncListPermissionPage
125
+ # @param [Version] version Version that contains the resource
126
+ # @param [Response] response Response from the API
127
+ # @param [Hash] solution Path solution for the resource
128
+ # @param [String] service_sid The unique SID identifier of the Sync Service
129
+ # Instance.
130
+ # @param [String] list_sid The unique SID identifier of the Sync List to which the
131
+ # Permission applies.
132
+ # @return [SyncListPermissionPage] SyncListPermissionPage
133
+ def initialize(version, response, solution)
134
+ super(version, response)
135
+
136
+ # Path Solution
137
+ @solution = solution
138
+ end
139
+
140
+ ##
141
+ # Build an instance of SyncListPermissionInstance
142
+ # @param [Hash] payload Payload response from the API
143
+ # @return [SyncListPermissionInstance] SyncListPermissionInstance
144
+ def get_instance(payload)
145
+ return SyncListPermissionInstance.new(
146
+ @version,
147
+ payload,
148
+ service_sid: @solution[:service_sid],
149
+ list_sid: @solution[:list_sid],
150
+ )
151
+ end
152
+
153
+ ##
154
+ # Provide a user friendly representation
155
+ def to_s
156
+ '<Twilio.Sync.V1.SyncListPermissionPage>'
157
+ end
158
+ end
159
+
160
+ class SyncListPermissionContext < InstanceContext
161
+ ##
162
+ # Initialize the SyncListPermissionContext
163
+ # @param [Version] version Version that contains the resource
164
+ # @param [String] service_sid The service_sid
165
+ # @param [String] list_sid Identifier of the Sync List. Either a SID or a unique
166
+ # name.
167
+ # @param [String] identity Arbitrary string identifier representing a user
168
+ # associated with an FPA token, assigned by the developer.
169
+ # @return [SyncListPermissionContext] SyncListPermissionContext
170
+ def initialize(version, service_sid, list_sid, identity)
171
+ super(version)
172
+
173
+ # Path Solution
174
+ @solution = {
175
+ service_sid: service_sid,
176
+ list_sid: list_sid,
177
+ identity: identity,
178
+ }
179
+ @uri = "/Services/#{@solution[:service_sid]}/Lists/#{@solution[:list_sid]}/Permissions/#{@solution[:identity]}"
180
+ end
181
+
182
+ ##
183
+ # Fetch a SyncListPermissionInstance
184
+ # @return [SyncListPermissionInstance] Fetched SyncListPermissionInstance
185
+ def fetch
186
+ params = {}
187
+
188
+ payload = @version.fetch(
189
+ 'GET',
190
+ @uri,
191
+ params,
192
+ )
193
+
194
+ return SyncListPermissionInstance.new(
195
+ @version,
196
+ payload,
197
+ service_sid: @solution[:service_sid],
198
+ list_sid: @solution[:list_sid],
199
+ identity: @solution[:identity],
200
+ )
201
+ end
202
+
203
+ ##
204
+ # Deletes the SyncListPermissionInstance
205
+ # @return [Boolean] true if delete succeeds, true otherwise
206
+ def delete
207
+ return @version.delete('delete', @uri)
208
+ end
209
+
210
+ ##
211
+ # Update the SyncListPermissionInstance
212
+ # @param [Boolean] read Boolean flag specifying whether the identity can read the
213
+ # Sync List.
214
+ # @param [Boolean] write Boolean flag specifying whether the identity can create,
215
+ # update and delete Items of the Sync List.
216
+ # @param [Boolean] manage Boolean flag specifying whether the identity can delete
217
+ # the Sync List.
218
+ # @return [SyncListPermissionInstance] Updated SyncListPermissionInstance
219
+ def update(read: nil, write: nil, manage: nil)
220
+ data = {
221
+ 'Read' => read,
222
+ 'Write' => write,
223
+ 'Manage' => manage,
224
+ }
225
+
226
+ payload = @version.update(
227
+ 'POST',
228
+ @uri,
229
+ data: data,
230
+ )
231
+
232
+ return SyncListPermissionInstance.new(
233
+ @version,
234
+ payload,
235
+ service_sid: @solution[:service_sid],
236
+ list_sid: @solution[:list_sid],
237
+ identity: @solution[:identity],
238
+ )
239
+ end
240
+
241
+ ##
242
+ # Provide a user friendly representation
243
+ def to_s
244
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
245
+ "#<Twilio.Sync.V1.SyncListPermissionContext #{context}>"
246
+ end
247
+ end
248
+
249
+ class SyncListPermissionInstance < InstanceResource
250
+ ##
251
+ # Initialize the SyncListPermissionInstance
252
+ # @param [Version] version Version that contains the resource
253
+ # @param [Hash] payload payload that contains response from Twilio
254
+ # @param [String] service_sid The unique SID identifier of the Sync Service
255
+ # Instance.
256
+ # @param [String] list_sid The unique SID identifier of the Sync List to which the
257
+ # Permission applies.
258
+ # @param [String] identity Arbitrary string identifier representing a user
259
+ # associated with an FPA token, assigned by the developer.
260
+ # @return [SyncListPermissionInstance] SyncListPermissionInstance
261
+ def initialize(version, payload, service_sid: nil, list_sid: nil, identity: nil)
262
+ super(version)
263
+
264
+ # Marshaled Properties
265
+ @properties = {
266
+ 'account_sid' => payload['account_sid'],
267
+ 'service_sid' => payload['service_sid'],
268
+ 'list_sid' => payload['list_sid'],
269
+ 'identity' => payload['identity'],
270
+ 'read' => payload['read'],
271
+ 'write' => payload['write'],
272
+ 'manage' => payload['manage'],
273
+ 'url' => payload['url'],
274
+ }
275
+
276
+ # Context
277
+ @instance_context = nil
278
+ @params = {
279
+ 'service_sid' => service_sid,
280
+ 'list_sid' => list_sid,
281
+ 'identity' => identity || @properties['identity'],
282
+ }
283
+ end
284
+
285
+ ##
286
+ # Generate an instance context for the instance, the context is capable of
287
+ # performing various actions. All instance actions are proxied to the context
288
+ # @param [Version] version Version that contains the resource
289
+ # @return [SyncListPermissionContext] SyncListPermissionContext for this SyncListPermissionInstance
290
+ def context
291
+ unless @instance_context
292
+ @instance_context = SyncListPermissionContext.new(
293
+ @version,
294
+ @params['service_sid'],
295
+ @params['list_sid'],
296
+ @params['identity'],
297
+ )
298
+ end
299
+ @instance_context
300
+ end
301
+
302
+ def account_sid
303
+ @properties['account_sid']
304
+ end
305
+
306
+ def service_sid
307
+ @properties['service_sid']
308
+ end
309
+
310
+ def list_sid
311
+ @properties['list_sid']
312
+ end
313
+
314
+ def identity
315
+ @properties['identity']
316
+ end
317
+
318
+ def read
319
+ @properties['read']
320
+ end
321
+
322
+ def write
323
+ @properties['write']
324
+ end
325
+
326
+ def manage
327
+ @properties['manage']
328
+ end
329
+
330
+ def url
331
+ @properties['url']
332
+ end
333
+
334
+ ##
335
+ # Fetch a SyncListPermissionInstance
336
+ # @return [SyncListPermissionInstance] Fetched SyncListPermissionInstance
337
+ def fetch
338
+ context.fetch
339
+ end
340
+
341
+ ##
342
+ # Deletes the SyncListPermissionInstance
343
+ # @return [Boolean] true if delete succeeds, true otherwise
344
+ def delete
345
+ context.delete
346
+ end
347
+
348
+ ##
349
+ # Update the SyncListPermissionInstance
350
+ # @param [Boolean] read Boolean flag specifying whether the identity can read the
351
+ # Sync List.
352
+ # @param [Boolean] write Boolean flag specifying whether the identity can create,
353
+ # update and delete Items of the Sync List.
354
+ # @param [Boolean] manage Boolean flag specifying whether the identity can delete
355
+ # the Sync List.
356
+ # @return [SyncListPermissionInstance] Updated SyncListPermissionInstance
357
+ def update(read: nil, write: nil, manage: nil)
358
+ context.update(
359
+ read: read,
360
+ write: write,
361
+ manage: manage,
362
+ )
363
+ end
364
+
365
+ ##
366
+ # Provide a user friendly representation
367
+ def to_s
368
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
369
+ "<Twilio.Sync.V1.SyncListPermissionInstance #{values}>"
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end
@@ -0,0 +1,407 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Sync < Domain
10
+ class V1 < Version
11
+ class ServiceContext < InstanceContext
12
+ class SyncListList < ListResource
13
+ ##
14
+ # Initialize the SyncListList
15
+ # @param [Version] version Version that contains the resource
16
+ # @param [String] service_sid The service_sid
17
+ # @return [SyncListList] SyncListList
18
+ def initialize(version, service_sid: nil)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {
23
+ service_sid: service_sid
24
+ }
25
+ @uri = "/Services/#{@solution[:service_sid]}/Lists"
26
+ end
27
+
28
+ ##
29
+ # Retrieve a single page of SyncListInstance records from the API.
30
+ # Request is executed immediately.
31
+ # @param [String] unique_name The unique_name
32
+ # @return [SyncListInstance] Newly created SyncListInstance
33
+ def create(unique_name: nil)
34
+ data = {
35
+ 'UniqueName' => unique_name,
36
+ }
37
+
38
+ payload = @version.create(
39
+ 'POST',
40
+ @uri,
41
+ data: data
42
+ )
43
+
44
+ return SyncListInstance.new(
45
+ @version,
46
+ payload,
47
+ service_sid: @solution[:service_sid],
48
+ )
49
+ end
50
+
51
+ ##
52
+ # Lists SyncListInstance 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 not set will use
58
+ # the default value of 50 records. If no page_size is defined
59
+ # but a limit is defined, stream() will attempt to read the
60
+ # limit with the most 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(
64
+ limit: limit,
65
+ page_size: page_size
66
+ ).entries
67
+ end
68
+
69
+ ##
70
+ # Streams SyncListInstance records from the API as an Enumerable.
71
+ # This operation lazily loads records as efficiently as possible until the limit
72
+ # is reached.
73
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
74
+ # guarantees to never return more than limit. Default is no limit
75
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
76
+ # the default value of 50 records. If no page_size is defined
77
+ # but a limit is defined, stream() will attempt to read the
78
+ # limit with the most efficient page size, i.e. min(limit, 1000)
79
+ # @return [Enumerable] Enumerable that will yield up to limit results
80
+ def stream(limit: nil, page_size: nil)
81
+ limits = @version.read_limits(limit, page_size)
82
+
83
+ page = self.page(
84
+ page_size: limits[:page_size],
85
+ )
86
+
87
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
88
+ end
89
+
90
+ ##
91
+ # When passed a block, yields SyncListInstance records from the API.
92
+ # This operation lazily loads records as efficiently as possible until the limit
93
+ # is reached.
94
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
95
+ # guarantees to never return more than limit. Default is no limit
96
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
97
+ # the default value of 50 records. If no page_size is defined
98
+ # but a limit is defined, stream() will attempt to read the
99
+ # limit with the most efficient page size, i.e. min(limit, 1000)
100
+ def each
101
+ limits = @version.read_limits
102
+
103
+ page = self.page(
104
+ page_size: limits[:page_size],
105
+ )
106
+
107
+ @version.stream(page,
108
+ limit: limits[:limit],
109
+ page_limit: limits[:page_limit]).each {|x| yield x}
110
+ end
111
+
112
+ ##
113
+ # Retrieve a single page of SyncListInstance records from the API.
114
+ # Request is executed immediately.
115
+ # @param [String] page_token PageToken provided by the API
116
+ # @param [Integer] page_number Page Number, this value is simply for client state
117
+ # @param [Integer] page_size Number of records to return, defaults to 50
118
+ # @return [Page] Page of SyncListInstance
119
+ def page(page_token: nil, page_number: nil, page_size: nil)
120
+ params = {
121
+ 'PageToken' => page_token,
122
+ 'Page' => page_number,
123
+ 'PageSize' => page_size,
124
+ }
125
+ response = @version.page(
126
+ 'GET',
127
+ @uri,
128
+ params
129
+ )
130
+ return SyncListPage.new(@version, response, @solution)
131
+ end
132
+
133
+ ##
134
+ # Provide a user friendly representation
135
+ def to_s
136
+ '#<Twilio.Sync.V1.SyncListList>'
137
+ end
138
+ end
139
+
140
+ class SyncListPage < Page
141
+ ##
142
+ # Initialize the SyncListPage
143
+ # @param [Version] version Version that contains the resource
144
+ # @param [Response] response Response from the API
145
+ # @param [Hash] solution Path solution for the resource
146
+ # @param [String] service_sid The service_sid
147
+ # @return [SyncListPage] SyncListPage
148
+ def initialize(version, response, solution)
149
+ super(version, response)
150
+
151
+ # Path Solution
152
+ @solution = solution
153
+ end
154
+
155
+ ##
156
+ # Build an instance of SyncListInstance
157
+ # @param [Hash] payload Payload response from the API
158
+ # @return [SyncListInstance] SyncListInstance
159
+ def get_instance(payload)
160
+ return SyncListInstance.new(
161
+ @version,
162
+ payload,
163
+ service_sid: @solution[:service_sid],
164
+ )
165
+ end
166
+
167
+ ##
168
+ # Provide a user friendly representation
169
+ def to_s
170
+ '<Twilio.Sync.V1.SyncListPage>'
171
+ end
172
+ end
173
+
174
+ class SyncListContext < InstanceContext
175
+ ##
176
+ # Initialize the SyncListContext
177
+ # @param [Version] version Version that contains the resource
178
+ # @param [String] service_sid The service_sid
179
+ # @param [String] sid The sid
180
+ # @return [SyncListContext] SyncListContext
181
+ def initialize(version, service_sid, sid)
182
+ super(version)
183
+
184
+ # Path Solution
185
+ @solution = {
186
+ service_sid: service_sid,
187
+ sid: sid,
188
+ }
189
+ @uri = "/Services/#{@solution[:service_sid]}/Lists/#{@solution[:sid]}"
190
+
191
+ # Dependents
192
+ @sync_list_items = nil
193
+ @sync_list_permissions = nil
194
+ end
195
+
196
+ ##
197
+ # Fetch a SyncListInstance
198
+ # @return [SyncListInstance] Fetched SyncListInstance
199
+ def fetch
200
+ params = {}
201
+
202
+ payload = @version.fetch(
203
+ 'GET',
204
+ @uri,
205
+ params,
206
+ )
207
+
208
+ return SyncListInstance.new(
209
+ @version,
210
+ payload,
211
+ service_sid: @solution[:service_sid],
212
+ sid: @solution[:sid],
213
+ )
214
+ end
215
+
216
+ ##
217
+ # Deletes the SyncListInstance
218
+ # @return [Boolean] true if delete succeeds, true otherwise
219
+ def delete
220
+ return @version.delete('delete', @uri)
221
+ end
222
+
223
+ ##
224
+ # Access the sync_list_items
225
+ # @return [SyncListItemList] SyncListItemList
226
+ def sync_list_items(index=:unset)
227
+ if index != :unset
228
+ return SyncListItemContext.new(
229
+ @version,
230
+ @solution[:service_sid],
231
+ @solution[:sid],
232
+ index,
233
+ )
234
+ end
235
+
236
+ unless @sync_list_items
237
+ @sync_list_items = SyncListItemList.new(
238
+ @version,
239
+ service_sid: @solution[:service_sid],
240
+ list_sid: @solution[:sid],
241
+ )
242
+ end
243
+
244
+ @sync_list_items
245
+ end
246
+
247
+ ##
248
+ # Access the sync_list_permissions
249
+ # @return [SyncListPermissionList] SyncListPermissionList
250
+ def sync_list_permissions(identity=:unset)
251
+ if identity != :unset
252
+ return SyncListPermissionContext.new(
253
+ @version,
254
+ @solution[:service_sid],
255
+ @solution[:sid],
256
+ identity,
257
+ )
258
+ end
259
+
260
+ unless @sync_list_permissions
261
+ @sync_list_permissions = SyncListPermissionList.new(
262
+ @version,
263
+ service_sid: @solution[:service_sid],
264
+ list_sid: @solution[:sid],
265
+ )
266
+ end
267
+
268
+ @sync_list_permissions
269
+ end
270
+
271
+ ##
272
+ # Provide a user friendly representation
273
+ def to_s
274
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
275
+ "#<Twilio.Sync.V1.SyncListContext #{context}>"
276
+ end
277
+ end
278
+
279
+ class SyncListInstance < InstanceResource
280
+ ##
281
+ # Initialize the SyncListInstance
282
+ # @param [Version] version Version that contains the resource
283
+ # @param [Hash] payload payload that contains response from Twilio
284
+ # @param [String] service_sid The service_sid
285
+ # @param [String] sid The sid
286
+ # @return [SyncListInstance] SyncListInstance
287
+ def initialize(version, payload, service_sid: nil, sid: nil)
288
+ super(version)
289
+
290
+ # Marshaled Properties
291
+ @properties = {
292
+ 'sid' => payload['sid'],
293
+ 'unique_name' => payload['unique_name'],
294
+ 'account_sid' => payload['account_sid'],
295
+ 'service_sid' => payload['service_sid'],
296
+ 'url' => payload['url'],
297
+ 'links' => payload['links'],
298
+ 'revision' => payload['revision'],
299
+ 'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
300
+ 'date_updated' => Twilio.deserialize_iso8601(payload['date_updated']),
301
+ 'created_by' => payload['created_by'],
302
+ }
303
+
304
+ # Context
305
+ @instance_context = nil
306
+ @params = {
307
+ 'service_sid' => service_sid,
308
+ 'sid' => sid || @properties['sid'],
309
+ }
310
+ end
311
+
312
+ ##
313
+ # Generate an instance context for the instance, the context is capable of
314
+ # performing various actions. All instance actions are proxied to the context
315
+ # @param [Version] version Version that contains the resource
316
+ # @return [SyncListContext] SyncListContext for this SyncListInstance
317
+ def context
318
+ unless @instance_context
319
+ @instance_context = SyncListContext.new(
320
+ @version,
321
+ @params['service_sid'],
322
+ @params['sid'],
323
+ )
324
+ end
325
+ @instance_context
326
+ end
327
+
328
+ def sid
329
+ @properties['sid']
330
+ end
331
+
332
+ def unique_name
333
+ @properties['unique_name']
334
+ end
335
+
336
+ def account_sid
337
+ @properties['account_sid']
338
+ end
339
+
340
+ def service_sid
341
+ @properties['service_sid']
342
+ end
343
+
344
+ def url
345
+ @properties['url']
346
+ end
347
+
348
+ def links
349
+ @properties['links']
350
+ end
351
+
352
+ def revision
353
+ @properties['revision']
354
+ end
355
+
356
+ def date_created
357
+ @properties['date_created']
358
+ end
359
+
360
+ def date_updated
361
+ @properties['date_updated']
362
+ end
363
+
364
+ def created_by
365
+ @properties['created_by']
366
+ end
367
+
368
+ ##
369
+ # Fetch a SyncListInstance
370
+ # @return [SyncListInstance] Fetched SyncListInstance
371
+ def fetch
372
+ context.fetch
373
+ end
374
+
375
+ ##
376
+ # Deletes the SyncListInstance
377
+ # @return [Boolean] true if delete succeeds, true otherwise
378
+ def delete
379
+ context.delete
380
+ end
381
+
382
+ ##
383
+ # Access the sync_list_items
384
+ # @return [sync_list_items] sync_list_items
385
+ def sync_list_items
386
+ context.sync_list_items
387
+ end
388
+
389
+ ##
390
+ # Access the sync_list_permissions
391
+ # @return [sync_list_permissions] sync_list_permissions
392
+ def sync_list_permissions
393
+ context.sync_list_permissions
394
+ end
395
+
396
+ ##
397
+ # Provide a user friendly representation
398
+ def to_s
399
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
400
+ "<Twilio.Sync.V1.SyncListInstance #{values}>"
401
+ end
402
+ end
403
+ end
404
+ end
405
+ end
406
+ end
407
+ end