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,411 @@
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 SyncMapContext < InstanceContext
13
+ class SyncMapItemList < ListResource
14
+ ##
15
+ # Initialize the SyncMapItemList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] service_sid The service_sid
18
+ # @param [String] map_sid The map_sid
19
+ # @return [SyncMapItemList] SyncMapItemList
20
+ def initialize(version, service_sid: nil, map_sid: nil)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {
25
+ service_sid: service_sid,
26
+ map_sid: map_sid
27
+ }
28
+ @uri = "/Services/#{@solution[:service_sid]}/Maps/#{@solution[:map_sid]}/Items"
29
+ end
30
+
31
+ ##
32
+ # Retrieve a single page of SyncMapItemInstance records from the API.
33
+ # Request is executed immediately.
34
+ # @param [String] key The key
35
+ # @param [Hash] data The data
36
+ # @return [SyncMapItemInstance] Newly created SyncMapItemInstance
37
+ def create(key: nil, data: nil)
38
+ data = {
39
+ 'Key' => key,
40
+ 'Data' => Twilio.serialize_object(data),
41
+ }
42
+
43
+ payload = @version.create(
44
+ 'POST',
45
+ @uri,
46
+ data: data
47
+ )
48
+
49
+ return SyncMapItemInstance.new(
50
+ @version,
51
+ payload,
52
+ service_sid: @solution[:service_sid],
53
+ map_sid: @solution[:map_sid],
54
+ )
55
+ end
56
+
57
+ ##
58
+ # Lists SyncMapItemInstance records from the API as a list.
59
+ # Unlike stream(), this operation is eager and will load `limit` records into
60
+ # memory before returning.
61
+ # @param [sync_map_item.QueryResultOrder] order The order
62
+ # @param [String] from The from
63
+ # @param [sync_map_item.QueryFromBoundType] bounds The bounds
64
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
65
+ # guarantees to never return more than limit. Default is no limit
66
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
67
+ # the default value of 50 records. If no page_size is defined
68
+ # but a limit is defined, stream() will attempt to read the
69
+ # limit with the most efficient page size, i.e. min(limit, 1000)
70
+ # @return [Array] Array of up to limit results
71
+ def list(order: nil, from: nil, bounds: nil, limit: nil, page_size: nil)
72
+ self.stream(
73
+ order: order,
74
+ from: from,
75
+ bounds: bounds,
76
+ limit: limit,
77
+ page_size: page_size
78
+ ).entries
79
+ end
80
+
81
+ ##
82
+ # Streams SyncMapItemInstance records from the API as an Enumerable.
83
+ # This operation lazily loads records as efficiently as possible until the limit
84
+ # is reached.
85
+ # @param [sync_map_item.QueryResultOrder] order The order
86
+ # @param [String] from The from
87
+ # @param [sync_map_item.QueryFromBoundType] bounds The bounds
88
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
89
+ # guarantees to never return more than limit. Default is no limit
90
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
91
+ # the default value of 50 records. If no page_size is defined
92
+ # but a limit is defined, stream() will attempt to read the
93
+ # limit with the most efficient page size, i.e. min(limit, 1000)
94
+ # @return [Enumerable] Enumerable that will yield up to limit results
95
+ def stream(order: nil, from: nil, bounds: nil, limit: nil, page_size: nil)
96
+ limits = @version.read_limits(limit, page_size)
97
+
98
+ page = self.page(
99
+ order: order,
100
+ from: from,
101
+ bounds: bounds,
102
+ page_size: limits[:page_size],
103
+ )
104
+
105
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
106
+ end
107
+
108
+ ##
109
+ # When passed a block, yields SyncMapItemInstance records from the API.
110
+ # This operation lazily loads records as efficiently as possible until the limit
111
+ # is reached.
112
+ # @param [sync_map_item.QueryResultOrder] order The order
113
+ # @param [String] from The from
114
+ # @param [sync_map_item.QueryFromBoundType] bounds The bounds
115
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
116
+ # guarantees to never return more than limit. Default is no limit
117
+ # @param [Integer] page_size Number of records to fetch per request, when not set will use
118
+ # the default value of 50 records. If no page_size is defined
119
+ # but a limit is defined, stream() will attempt to read the
120
+ # limit with the most efficient page size, i.e. min(limit, 1000)
121
+ def each
122
+ limits = @version.read_limits
123
+
124
+ page = self.page(
125
+ page_size: limits[:page_size],
126
+ )
127
+
128
+ @version.stream(page,
129
+ limit: limits[:limit],
130
+ page_limit: limits[:page_limit]).each {|x| yield x}
131
+ end
132
+
133
+ ##
134
+ # Retrieve a single page of SyncMapItemInstance records from the API.
135
+ # Request is executed immediately.
136
+ # @param [sync_map_item.QueryResultOrder] order The order
137
+ # @param [String] from The from
138
+ # @param [sync_map_item.QueryFromBoundType] bounds The bounds
139
+ # @param [String] page_token PageToken provided by the API
140
+ # @param [Integer] page_number Page Number, this value is simply for client state
141
+ # @param [Integer] page_size Number of records to return, defaults to 50
142
+ # @return [Page] Page of SyncMapItemInstance
143
+ def page(order: nil, from: nil, bounds: nil, page_token: nil, page_number: nil, page_size: nil)
144
+ params = {
145
+ 'Order' => order,
146
+ 'From' => from,
147
+ 'Bounds' => bounds,
148
+ 'PageToken' => page_token,
149
+ 'Page' => page_number,
150
+ 'PageSize' => page_size,
151
+ }
152
+ response = @version.page(
153
+ 'GET',
154
+ @uri,
155
+ params
156
+ )
157
+ return SyncMapItemPage.new(@version, response, @solution)
158
+ end
159
+
160
+ ##
161
+ # Provide a user friendly representation
162
+ def to_s
163
+ '#<Twilio.Sync.V1.SyncMapItemList>'
164
+ end
165
+ end
166
+
167
+ class SyncMapItemPage < Page
168
+ ##
169
+ # Initialize the SyncMapItemPage
170
+ # @param [Version] version Version that contains the resource
171
+ # @param [Response] response Response from the API
172
+ # @param [Hash] solution Path solution for the resource
173
+ # @param [String] service_sid The service_sid
174
+ # @param [String] map_sid The map_sid
175
+ # @return [SyncMapItemPage] SyncMapItemPage
176
+ def initialize(version, response, solution)
177
+ super(version, response)
178
+
179
+ # Path Solution
180
+ @solution = solution
181
+ end
182
+
183
+ ##
184
+ # Build an instance of SyncMapItemInstance
185
+ # @param [Hash] payload Payload response from the API
186
+ # @return [SyncMapItemInstance] SyncMapItemInstance
187
+ def get_instance(payload)
188
+ return SyncMapItemInstance.new(
189
+ @version,
190
+ payload,
191
+ service_sid: @solution[:service_sid],
192
+ map_sid: @solution[:map_sid],
193
+ )
194
+ end
195
+
196
+ ##
197
+ # Provide a user friendly representation
198
+ def to_s
199
+ '<Twilio.Sync.V1.SyncMapItemPage>'
200
+ end
201
+ end
202
+
203
+ class SyncMapItemContext < InstanceContext
204
+ ##
205
+ # Initialize the SyncMapItemContext
206
+ # @param [Version] version Version that contains the resource
207
+ # @param [String] service_sid The service_sid
208
+ # @param [String] map_sid The map_sid
209
+ # @param [String] key The key
210
+ # @return [SyncMapItemContext] SyncMapItemContext
211
+ def initialize(version, service_sid, map_sid, key)
212
+ super(version)
213
+
214
+ # Path Solution
215
+ @solution = {
216
+ service_sid: service_sid,
217
+ map_sid: map_sid,
218
+ key: key,
219
+ }
220
+ @uri = "/Services/#{@solution[:service_sid]}/Maps/#{@solution[:map_sid]}/Items/#{@solution[:key]}"
221
+ end
222
+
223
+ ##
224
+ # Fetch a SyncMapItemInstance
225
+ # @return [SyncMapItemInstance] Fetched SyncMapItemInstance
226
+ def fetch
227
+ params = {}
228
+
229
+ payload = @version.fetch(
230
+ 'GET',
231
+ @uri,
232
+ params,
233
+ )
234
+
235
+ return SyncMapItemInstance.new(
236
+ @version,
237
+ payload,
238
+ service_sid: @solution[:service_sid],
239
+ map_sid: @solution[:map_sid],
240
+ key: @solution[:key],
241
+ )
242
+ end
243
+
244
+ ##
245
+ # Deletes the SyncMapItemInstance
246
+ # @return [Boolean] true if delete succeeds, true otherwise
247
+ def delete
248
+ return @version.delete('delete', @uri)
249
+ end
250
+
251
+ ##
252
+ # Update the SyncMapItemInstance
253
+ # @param [Hash] data The data
254
+ # @return [SyncMapItemInstance] Updated SyncMapItemInstance
255
+ def update(data: nil)
256
+ data = {
257
+ 'Data' => Twilio.serialize_object(data),
258
+ }
259
+
260
+ payload = @version.update(
261
+ 'POST',
262
+ @uri,
263
+ data: data,
264
+ )
265
+
266
+ return SyncMapItemInstance.new(
267
+ @version,
268
+ payload,
269
+ service_sid: @solution[:service_sid],
270
+ map_sid: @solution[:map_sid],
271
+ key: @solution[:key],
272
+ )
273
+ end
274
+
275
+ ##
276
+ # Provide a user friendly representation
277
+ def to_s
278
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
279
+ "#<Twilio.Sync.V1.SyncMapItemContext #{context}>"
280
+ end
281
+ end
282
+
283
+ class SyncMapItemInstance < InstanceResource
284
+ ##
285
+ # Initialize the SyncMapItemInstance
286
+ # @param [Version] version Version that contains the resource
287
+ # @param [Hash] payload payload that contains response from Twilio
288
+ # @param [String] service_sid The service_sid
289
+ # @param [String] map_sid The map_sid
290
+ # @param [String] key The key
291
+ # @return [SyncMapItemInstance] SyncMapItemInstance
292
+ def initialize(version, payload, service_sid: nil, map_sid: nil, key: nil)
293
+ super(version)
294
+
295
+ # Marshaled Properties
296
+ @properties = {
297
+ 'key' => payload['key'],
298
+ 'account_sid' => payload['account_sid'],
299
+ 'service_sid' => payload['service_sid'],
300
+ 'map_sid' => payload['map_sid'],
301
+ 'url' => payload['url'],
302
+ 'revision' => payload['revision'],
303
+ 'data' => payload['data'],
304
+ 'date_created' => Twilio.deserialize_iso8601(payload['date_created']),
305
+ 'date_updated' => Twilio.deserialize_iso8601(payload['date_updated']),
306
+ 'created_by' => payload['created_by'],
307
+ }
308
+
309
+ # Context
310
+ @instance_context = nil
311
+ @params = {
312
+ 'service_sid' => service_sid,
313
+ 'map_sid' => map_sid,
314
+ 'key' => key || @properties['key'],
315
+ }
316
+ end
317
+
318
+ ##
319
+ # Generate an instance context for the instance, the context is capable of
320
+ # performing various actions. All instance actions are proxied to the context
321
+ # @param [Version] version Version that contains the resource
322
+ # @return [SyncMapItemContext] SyncMapItemContext for this SyncMapItemInstance
323
+ def context
324
+ unless @instance_context
325
+ @instance_context = SyncMapItemContext.new(
326
+ @version,
327
+ @params['service_sid'],
328
+ @params['map_sid'],
329
+ @params['key'],
330
+ )
331
+ end
332
+ @instance_context
333
+ end
334
+
335
+ def key
336
+ @properties['key']
337
+ end
338
+
339
+ def account_sid
340
+ @properties['account_sid']
341
+ end
342
+
343
+ def service_sid
344
+ @properties['service_sid']
345
+ end
346
+
347
+ def map_sid
348
+ @properties['map_sid']
349
+ end
350
+
351
+ def url
352
+ @properties['url']
353
+ end
354
+
355
+ def revision
356
+ @properties['revision']
357
+ end
358
+
359
+ def data
360
+ @properties['data']
361
+ end
362
+
363
+ def date_created
364
+ @properties['date_created']
365
+ end
366
+
367
+ def date_updated
368
+ @properties['date_updated']
369
+ end
370
+
371
+ def created_by
372
+ @properties['created_by']
373
+ end
374
+
375
+ ##
376
+ # Fetch a SyncMapItemInstance
377
+ # @return [SyncMapItemInstance] Fetched SyncMapItemInstance
378
+ def fetch
379
+ context.fetch
380
+ end
381
+
382
+ ##
383
+ # Deletes the SyncMapItemInstance
384
+ # @return [Boolean] true if delete succeeds, true otherwise
385
+ def delete
386
+ context.delete
387
+ end
388
+
389
+ ##
390
+ # Update the SyncMapItemInstance
391
+ # @param [Hash] data The data
392
+ # @return [SyncMapItemInstance] Updated SyncMapItemInstance
393
+ def update(data: nil)
394
+ context.update(
395
+ data: data,
396
+ )
397
+ end
398
+
399
+ ##
400
+ # Provide a user friendly representation
401
+ def to_s
402
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
403
+ "<Twilio.Sync.V1.SyncMapItemInstance #{values}>"
404
+ end
405
+ end
406
+ end
407
+ end
408
+ end
409
+ end
410
+ end
411
+ end
@@ -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 SyncMapContext < InstanceContext
13
+ class SyncMapPermissionList < ListResource
14
+ ##
15
+ # Initialize the SyncMapPermissionList
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] map_sid The unique SID identifier of the Sync Map to which the
20
+ # Permission applies.
21
+ # @return [SyncMapPermissionList] SyncMapPermissionList
22
+ def initialize(version, service_sid: nil, map_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {
27
+ service_sid: service_sid,
28
+ map_sid: map_sid
29
+ }
30
+ @uri = "/Services/#{@solution[:service_sid]}/Maps/#{@solution[:map_sid]}/Permissions"
31
+ end
32
+
33
+ ##
34
+ # Lists SyncMapPermissionInstance 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 SyncMapPermissionInstance 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 SyncMapPermissionInstance 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 SyncMapPermissionInstance 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 SyncMapPermissionInstance
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 SyncMapPermissionPage.new(@version, response, @solution)
113
+ end
114
+
115
+ ##
116
+ # Provide a user friendly representation
117
+ def to_s
118
+ '#<Twilio.Sync.V1.SyncMapPermissionList>'
119
+ end
120
+ end
121
+
122
+ class SyncMapPermissionPage < Page
123
+ ##
124
+ # Initialize the SyncMapPermissionPage
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] map_sid The unique SID identifier of the Sync Map to which the
131
+ # Permission applies.
132
+ # @return [SyncMapPermissionPage] SyncMapPermissionPage
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 SyncMapPermissionInstance
142
+ # @param [Hash] payload Payload response from the API
143
+ # @return [SyncMapPermissionInstance] SyncMapPermissionInstance
144
+ def get_instance(payload)
145
+ return SyncMapPermissionInstance.new(
146
+ @version,
147
+ payload,
148
+ service_sid: @solution[:service_sid],
149
+ map_sid: @solution[:map_sid],
150
+ )
151
+ end
152
+
153
+ ##
154
+ # Provide a user friendly representation
155
+ def to_s
156
+ '<Twilio.Sync.V1.SyncMapPermissionPage>'
157
+ end
158
+ end
159
+
160
+ class SyncMapPermissionContext < InstanceContext
161
+ ##
162
+ # Initialize the SyncMapPermissionContext
163
+ # @param [Version] version Version that contains the resource
164
+ # @param [String] service_sid The service_sid
165
+ # @param [String] map_sid Identifier of the Sync Map. 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 [SyncMapPermissionContext] SyncMapPermissionContext
170
+ def initialize(version, service_sid, map_sid, identity)
171
+ super(version)
172
+
173
+ # Path Solution
174
+ @solution = {
175
+ service_sid: service_sid,
176
+ map_sid: map_sid,
177
+ identity: identity,
178
+ }
179
+ @uri = "/Services/#{@solution[:service_sid]}/Maps/#{@solution[:map_sid]}/Permissions/#{@solution[:identity]}"
180
+ end
181
+
182
+ ##
183
+ # Fetch a SyncMapPermissionInstance
184
+ # @return [SyncMapPermissionInstance] Fetched SyncMapPermissionInstance
185
+ def fetch
186
+ params = {}
187
+
188
+ payload = @version.fetch(
189
+ 'GET',
190
+ @uri,
191
+ params,
192
+ )
193
+
194
+ return SyncMapPermissionInstance.new(
195
+ @version,
196
+ payload,
197
+ service_sid: @solution[:service_sid],
198
+ map_sid: @solution[:map_sid],
199
+ identity: @solution[:identity],
200
+ )
201
+ end
202
+
203
+ ##
204
+ # Deletes the SyncMapPermissionInstance
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 SyncMapPermissionInstance
212
+ # @param [Boolean] read Boolean flag specifying whether the identity can read the
213
+ # Sync Map.
214
+ # @param [Boolean] write Boolean flag specifying whether the identity can create,
215
+ # update and delete Items of the Sync Map.
216
+ # @param [Boolean] manage Boolean flag specifying whether the identity can delete
217
+ # the Sync Map.
218
+ # @return [SyncMapPermissionInstance] Updated SyncMapPermissionInstance
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 SyncMapPermissionInstance.new(
233
+ @version,
234
+ payload,
235
+ service_sid: @solution[:service_sid],
236
+ map_sid: @solution[:map_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.SyncMapPermissionContext #{context}>"
246
+ end
247
+ end
248
+
249
+ class SyncMapPermissionInstance < InstanceResource
250
+ ##
251
+ # Initialize the SyncMapPermissionInstance
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] map_sid The unique SID identifier of the Sync Map 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 [SyncMapPermissionInstance] SyncMapPermissionInstance
261
+ def initialize(version, payload, service_sid: nil, map_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
+ 'map_sid' => payload['map_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
+ 'map_sid' => map_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 [SyncMapPermissionContext] SyncMapPermissionContext for this SyncMapPermissionInstance
290
+ def context
291
+ unless @instance_context
292
+ @instance_context = SyncMapPermissionContext.new(
293
+ @version,
294
+ @params['service_sid'],
295
+ @params['map_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 map_sid
311
+ @properties['map_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 SyncMapPermissionInstance
336
+ # @return [SyncMapPermissionInstance] Fetched SyncMapPermissionInstance
337
+ def fetch
338
+ context.fetch
339
+ end
340
+
341
+ ##
342
+ # Deletes the SyncMapPermissionInstance
343
+ # @return [Boolean] true if delete succeeds, true otherwise
344
+ def delete
345
+ context.delete
346
+ end
347
+
348
+ ##
349
+ # Update the SyncMapPermissionInstance
350
+ # @param [Boolean] read Boolean flag specifying whether the identity can read the
351
+ # Sync Map.
352
+ # @param [Boolean] write Boolean flag specifying whether the identity can create,
353
+ # update and delete Items of the Sync Map.
354
+ # @param [Boolean] manage Boolean flag specifying whether the identity can delete
355
+ # the Sync Map.
356
+ # @return [SyncMapPermissionInstance] Updated SyncMapPermissionInstance
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.SyncMapPermissionInstance #{values}>"
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end