twilio-ruby 5.65.1 → 5.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +28 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +2 -2
  5. data/lib/twilio-ruby/rest/api/v2010/account/call/stream.rb +4 -4
  6. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +10 -10
  7. data/lib/twilio-ruby/rest/chat/v3/channel.rb +275 -0
  8. data/lib/twilio-ruby/rest/chat/v3.rb +48 -0
  9. data/lib/twilio-ruby/rest/chat.rb +16 -0
  10. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +7 -0
  11. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_invite.rb +236 -0
  12. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel/interaction_channel_participant.rb +330 -0
  13. data/lib/twilio-ruby/rest/flex_api/v1/interaction/interaction_channel.rb +377 -0
  14. data/lib/twilio-ruby/rest/flex_api/v1/interaction.rb +233 -0
  15. data/lib/twilio-ruby/rest/flex_api/v1.rb +16 -0
  16. data/lib/twilio-ruby/rest/flex_api.rb +9 -0
  17. data/lib/twilio-ruby/rest/insights/v1/annotation.rb +271 -0
  18. data/lib/twilio-ruby/rest/insights/v1.rb +16 -0
  19. data/lib/twilio-ruby/rest/insights.rb +8 -0
  20. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +1 -1
  21. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +26 -5
  22. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +14 -1
  23. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +3 -55
  24. data/lib/twilio-ruby/rest/supersim/v1.rb +0 -16
  25. data/lib/twilio-ruby/rest/supersim.rb +0 -9
  26. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +6 -2
  27. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +4 -2
  28. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +4 -2
  29. data/lib/twilio-ruby/rest/video/v1/composition.rb +14 -0
  30. data/lib/twilio-ruby/rest/video/v1/recording.rb +14 -0
  31. data/lib/twilio-ruby/version.rb +1 -1
  32. metadata +9 -3
  33. data/lib/twilio-ruby/rest/supersim/v1/command.rb +0 -368
@@ -0,0 +1,377 @@
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 FlexApi < Domain
12
+ class V1 < Version
13
+ class InteractionContext < InstanceContext
14
+ class InteractionChannelList < ListResource
15
+ ##
16
+ # Initialize the InteractionChannelList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] interaction_sid The Interaction Sid for this channel.
19
+ # @return [InteractionChannelList] InteractionChannelList
20
+ def initialize(version, interaction_sid: nil)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {interaction_sid: interaction_sid}
25
+ @uri = "/Interactions/#{@solution[:interaction_sid]}/Channels"
26
+ end
27
+
28
+ ##
29
+ # Lists InteractionChannelInstance records from the API as a list.
30
+ # Unlike stream(), this operation is eager and will load `limit` records into
31
+ # memory before returning.
32
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
33
+ # guarantees to never return more than limit. Default is no limit
34
+ # @param [Integer] page_size Number of records to fetch per request, when
35
+ # not set will use the default value of 50 records. If no page_size is defined
36
+ # but a limit is defined, stream() will attempt to read the limit with the most
37
+ # efficient page size, i.e. min(limit, 1000)
38
+ # @return [Array] Array of up to limit results
39
+ def list(limit: nil, page_size: nil)
40
+ self.stream(limit: limit, page_size: page_size).entries
41
+ end
42
+
43
+ ##
44
+ # Streams InteractionChannelInstance records from the API as an Enumerable.
45
+ # This operation lazily loads records as efficiently as possible until the limit
46
+ # is reached.
47
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
48
+ # guarantees to never return more than limit. Default is no limit.
49
+ # @param [Integer] page_size Number of records to fetch per request, when
50
+ # not set will use the default value of 50 records. If no page_size is defined
51
+ # but a limit is defined, stream() will attempt to read the limit with the most
52
+ # efficient page size, i.e. min(limit, 1000)
53
+ # @return [Enumerable] Enumerable that will yield up to limit results
54
+ def stream(limit: nil, page_size: nil)
55
+ limits = @version.read_limits(limit, page_size)
56
+
57
+ page = self.page(page_size: limits[:page_size], )
58
+
59
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
60
+ end
61
+
62
+ ##
63
+ # When passed a block, yields InteractionChannelInstance records from the API.
64
+ # This operation lazily loads records as efficiently as possible until the limit
65
+ # is reached.
66
+ def each
67
+ limits = @version.read_limits
68
+
69
+ page = self.page(page_size: limits[:page_size], )
70
+
71
+ @version.stream(page,
72
+ limit: limits[:limit],
73
+ page_limit: limits[:page_limit]).each {|x| yield x}
74
+ end
75
+
76
+ ##
77
+ # Retrieve a single page of InteractionChannelInstance records from the API.
78
+ # Request is executed immediately.
79
+ # @param [String] page_token PageToken provided by the API
80
+ # @param [Integer] page_number Page Number, this value is simply for client state
81
+ # @param [Integer] page_size Number of records to return, defaults to 50
82
+ # @return [Page] Page of InteractionChannelInstance
83
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
84
+ params = Twilio::Values.of({
85
+ 'PageToken' => page_token,
86
+ 'Page' => page_number,
87
+ 'PageSize' => page_size,
88
+ })
89
+
90
+ response = @version.page('GET', @uri, params: params)
91
+
92
+ InteractionChannelPage.new(@version, response, @solution)
93
+ end
94
+
95
+ ##
96
+ # Retrieve a single page of InteractionChannelInstance records from the API.
97
+ # Request is executed immediately.
98
+ # @param [String] target_url API-generated URL for the requested results page
99
+ # @return [Page] Page of InteractionChannelInstance
100
+ def get_page(target_url)
101
+ response = @version.domain.request(
102
+ 'GET',
103
+ target_url
104
+ )
105
+ InteractionChannelPage.new(@version, response, @solution)
106
+ end
107
+
108
+ ##
109
+ # Provide a user friendly representation
110
+ def to_s
111
+ '#<Twilio.FlexApi.V1.InteractionChannelList>'
112
+ end
113
+ end
114
+
115
+ class InteractionChannelPage < Page
116
+ ##
117
+ # Initialize the InteractionChannelPage
118
+ # @param [Version] version Version that contains the resource
119
+ # @param [Response] response Response from the API
120
+ # @param [Hash] solution Path solution for the resource
121
+ # @return [InteractionChannelPage] InteractionChannelPage
122
+ def initialize(version, response, solution)
123
+ super(version, response)
124
+
125
+ # Path Solution
126
+ @solution = solution
127
+ end
128
+
129
+ ##
130
+ # Build an instance of InteractionChannelInstance
131
+ # @param [Hash] payload Payload response from the API
132
+ # @return [InteractionChannelInstance] InteractionChannelInstance
133
+ def get_instance(payload)
134
+ InteractionChannelInstance.new(@version, payload, interaction_sid: @solution[:interaction_sid], )
135
+ end
136
+
137
+ ##
138
+ # Provide a user friendly representation
139
+ def to_s
140
+ '<Twilio.FlexApi.V1.InteractionChannelPage>'
141
+ end
142
+ end
143
+
144
+ class InteractionChannelContext < InstanceContext
145
+ ##
146
+ # Initialize the InteractionChannelContext
147
+ # @param [Version] version Version that contains the resource
148
+ # @param [String] interaction_sid The Interaction Sid for this channel.
149
+ # @param [String] sid The Channel Sid for this Participant.
150
+ # @return [InteractionChannelContext] InteractionChannelContext
151
+ def initialize(version, interaction_sid, sid)
152
+ super(version)
153
+
154
+ # Path Solution
155
+ @solution = {interaction_sid: interaction_sid, sid: sid, }
156
+ @uri = "/Interactions/#{@solution[:interaction_sid]}/Channels/#{@solution[:sid]}"
157
+
158
+ # Dependents
159
+ @invites = nil
160
+ @participants = nil
161
+ end
162
+
163
+ ##
164
+ # Fetch the InteractionChannelInstance
165
+ # @return [InteractionChannelInstance] Fetched InteractionChannelInstance
166
+ def fetch
167
+ payload = @version.fetch('GET', @uri)
168
+
169
+ InteractionChannelInstance.new(
170
+ @version,
171
+ payload,
172
+ interaction_sid: @solution[:interaction_sid],
173
+ sid: @solution[:sid],
174
+ )
175
+ end
176
+
177
+ ##
178
+ # Update the InteractionChannelInstance
179
+ # @param [interaction_channel.Status] status The Interaction Channel's status. Can
180
+ # be: `closed` or `wrapup`.
181
+ # @param [Hash] routing The Interaction Channel's routing parameters. Optional,
182
+ # may contain `status` to set the agent's Reservation state to either `closed` or
183
+ # `wrapup`. Default is `wrapup` if unspecified.
184
+ # @return [InteractionChannelInstance] Updated InteractionChannelInstance
185
+ def update(status: nil, routing: :unset)
186
+ data = Twilio::Values.of({'Status' => status, 'Routing' => Twilio.serialize_object(routing), })
187
+
188
+ payload = @version.update('POST', @uri, data: data)
189
+
190
+ InteractionChannelInstance.new(
191
+ @version,
192
+ payload,
193
+ interaction_sid: @solution[:interaction_sid],
194
+ sid: @solution[:sid],
195
+ )
196
+ end
197
+
198
+ ##
199
+ # Access the invites
200
+ # @return [InteractionChannelInviteList]
201
+ # @return [InteractionChannelInviteContext]
202
+ def invites
203
+ unless @invites
204
+ @invites = InteractionChannelInviteList.new(
205
+ @version,
206
+ interaction_sid: @solution[:interaction_sid],
207
+ channel_sid: @solution[:sid],
208
+ )
209
+ end
210
+
211
+ @invites
212
+ end
213
+
214
+ ##
215
+ # Access the participants
216
+ # @return [InteractionChannelParticipantList]
217
+ # @return [InteractionChannelParticipantContext] if sid was passed.
218
+ def participants(sid=:unset)
219
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
220
+
221
+ if sid != :unset
222
+ return InteractionChannelParticipantContext.new(
223
+ @version,
224
+ @solution[:interaction_sid],
225
+ @solution[:sid],
226
+ sid,
227
+ )
228
+ end
229
+
230
+ unless @participants
231
+ @participants = InteractionChannelParticipantList.new(
232
+ @version,
233
+ interaction_sid: @solution[:interaction_sid],
234
+ channel_sid: @solution[:sid],
235
+ )
236
+ end
237
+
238
+ @participants
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.FlexApi.V1.InteractionChannelContext #{context}>"
246
+ end
247
+
248
+ ##
249
+ # Provide a detailed, user friendly representation
250
+ def inspect
251
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
252
+ "#<Twilio.FlexApi.V1.InteractionChannelContext #{context}>"
253
+ end
254
+ end
255
+
256
+ class InteractionChannelInstance < InstanceResource
257
+ ##
258
+ # Initialize the InteractionChannelInstance
259
+ # @param [Version] version Version that contains the resource
260
+ # @param [Hash] payload payload that contains response from Twilio
261
+ # @param [String] interaction_sid The Interaction Sid for this channel.
262
+ # @param [String] sid The Channel Sid for this Participant.
263
+ # @return [InteractionChannelInstance] InteractionChannelInstance
264
+ def initialize(version, payload, interaction_sid: nil, sid: nil)
265
+ super(version)
266
+
267
+ # Marshaled Properties
268
+ @properties = {
269
+ 'sid' => payload['sid'],
270
+ 'interaction_sid' => payload['interaction_sid'],
271
+ 'type' => payload['type'],
272
+ 'url' => payload['url'],
273
+ 'links' => payload['links'],
274
+ }
275
+
276
+ # Context
277
+ @instance_context = nil
278
+ @params = {'interaction_sid' => interaction_sid, 'sid' => sid || @properties['sid'], }
279
+ end
280
+
281
+ ##
282
+ # Generate an instance context for the instance, the context is capable of
283
+ # performing various actions. All instance actions are proxied to the context
284
+ # @return [InteractionChannelContext] InteractionChannelContext for this InteractionChannelInstance
285
+ def context
286
+ unless @instance_context
287
+ @instance_context = InteractionChannelContext.new(
288
+ @version,
289
+ @params['interaction_sid'],
290
+ @params['sid'],
291
+ )
292
+ end
293
+ @instance_context
294
+ end
295
+
296
+ ##
297
+ # @return [String] The unique string that identifies the resource
298
+ def sid
299
+ @properties['sid']
300
+ end
301
+
302
+ ##
303
+ # @return [String] The Interaction Sid for this channel.
304
+ def interaction_sid
305
+ @properties['interaction_sid']
306
+ end
307
+
308
+ ##
309
+ # @return [interaction_channel.Type] The Interaction Channel's type.
310
+ def type
311
+ @properties['type']
312
+ end
313
+
314
+ ##
315
+ # @return [String] The url
316
+ def url
317
+ @properties['url']
318
+ end
319
+
320
+ ##
321
+ # @return [String] The links
322
+ def links
323
+ @properties['links']
324
+ end
325
+
326
+ ##
327
+ # Fetch the InteractionChannelInstance
328
+ # @return [InteractionChannelInstance] Fetched InteractionChannelInstance
329
+ def fetch
330
+ context.fetch
331
+ end
332
+
333
+ ##
334
+ # Update the InteractionChannelInstance
335
+ # @param [interaction_channel.Status] status The Interaction Channel's status. Can
336
+ # be: `closed` or `wrapup`.
337
+ # @param [Hash] routing The Interaction Channel's routing parameters. Optional,
338
+ # may contain `status` to set the agent's Reservation state to either `closed` or
339
+ # `wrapup`. Default is `wrapup` if unspecified.
340
+ # @return [InteractionChannelInstance] Updated InteractionChannelInstance
341
+ def update(status: nil, routing: :unset)
342
+ context.update(status: status, routing: routing, )
343
+ end
344
+
345
+ ##
346
+ # Access the invites
347
+ # @return [invites] invites
348
+ def invites
349
+ context.invites
350
+ end
351
+
352
+ ##
353
+ # Access the participants
354
+ # @return [participants] participants
355
+ def participants
356
+ context.participants
357
+ end
358
+
359
+ ##
360
+ # Provide a user friendly representation
361
+ def to_s
362
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
363
+ "<Twilio.FlexApi.V1.InteractionChannelInstance #{values}>"
364
+ end
365
+
366
+ ##
367
+ # Provide a detailed, user friendly representation
368
+ def inspect
369
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
370
+ "<Twilio.FlexApi.V1.InteractionChannelInstance #{values}>"
371
+ end
372
+ end
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end
@@ -0,0 +1,233 @@
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 FlexApi < Domain
12
+ class V1 < Version
13
+ class InteractionList < ListResource
14
+ ##
15
+ # Initialize the InteractionList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [InteractionList] InteractionList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/Interactions"
24
+ end
25
+
26
+ ##
27
+ # Create the InteractionInstance
28
+ # @param [Hash] channel The Interaction's channel.
29
+ # @param [Hash] routing The Interaction's routing logic.
30
+ # @return [InteractionInstance] Created InteractionInstance
31
+ def create(channel: nil, routing: nil)
32
+ data = Twilio::Values.of({
33
+ 'Channel' => Twilio.serialize_object(channel),
34
+ 'Routing' => Twilio.serialize_object(routing),
35
+ })
36
+
37
+ payload = @version.create('POST', @uri, data: data)
38
+
39
+ InteractionInstance.new(@version, payload, )
40
+ end
41
+
42
+ ##
43
+ # Provide a user friendly representation
44
+ def to_s
45
+ '#<Twilio.FlexApi.V1.InteractionList>'
46
+ end
47
+ end
48
+
49
+ class InteractionPage < Page
50
+ ##
51
+ # Initialize the InteractionPage
52
+ # @param [Version] version Version that contains the resource
53
+ # @param [Response] response Response from the API
54
+ # @param [Hash] solution Path solution for the resource
55
+ # @return [InteractionPage] InteractionPage
56
+ def initialize(version, response, solution)
57
+ super(version, response)
58
+
59
+ # Path Solution
60
+ @solution = solution
61
+ end
62
+
63
+ ##
64
+ # Build an instance of InteractionInstance
65
+ # @param [Hash] payload Payload response from the API
66
+ # @return [InteractionInstance] InteractionInstance
67
+ def get_instance(payload)
68
+ InteractionInstance.new(@version, payload, )
69
+ end
70
+
71
+ ##
72
+ # Provide a user friendly representation
73
+ def to_s
74
+ '<Twilio.FlexApi.V1.InteractionPage>'
75
+ end
76
+ end
77
+
78
+ class InteractionContext < InstanceContext
79
+ ##
80
+ # Initialize the InteractionContext
81
+ # @param [Version] version Version that contains the resource
82
+ # @param [String] sid The SID of the Interaction resource to fetch.
83
+ # @return [InteractionContext] InteractionContext
84
+ def initialize(version, sid)
85
+ super(version)
86
+
87
+ # Path Solution
88
+ @solution = {sid: sid, }
89
+ @uri = "/Interactions/#{@solution[:sid]}"
90
+
91
+ # Dependents
92
+ @channels = nil
93
+ end
94
+
95
+ ##
96
+ # Fetch the InteractionInstance
97
+ # @return [InteractionInstance] Fetched InteractionInstance
98
+ def fetch
99
+ payload = @version.fetch('GET', @uri)
100
+
101
+ InteractionInstance.new(@version, payload, sid: @solution[:sid], )
102
+ end
103
+
104
+ ##
105
+ # Access the channels
106
+ # @return [InteractionChannelList]
107
+ # @return [InteractionChannelContext] if sid was passed.
108
+ def channels(sid=:unset)
109
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
110
+
111
+ if sid != :unset
112
+ return InteractionChannelContext.new(@version, @solution[:sid], sid, )
113
+ end
114
+
115
+ unless @channels
116
+ @channels = InteractionChannelList.new(@version, interaction_sid: @solution[:sid], )
117
+ end
118
+
119
+ @channels
120
+ end
121
+
122
+ ##
123
+ # Provide a user friendly representation
124
+ def to_s
125
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
126
+ "#<Twilio.FlexApi.V1.InteractionContext #{context}>"
127
+ end
128
+
129
+ ##
130
+ # Provide a detailed, user friendly representation
131
+ def inspect
132
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
133
+ "#<Twilio.FlexApi.V1.InteractionContext #{context}>"
134
+ end
135
+ end
136
+
137
+ class InteractionInstance < InstanceResource
138
+ ##
139
+ # Initialize the InteractionInstance
140
+ # @param [Version] version Version that contains the resource
141
+ # @param [Hash] payload payload that contains response from Twilio
142
+ # @param [String] sid The SID of the Interaction resource to fetch.
143
+ # @return [InteractionInstance] InteractionInstance
144
+ def initialize(version, payload, sid: nil)
145
+ super(version)
146
+
147
+ # Marshaled Properties
148
+ @properties = {
149
+ 'sid' => payload['sid'],
150
+ 'channel' => payload['channel'],
151
+ 'routing' => payload['routing'],
152
+ 'url' => payload['url'],
153
+ 'links' => payload['links'],
154
+ }
155
+
156
+ # Context
157
+ @instance_context = nil
158
+ @params = {'sid' => sid || @properties['sid'], }
159
+ end
160
+
161
+ ##
162
+ # Generate an instance context for the instance, the context is capable of
163
+ # performing various actions. All instance actions are proxied to the context
164
+ # @return [InteractionContext] InteractionContext for this InteractionInstance
165
+ def context
166
+ unless @instance_context
167
+ @instance_context = InteractionContext.new(@version, @params['sid'], )
168
+ end
169
+ @instance_context
170
+ end
171
+
172
+ ##
173
+ # @return [String] The unique string that identifies the resource
174
+ def sid
175
+ @properties['sid']
176
+ end
177
+
178
+ ##
179
+ # @return [Hash] The Interaction's channel
180
+ def channel
181
+ @properties['channel']
182
+ end
183
+
184
+ ##
185
+ # @return [Hash] The Interaction's routing logic
186
+ def routing
187
+ @properties['routing']
188
+ end
189
+
190
+ ##
191
+ # @return [String] The url
192
+ def url
193
+ @properties['url']
194
+ end
195
+
196
+ ##
197
+ # @return [String] The links
198
+ def links
199
+ @properties['links']
200
+ end
201
+
202
+ ##
203
+ # Fetch the InteractionInstance
204
+ # @return [InteractionInstance] Fetched InteractionInstance
205
+ def fetch
206
+ context.fetch
207
+ end
208
+
209
+ ##
210
+ # Access the channels
211
+ # @return [channels] channels
212
+ def channels
213
+ context.channels
214
+ end
215
+
216
+ ##
217
+ # Provide a user friendly representation
218
+ def to_s
219
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
220
+ "<Twilio.FlexApi.V1.InteractionInstance #{values}>"
221
+ end
222
+
223
+ ##
224
+ # Provide a detailed, user friendly representation
225
+ def inspect
226
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
227
+ "<Twilio.FlexApi.V1.InteractionInstance #{values}>"
228
+ end
229
+ end
230
+ end
231
+ end
232
+ end
233
+ end
@@ -18,6 +18,7 @@ module Twilio
18
18
  @channel = nil
19
19
  @configuration = nil
20
20
  @flex_flow = nil
21
+ @interaction = nil
21
22
  @web_channel = nil
22
23
  end
23
24
 
@@ -57,6 +58,21 @@ module Twilio
57
58
  end
58
59
  end
59
60
 
61
+ ##
62
+ # @param [String] sid The SID of the Interaction resource to fetch.
63
+ # @return [Twilio::REST::Flex_api::V1::InteractionContext] if sid was passed.
64
+ # @return [Twilio::REST::Flex_api::V1::InteractionList]
65
+ def interaction(sid=:unset)
66
+ if sid.nil?
67
+ raise ArgumentError, 'sid cannot be nil'
68
+ end
69
+ if sid == :unset
70
+ @interaction ||= InteractionList.new self
71
+ else
72
+ InteractionContext.new(self, sid)
73
+ end
74
+ end
75
+
60
76
  ##
61
77
  # @param [String] sid The SID of the WebChannel resource to fetch.
62
78
  # @return [Twilio::REST::Flex_api::V1::WebChannelContext] if sid was passed.
@@ -52,6 +52,15 @@ module Twilio
52
52
  self.v1.flex_flow(sid)
53
53
  end
54
54
 
55
+ ##
56
+ # @param [String] sid The unique string created by Twilio to identify an
57
+ # Interaction resource.
58
+ # @return [Twilio::REST::Flex_api::V1::InteractionInstance] if sid was passed.
59
+ # @return [Twilio::REST::Flex_api::V1::InteractionList]
60
+ def interaction(sid=:unset)
61
+ self.v1.interaction(sid)
62
+ end
63
+
55
64
  ##
56
65
  # @param [String] sid The unique string that we created to identify the WebChannel
57
66
  # resource.