twilio-ruby 5.22.3 → 5.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +27 -0
  3. data/README.md +2 -4
  4. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +14 -0
  5. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +2 -2
  6. data/lib/twilio-ruby/rest/chat/v1.rb +4 -2
  7. data/lib/twilio-ruby/rest/chat/v1/credential.rb +68 -47
  8. data/lib/twilio-ruby/rest/chat/v1/service.rb +311 -320
  9. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +59 -41
  10. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +52 -40
  11. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +71 -64
  12. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +58 -40
  13. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +39 -29
  14. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +51 -48
  15. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +16 -12
  16. data/lib/twilio-ruby/rest/insights/v1/summary.rb +13 -4
  17. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +4 -2
  18. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +68 -47
  19. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +311 -320
  20. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +59 -41
  21. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +52 -40
  22. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +71 -64
  23. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +58 -40
  24. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +39 -29
  25. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +51 -48
  26. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +16 -12
  27. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +1 -1
  28. data/lib/twilio-ruby/rest/preview.rb +25 -0
  29. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +49 -0
  30. data/lib/twilio-ruby/rest/preview/trusted_comms/current_call.rb +217 -0
  31. data/lib/twilio-ruby/rest/preview/trusted_comms/device.rb +146 -0
  32. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +169 -0
  33. data/lib/twilio-ruby/rest/serverless/v1.rb +2 -1
  34. data/lib/twilio-ruby/rest/serverless/v1/service.rb +4 -2
  35. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +30 -9
  36. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +1 -1
  37. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +39 -6
  38. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +191 -0
  39. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb +133 -99
  40. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +3 -3
  41. data/lib/twilio-ruby/version.rb +1 -1
  42. data/spec/integration/api/v2010/account/conference_spec.rb +86 -2
  43. data/spec/integration/api/v2010/account/connect_app_spec.rb +28 -6
  44. data/spec/integration/api/v2010/account/queue/member_spec.rb +4 -4
  45. data/spec/integration/insights/v1/summary_spec.rb +1 -0
  46. data/spec/integration/preview/trusted_comms/current_call_spec.rb +46 -0
  47. data/spec/integration/preview/trusted_comms/device_spec.rb +45 -0
  48. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +48 -0
  49. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +6 -0
  50. data/spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb +92 -0
  51. data/spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb +31 -68
  52. data/spec/integration/video/v1/room/room_participant_spec.rb +6 -3
  53. data/spec/integration/wireless/v1/sim/data_session_spec.rb +2 -2
  54. metadata +15 -2
@@ -0,0 +1,169 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Preview < Domain
12
+ class TrustedComms < Version
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 PhoneCallList < ListResource
16
+ ##
17
+ # Initialize the PhoneCallList
18
+ # @param [Version] version Version that contains the resource
19
+ # @return [PhoneCallList] PhoneCallList
20
+ def initialize(version)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {}
25
+ @uri = "/Business/PhoneCalls"
26
+ end
27
+
28
+ ##
29
+ # Retrieve a single page of PhoneCallInstance records from the API.
30
+ # Request is executed immediately.
31
+ # @param [String] from The originating Phone Number that belongs to the Account,
32
+ # given in E.164 format (https://en.wikipedia.org/wiki/E.164).
33
+ # @param [String] to The terminating Phone Number, given in E.164 format
34
+ # (https://en.wikipedia.org/wiki/E.164).
35
+ # @param [String] url The Twiml URL to manage this phone call.
36
+ # @param [String] reason The business reason for this phone call that will appear
37
+ # in the terminating device's screen.
38
+ # @return [PhoneCallInstance] Newly created PhoneCallInstance
39
+ def create(from: nil, to: nil, url: nil, reason: :unset)
40
+ data = Twilio::Values.of({'From' => from, 'To' => to, 'Url' => url, 'Reason' => reason, })
41
+
42
+ payload = @version.create(
43
+ 'POST',
44
+ @uri,
45
+ data: data
46
+ )
47
+
48
+ PhoneCallInstance.new(@version, payload, )
49
+ end
50
+
51
+ ##
52
+ # Provide a user friendly representation
53
+ def to_s
54
+ '#<Twilio.Preview.TrustedComms.PhoneCallList>'
55
+ end
56
+ end
57
+
58
+ ##
59
+ # 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.
60
+ class PhoneCallPage < Page
61
+ ##
62
+ # Initialize the PhoneCallPage
63
+ # @param [Version] version Version that contains the resource
64
+ # @param [Response] response Response from the API
65
+ # @param [Hash] solution Path solution for the resource
66
+ # @return [PhoneCallPage] PhoneCallPage
67
+ def initialize(version, response, solution)
68
+ super(version, response)
69
+
70
+ # Path Solution
71
+ @solution = solution
72
+ end
73
+
74
+ ##
75
+ # Build an instance of PhoneCallInstance
76
+ # @param [Hash] payload Payload response from the API
77
+ # @return [PhoneCallInstance] PhoneCallInstance
78
+ def get_instance(payload)
79
+ PhoneCallInstance.new(@version, payload, )
80
+ end
81
+
82
+ ##
83
+ # Provide a user friendly representation
84
+ def to_s
85
+ '<Twilio.Preview.TrustedComms.PhoneCallPage>'
86
+ end
87
+ end
88
+
89
+ ##
90
+ # 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.
91
+ class PhoneCallInstance < InstanceResource
92
+ ##
93
+ # Initialize the PhoneCallInstance
94
+ # @param [Version] version Version that contains the resource
95
+ # @param [Hash] payload payload that contains response from Twilio
96
+ # @return [PhoneCallInstance] PhoneCallInstance
97
+ def initialize(version, payload)
98
+ super(version)
99
+
100
+ # Marshaled Properties
101
+ @properties = {
102
+ 'sid' => payload['sid'],
103
+ 'account_sid' => payload['account_sid'],
104
+ 'from' => payload['from'],
105
+ 'to' => payload['to'],
106
+ 'reason' => payload['reason'],
107
+ 'created_at' => Twilio.deserialize_iso8601_datetime(payload['created_at']),
108
+ 'url' => payload['url'],
109
+ }
110
+ end
111
+
112
+ ##
113
+ # @return [String] A string that uniquely identifies this Current Call.
114
+ def sid
115
+ @properties['sid']
116
+ end
117
+
118
+ ##
119
+ # @return [String] Account Sid.
120
+ def account_sid
121
+ @properties['account_sid']
122
+ end
123
+
124
+ ##
125
+ # @return [String] The originating Phone Number
126
+ def from
127
+ @properties['from']
128
+ end
129
+
130
+ ##
131
+ # @return [String] The terminating Phone Number
132
+ def to
133
+ @properties['to']
134
+ end
135
+
136
+ ##
137
+ # @return [String] The business reason for this phone call
138
+ def reason
139
+ @properties['reason']
140
+ end
141
+
142
+ ##
143
+ # @return [Time] The date this Current Call was created
144
+ def created_at
145
+ @properties['created_at']
146
+ end
147
+
148
+ ##
149
+ # @return [String] The URL of this resource.
150
+ def url
151
+ @properties['url']
152
+ end
153
+
154
+ ##
155
+ # Provide a user friendly representation
156
+ def to_s
157
+ "<Twilio.Preview.TrustedComms.PhoneCallInstance>"
158
+ end
159
+
160
+ ##
161
+ # Provide a detailed, user friendly representation
162
+ def inspect
163
+ "<Twilio.Preview.TrustedComms.PhoneCallInstance>"
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
@@ -19,7 +19,8 @@ module Twilio
19
19
  end
20
20
 
21
21
  ##
22
- # @param [String] sid The unique SID identifier of this Service.
22
+ # @param [String] sid Identifier of the Serverless Service Instance. Either a SID
23
+ # or UniqueName.
23
24
  # @return [Twilio::REST::Serverless::V1::ServiceContext] if sid was passed.
24
25
  # @return [Twilio::REST::Serverless::V1::ServiceList]
25
26
  def services(sid=:unset)
@@ -178,7 +178,8 @@ module Twilio
178
178
  ##
179
179
  # Initialize the ServiceContext
180
180
  # @param [Version] version Version that contains the resource
181
- # @param [String] sid The unique SID identifier of this Service.
181
+ # @param [String] sid Identifier of the Serverless Service Instance. Either a SID
182
+ # or UniqueName.
182
183
  # @return [ServiceContext] ServiceContext
183
184
  def initialize(version, sid)
184
185
  super(version)
@@ -325,7 +326,8 @@ module Twilio
325
326
  # Initialize the ServiceInstance
326
327
  # @param [Version] version Version that contains the resource
327
328
  # @param [Hash] payload payload that contains response from Twilio
328
- # @param [String] sid The unique SID identifier of this Service.
329
+ # @param [String] sid Identifier of the Serverless Service Instance. Either a SID
330
+ # or UniqueName.
329
331
  # @return [ServiceInstance] ServiceInstance
330
332
  def initialize(version, payload, sid: nil)
331
333
  super(version)
@@ -114,9 +114,15 @@ module Twilio
114
114
  # @param [String] friendly_name String representing user-friendly name for the
115
115
  # TaskChannel
116
116
  # @param [String] unique_name String representing unique name for the TaskChannel
117
+ # @param [Boolean] channel_optimized_routing A boolean that if true; mean that the
118
+ # channel will prioritize workers that have been idle
117
119
  # @return [TaskChannelInstance] Newly created TaskChannelInstance
118
- def create(friendly_name: nil, unique_name: nil)
119
- data = Twilio::Values.of({'FriendlyName' => friendly_name, 'UniqueName' => unique_name, })
120
+ def create(friendly_name: nil, unique_name: nil, channel_optimized_routing: :unset)
121
+ data = Twilio::Values.of({
122
+ 'FriendlyName' => friendly_name,
123
+ 'UniqueName' => unique_name,
124
+ 'ChannelOptimizedRouting' => channel_optimized_routing,
125
+ })
120
126
 
121
127
  payload = @version.create(
122
128
  'POST',
@@ -167,8 +173,9 @@ module Twilio
167
173
  ##
168
174
  # Initialize the TaskChannelContext
169
175
  # @param [Version] version Version that contains the resource
170
- # @param [String] workspace_sid The workspace_sid
171
- # @param [String] sid The sid
176
+ # @param [String] workspace_sid The unique ID of the Workspace that this
177
+ # TaskChannel belongs to.
178
+ # @param [String] sid The unique ID for this TaskChannel.
172
179
  # @return [TaskChannelContext] TaskChannelContext
173
180
  def initialize(version, workspace_sid, sid)
174
181
  super(version)
@@ -201,9 +208,14 @@ module Twilio
201
208
  ##
202
209
  # Update the TaskChannelInstance
203
210
  # @param [String] friendly_name Toggle the FriendlyName for the TaskChannel
211
+ # @param [Boolean] channel_optimized_routing A boolean that if true; mean that the
212
+ # channel will prioritize workers that have been idle
204
213
  # @return [TaskChannelInstance] Updated TaskChannelInstance
205
- def update(friendly_name: :unset)
206
- data = Twilio::Values.of({'FriendlyName' => friendly_name, })
214
+ def update(friendly_name: :unset, channel_optimized_routing: :unset)
215
+ data = Twilio::Values.of({
216
+ 'FriendlyName' => friendly_name,
217
+ 'ChannelOptimizedRouting' => channel_optimized_routing,
218
+ })
207
219
 
208
220
  payload = @version.update(
209
221
  'POST',
@@ -248,7 +260,7 @@ module Twilio
248
260
  # @param [Hash] payload payload that contains response from Twilio
249
261
  # @param [String] workspace_sid The unique ID of the Workspace that this
250
262
  # TaskChannel belongs to.
251
- # @param [String] sid The sid
263
+ # @param [String] sid The unique ID for this TaskChannel.
252
264
  # @return [TaskChannelInstance] TaskChannelInstance
253
265
  def initialize(version, payload, workspace_sid: nil, sid: nil)
254
266
  super(version)
@@ -262,6 +274,7 @@ module Twilio
262
274
  'sid' => payload['sid'],
263
275
  'unique_name' => payload['unique_name'],
264
276
  'workspace_sid' => payload['workspace_sid'],
277
+ 'channel_optimized_routing' => payload['channel_optimized_routing'],
265
278
  'url' => payload['url'],
266
279
  'links' => payload['links'],
267
280
  }
@@ -324,6 +337,12 @@ module Twilio
324
337
  @properties['workspace_sid']
325
338
  end
326
339
 
340
+ ##
341
+ # @return [Boolean] If true then prioritize longest idle workers
342
+ def channel_optimized_routing
343
+ @properties['channel_optimized_routing']
344
+ end
345
+
327
346
  ##
328
347
  # @return [String] The url
329
348
  def url
@@ -346,9 +365,11 @@ module Twilio
346
365
  ##
347
366
  # Update the TaskChannelInstance
348
367
  # @param [String] friendly_name Toggle the FriendlyName for the TaskChannel
368
+ # @param [Boolean] channel_optimized_routing A boolean that if true; mean that the
369
+ # channel will prioritize workers that have been idle
349
370
  # @return [TaskChannelInstance] Updated TaskChannelInstance
350
- def update(friendly_name: :unset)
351
- context.update(friendly_name: friendly_name, )
371
+ def update(friendly_name: :unset, channel_optimized_routing: :unset)
372
+ context.update(friendly_name: friendly_name, channel_optimized_routing: channel_optimized_routing, )
352
373
  end
353
374
 
354
375
  ##
@@ -40,7 +40,7 @@ module Twilio
40
40
  # for example, to dial an extension. For more information, see the Programmable
41
41
  # Voice documentation of
42
42
  # [sendDigits](https://www.twilio.com/docs/voice/twiml/number#attributes-sendDigits).
43
- # @param [String] locale The local to use for the verification SMS or call. Can
43
+ # @param [String] locale The locale to use for the verification SMS or call. Can
44
44
  # be: `af`, `ar`, `ca`, `cs`, `da`, `de`, `el`, `en`, `es`, `fi`, `fr`, `he`,
45
45
  # `hi`, `hr`, `hu`, `id`, `it`, `ja`, `ko`, `ms`, `nb`, `nl`, `pl`, `pt`, `pr-BR`,
46
46
  # `ro`, `ru`, `sv`, `th`, `tl`, `tr`, `vi`, `zh`, `zh-CN`, or `zh-HK.`
@@ -198,8 +198,10 @@ module Twilio
198
198
  ##
199
199
  # Initialize the ParticipantContext
200
200
  # @param [Version] version Version that contains the resource
201
- # @param [String] room_sid The room_sid
202
- # @param [String] sid The sid
201
+ # @param [String] room_sid A system-generated 34-character string that uniquely
202
+ # identifies a Room.
203
+ # @param [String] sid A system-generated 34-character string that uniquely
204
+ # identifies this Participant.
203
205
  # @return [ParticipantContext] ParticipantContext
204
206
  def initialize(version, room_sid, sid)
205
207
  super(version)
@@ -211,6 +213,7 @@ module Twilio
211
213
  # Dependents
212
214
  @published_tracks = nil
213
215
  @subscribed_tracks = nil
216
+ @subscribe_rules = nil
214
217
  end
215
218
 
216
219
  ##
@@ -269,19 +272,41 @@ module Twilio
269
272
  ##
270
273
  # Access the subscribed_tracks
271
274
  # @return [SubscribedTrackList]
272
- # @return [SubscribedTrackContext]
273
- def subscribed_tracks
275
+ # @return [SubscribedTrackContext] if sid was passed.
276
+ def subscribed_tracks(sid=:unset)
277
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
278
+
279
+ if sid != :unset
280
+ return SubscribedTrackContext.new(@version, @solution[:room_sid], @solution[:sid], sid, )
281
+ end
282
+
274
283
  unless @subscribed_tracks
275
284
  @subscribed_tracks = SubscribedTrackList.new(
276
285
  @version,
277
286
  room_sid: @solution[:room_sid],
278
- subscriber_sid: @solution[:sid],
287
+ participant_sid: @solution[:sid],
279
288
  )
280
289
  end
281
290
 
282
291
  @subscribed_tracks
283
292
  end
284
293
 
294
+ ##
295
+ # Access the subscribe_rules
296
+ # @return [SubscribeRulesList]
297
+ # @return [SubscribeRulesContext]
298
+ def subscribe_rules
299
+ unless @subscribe_rules
300
+ @subscribe_rules = SubscribeRulesList.new(
301
+ @version,
302
+ room_sid: @solution[:room_sid],
303
+ participant_sid: @solution[:sid],
304
+ )
305
+ end
306
+
307
+ @subscribe_rules
308
+ end
309
+
285
310
  ##
286
311
  # Provide a user friendly representation
287
312
  def to_s
@@ -304,7 +329,8 @@ module Twilio
304
329
  # @param [Hash] payload payload that contains response from Twilio
305
330
  # @param [String] room_sid A system-generated 34-character string that uniquely
306
331
  # identifies. this room
307
- # @param [String] sid The sid
332
+ # @param [String] sid A system-generated 34-character string that uniquely
333
+ # identifies this Participant.
308
334
  # @return [ParticipantInstance] ParticipantInstance
309
335
  def initialize(version, payload, room_sid: nil, sid: nil)
310
336
  super(version)
@@ -442,6 +468,13 @@ module Twilio
442
468
  context.subscribed_tracks
443
469
  end
444
470
 
471
+ ##
472
+ # Access the subscribe_rules
473
+ # @return [subscribe_rules] subscribe_rules
474
+ def subscribe_rules
475
+ context.subscribe_rules
476
+ end
477
+
445
478
  ##
446
479
  # Provide a user friendly representation
447
480
  def to_s
@@ -0,0 +1,191 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ module Twilio
10
+ module REST
11
+ class Video < Domain
12
+ class V1 < Version
13
+ class RoomContext < InstanceContext
14
+ class ParticipantContext < InstanceContext
15
+ ##
16
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
17
+ class SubscribeRulesList < ListResource
18
+ ##
19
+ # Initialize the SubscribeRulesList
20
+ # @param [Version] version Version that contains the resource
21
+ # @param [String] room_sid The unique Room identifier for the Subscribe Rules
22
+ # @param [String] participant_sid The unique Participant identifier for the
23
+ # Subscribe Rules.
24
+ # @return [SubscribeRulesList] SubscribeRulesList
25
+ def initialize(version, room_sid: nil, participant_sid: nil)
26
+ super(version)
27
+
28
+ # Path Solution
29
+ @solution = {room_sid: room_sid, participant_sid: participant_sid}
30
+ @uri = "/Rooms/#{@solution[:room_sid]}/Participants/#{@solution[:participant_sid]}/SubscribeRules"
31
+ end
32
+
33
+ ##
34
+ # Fetch a SubscribeRulesInstance
35
+ # @return [SubscribeRulesInstance] Fetched SubscribeRulesInstance
36
+ def fetch
37
+ params = Twilio::Values.of({})
38
+
39
+ payload = @version.fetch(
40
+ 'GET',
41
+ @uri,
42
+ params,
43
+ )
44
+
45
+ SubscribeRulesInstance.new(
46
+ @version,
47
+ payload,
48
+ room_sid: @solution[:room_sid],
49
+ participant_sid: @solution[:participant_sid],
50
+ )
51
+ end
52
+
53
+ ##
54
+ # Update the SubscribeRulesInstance
55
+ # @param [Hash] rules A JSON-encoded array of Subscribe Rules. See the [Subscribe
56
+ # Rule
57
+ # format](https://www.twilio.com/docs/video/api/track-subscriptions#specifying-sr)
58
+ # section for further information.
59
+ # @return [SubscribeRulesInstance] Updated SubscribeRulesInstance
60
+ def update(rules: :unset)
61
+ data = Twilio::Values.of({'Rules' => Twilio.serialize_object(rules), })
62
+
63
+ payload = @version.update(
64
+ 'POST',
65
+ @uri,
66
+ data: data,
67
+ )
68
+
69
+ SubscribeRulesInstance.new(
70
+ @version,
71
+ payload,
72
+ room_sid: @solution[:room_sid],
73
+ participant_sid: @solution[:participant_sid],
74
+ )
75
+ end
76
+
77
+ ##
78
+ # Provide a user friendly representation
79
+ def to_s
80
+ '#<Twilio.Video.V1.SubscribeRulesList>'
81
+ end
82
+ end
83
+
84
+ ##
85
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
86
+ class SubscribeRulesPage < Page
87
+ ##
88
+ # Initialize the SubscribeRulesPage
89
+ # @param [Version] version Version that contains the resource
90
+ # @param [Response] response Response from the API
91
+ # @param [Hash] solution Path solution for the resource
92
+ # @return [SubscribeRulesPage] SubscribeRulesPage
93
+ def initialize(version, response, solution)
94
+ super(version, response)
95
+
96
+ # Path Solution
97
+ @solution = solution
98
+ end
99
+
100
+ ##
101
+ # Build an instance of SubscribeRulesInstance
102
+ # @param [Hash] payload Payload response from the API
103
+ # @return [SubscribeRulesInstance] SubscribeRulesInstance
104
+ def get_instance(payload)
105
+ SubscribeRulesInstance.new(
106
+ @version,
107
+ payload,
108
+ room_sid: @solution[:room_sid],
109
+ participant_sid: @solution[:participant_sid],
110
+ )
111
+ end
112
+
113
+ ##
114
+ # Provide a user friendly representation
115
+ def to_s
116
+ '<Twilio.Video.V1.SubscribeRulesPage>'
117
+ end
118
+ end
119
+
120
+ ##
121
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
122
+ class SubscribeRulesInstance < InstanceResource
123
+ ##
124
+ # Initialize the SubscribeRulesInstance
125
+ # @param [Version] version Version that contains the resource
126
+ # @param [Hash] payload payload that contains response from Twilio
127
+ # @param [String] room_sid The unique Room identifier for the Subscribe Rules
128
+ # @param [String] participant_sid The unique Participant identifier for the
129
+ # Subscribe Rules.
130
+ # @return [SubscribeRulesInstance] SubscribeRulesInstance
131
+ def initialize(version, payload, room_sid: nil, participant_sid: nil)
132
+ super(version)
133
+
134
+ # Marshaled Properties
135
+ @properties = {
136
+ 'participant_sid' => payload['participant_sid'],
137
+ 'room_sid' => payload['room_sid'],
138
+ 'rules' => payload['rules'],
139
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
140
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
141
+ }
142
+ end
143
+
144
+ ##
145
+ # @return [String] The unique Participant identifier for the Subscribe Rules.
146
+ def participant_sid
147
+ @properties['participant_sid']
148
+ end
149
+
150
+ ##
151
+ # @return [String] The unique Room identifier for the Subscribe Rules
152
+ def room_sid
153
+ @properties['room_sid']
154
+ end
155
+
156
+ ##
157
+ # @return [Hash] A collection of Subscribe Rules to include or exclude matching Tracks.
158
+ def rules
159
+ @properties['rules']
160
+ end
161
+
162
+ ##
163
+ # @return [Time] The date that this resource was created.
164
+ def date_created
165
+ @properties['date_created']
166
+ end
167
+
168
+ ##
169
+ # @return [Time] The date that this resource was last updated.
170
+ def date_updated
171
+ @properties['date_updated']
172
+ end
173
+
174
+ ##
175
+ # Provide a user friendly representation
176
+ def to_s
177
+ "<Twilio.Video.V1.SubscribeRulesInstance>"
178
+ end
179
+
180
+ ##
181
+ # Provide a detailed, user friendly representation
182
+ def inspect
183
+ "<Twilio.Video.V1.SubscribeRulesInstance>"
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end
191
+ end