twilio-ruby 5.31.4 → 5.31.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -0
  3. data/.rubocop_todo.yml +0 -11
  4. data/CHANGES.md +38 -0
  5. data/README.md +2 -2
  6. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +27 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +5 -1
  8. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +7 -0
  9. data/lib/twilio-ruby/rest/messaging.rb +0 -15
  10. data/lib/twilio-ruby/rest/messaging/v1.rb +0 -22
  11. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +322 -0
  12. data/lib/twilio-ruby/rest/studio/v2/flow.rb +49 -0
  13. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +427 -0
  14. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +224 -0
  15. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +387 -0
  16. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +239 -0
  17. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +215 -0
  18. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +10 -3
  19. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +7 -0
  20. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +14 -0
  21. data/lib/twilio-ruby/rest/verify/v2/service.rb +5 -3
  22. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +5 -4
  23. data/lib/twilio-ruby/version.rb +1 -1
  24. data/spec/integration/api/v2010/account/call_spec.rb +30 -10
  25. data/spec/integration/api/v2010/account/conference/participant_spec.rb +29 -0
  26. data/spec/integration/api/v2010/account/notification_spec.rb +1 -1
  27. data/spec/integration/api/v2010/account_spec.rb +45 -0
  28. data/spec/integration/flex_api/v1/configuration_spec.rb +3 -0
  29. data/spec/integration/numbers/v2/regulatory_compliance/regulation_spec.rb +183 -0
  30. data/spec/integration/studio/v2/flow/execution/execution_context_spec.rb +51 -0
  31. data/spec/integration/studio/v2/flow/execution/execution_step/execution_step_context_spec.rb +54 -0
  32. data/spec/integration/studio/v2/flow/execution/execution_step_spec.rb +101 -0
  33. data/spec/integration/studio/v2/flow/execution_spec.rb +169 -0
  34. data/spec/integration/studio/v2/flow/test_user_spec.rb +86 -0
  35. data/spec/integration/studio/v2/flow_spec.rb +16 -4
  36. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +6 -0
  37. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +2 -0
  38. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +4 -0
  39. data/twilio-ruby.gemspec +1 -1
  40. metadata +22 -19
  41. data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -513
  42. data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -439
  43. data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -458
  44. data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -444
  45. data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -299
  46. data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
  47. data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
  48. data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
  49. data/spec/integration/messaging/v1/session_spec.rb +0 -227
  50. data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
@@ -1,439 +0,0 @@
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 Messaging < Domain
12
- class V1 < Version
13
- class SessionContext < InstanceContext
14
- ##
15
- # 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.
16
- class MessageList < ListResource
17
- ##
18
- # Initialize the MessageList
19
- # @param [Version] version Version that contains the resource
20
- # @param [String] session_sid The SID of the Session for the message.
21
- # @return [MessageList] MessageList
22
- def initialize(version, session_sid: nil)
23
- super(version)
24
-
25
- # Path Solution
26
- @solution = {session_sid: session_sid}
27
- @uri = "/Sessions/#{@solution[:session_sid]}/Messages"
28
- end
29
-
30
- ##
31
- # Retrieve a single page of MessageInstance records from the API.
32
- # Request is executed immediately.
33
- # @param [String] author The [identity](https://www.twilio.com/docs/chat/identity)
34
- # of the message's author. Defaults to `system`.
35
- # @param [String] attributes A JSON string that stores application-specific data.
36
- # @param [Time] date_created The date, specified in [ISO
37
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
38
- # as the date it was created.
39
- # @param [Time] date_updated The date, specified in [ISO
40
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
41
- # as the date it was last updated.
42
- # @param [String] body The message body.
43
- # @return [MessageInstance] Newly created MessageInstance
44
- def create(author: :unset, attributes: :unset, date_created: :unset, date_updated: :unset, body: :unset)
45
- data = Twilio::Values.of({
46
- 'Author' => author,
47
- 'Attributes' => attributes,
48
- 'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
49
- 'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
50
- 'Body' => body,
51
- })
52
-
53
- payload = @version.create(
54
- 'POST',
55
- @uri,
56
- data: data
57
- )
58
-
59
- MessageInstance.new(@version, payload, session_sid: @solution[:session_sid], )
60
- end
61
-
62
- ##
63
- # Lists MessageInstance records from the API as a list.
64
- # Unlike stream(), this operation is eager and will load `limit` records into
65
- # memory before returning.
66
- # @param [Integer] limit Upper limit for the number of records to return. stream()
67
- # guarantees to never return more than limit. Default is no limit
68
- # @param [Integer] page_size Number of records to fetch per request, when
69
- # not set will use the default value of 50 records. If no page_size is defined
70
- # but a limit is defined, stream() will attempt to read the limit with the most
71
- # efficient page size, i.e. min(limit, 1000)
72
- # @return [Array] Array of up to limit results
73
- def list(limit: nil, page_size: nil)
74
- self.stream(limit: limit, page_size: page_size).entries
75
- end
76
-
77
- ##
78
- # Streams MessageInstance records from the API as an Enumerable.
79
- # This operation lazily loads records as efficiently as possible until the limit
80
- # is reached.
81
- # @param [Integer] limit Upper limit for the number of records to return. stream()
82
- # guarantees to never return more than limit. Default is no limit.
83
- # @param [Integer] page_size Number of records to fetch per request, when
84
- # not set will use the default value of 50 records. If no page_size is defined
85
- # but a limit is defined, stream() will attempt to read the limit with the most
86
- # efficient page size, i.e. min(limit, 1000)
87
- # @return [Enumerable] Enumerable that will yield up to limit results
88
- def stream(limit: nil, page_size: nil)
89
- limits = @version.read_limits(limit, page_size)
90
-
91
- page = self.page(page_size: limits[:page_size], )
92
-
93
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
94
- end
95
-
96
- ##
97
- # When passed a block, yields MessageInstance records from the API.
98
- # This operation lazily loads records as efficiently as possible until the limit
99
- # is reached.
100
- def each
101
- limits = @version.read_limits
102
-
103
- page = self.page(page_size: limits[:page_size], )
104
-
105
- @version.stream(page,
106
- limit: limits[:limit],
107
- page_limit: limits[:page_limit]).each {|x| yield x}
108
- end
109
-
110
- ##
111
- # Retrieve a single page of MessageInstance records from the API.
112
- # Request is executed immediately.
113
- # @param [String] page_token PageToken provided by the API
114
- # @param [Integer] page_number Page Number, this value is simply for client state
115
- # @param [Integer] page_size Number of records to return, defaults to 50
116
- # @return [Page] Page of MessageInstance
117
- def page(page_token: :unset, page_number: :unset, page_size: :unset)
118
- params = Twilio::Values.of({
119
- 'PageToken' => page_token,
120
- 'Page' => page_number,
121
- 'PageSize' => page_size,
122
- })
123
- response = @version.page(
124
- 'GET',
125
- @uri,
126
- params
127
- )
128
- MessagePage.new(@version, response, @solution)
129
- end
130
-
131
- ##
132
- # Retrieve a single page of MessageInstance records from the API.
133
- # Request is executed immediately.
134
- # @param [String] target_url API-generated URL for the requested results page
135
- # @return [Page] Page of MessageInstance
136
- def get_page(target_url)
137
- response = @version.domain.request(
138
- 'GET',
139
- target_url
140
- )
141
- MessagePage.new(@version, response, @solution)
142
- end
143
-
144
- ##
145
- # Provide a user friendly representation
146
- def to_s
147
- '#<Twilio.Messaging.V1.MessageList>'
148
- end
149
- end
150
-
151
- ##
152
- # 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.
153
- class MessagePage < Page
154
- ##
155
- # Initialize the MessagePage
156
- # @param [Version] version Version that contains the resource
157
- # @param [Response] response Response from the API
158
- # @param [Hash] solution Path solution for the resource
159
- # @return [MessagePage] MessagePage
160
- def initialize(version, response, solution)
161
- super(version, response)
162
-
163
- # Path Solution
164
- @solution = solution
165
- end
166
-
167
- ##
168
- # Build an instance of MessageInstance
169
- # @param [Hash] payload Payload response from the API
170
- # @return [MessageInstance] MessageInstance
171
- def get_instance(payload)
172
- MessageInstance.new(@version, payload, session_sid: @solution[:session_sid], )
173
- end
174
-
175
- ##
176
- # Provide a user friendly representation
177
- def to_s
178
- '<Twilio.Messaging.V1.MessagePage>'
179
- end
180
- end
181
-
182
- ##
183
- # 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.
184
- class MessageContext < InstanceContext
185
- ##
186
- # Initialize the MessageContext
187
- # @param [Version] version Version that contains the resource
188
- # @param [String] session_sid The SID of the Session with the message to fetch.
189
- # @param [String] sid The SID of the SessionMessage resource to fetch.
190
- # @return [MessageContext] MessageContext
191
- def initialize(version, session_sid, sid)
192
- super(version)
193
-
194
- # Path Solution
195
- @solution = {session_sid: session_sid, sid: sid, }
196
- @uri = "/Sessions/#{@solution[:session_sid]}/Messages/#{@solution[:sid]}"
197
- end
198
-
199
- ##
200
- # Fetch a MessageInstance
201
- # @return [MessageInstance] Fetched MessageInstance
202
- def fetch
203
- params = Twilio::Values.of({})
204
-
205
- payload = @version.fetch(
206
- 'GET',
207
- @uri,
208
- params,
209
- )
210
-
211
- MessageInstance.new(@version, payload, session_sid: @solution[:session_sid], sid: @solution[:sid], )
212
- end
213
-
214
- ##
215
- # Update the MessageInstance
216
- # @param [String] author The [identity](https://www.twilio.com/docs/chat/identity)
217
- # of the message's author. Defaults to `system`.
218
- # @param [String] attributes A JSON string that stores application-specific data.
219
- # @param [Time] date_created The date, specified in [ISO
220
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
221
- # as the date it was created.
222
- # @param [Time] date_updated The date, specified in [ISO
223
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
224
- # as the date it was last updated.
225
- # @param [String] body The message body.
226
- # @return [MessageInstance] Updated MessageInstance
227
- def update(author: :unset, attributes: :unset, date_created: :unset, date_updated: :unset, body: :unset)
228
- data = Twilio::Values.of({
229
- 'Author' => author,
230
- 'Attributes' => attributes,
231
- 'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
232
- 'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
233
- 'Body' => body,
234
- })
235
-
236
- payload = @version.update(
237
- 'POST',
238
- @uri,
239
- data: data,
240
- )
241
-
242
- MessageInstance.new(@version, payload, session_sid: @solution[:session_sid], sid: @solution[:sid], )
243
- end
244
-
245
- ##
246
- # Deletes the MessageInstance
247
- # @return [Boolean] true if delete succeeds, false otherwise
248
- def delete
249
- @version.delete('delete', @uri)
250
- end
251
-
252
- ##
253
- # Provide a user friendly representation
254
- def to_s
255
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
256
- "#<Twilio.Messaging.V1.MessageContext #{context}>"
257
- end
258
-
259
- ##
260
- # Provide a detailed, user friendly representation
261
- def inspect
262
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
263
- "#<Twilio.Messaging.V1.MessageContext #{context}>"
264
- end
265
- end
266
-
267
- ##
268
- # 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.
269
- class MessageInstance < InstanceResource
270
- ##
271
- # Initialize the MessageInstance
272
- # @param [Version] version Version that contains the resource
273
- # @param [Hash] payload payload that contains response from Twilio
274
- # @param [String] session_sid The SID of the Session for the message.
275
- # @param [String] sid The SID of the SessionMessage resource to fetch.
276
- # @return [MessageInstance] MessageInstance
277
- def initialize(version, payload, session_sid: nil, sid: nil)
278
- super(version)
279
-
280
- # Marshaled Properties
281
- @properties = {
282
- 'account_sid' => payload['account_sid'],
283
- 'service_sid' => payload['service_sid'],
284
- 'messaging_service_sid' => payload['messaging_service_sid'],
285
- 'session_sid' => payload['session_sid'],
286
- 'sid' => payload['sid'],
287
- 'index' => payload['index'].to_i,
288
- 'author' => payload['author'],
289
- 'body' => payload['body'],
290
- 'attributes' => payload['attributes'],
291
- 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
292
- 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
293
- 'url' => payload['url'],
294
- }
295
-
296
- # Context
297
- @instance_context = nil
298
- @params = {'session_sid' => session_sid, 'sid' => sid || @properties['sid'], }
299
- end
300
-
301
- ##
302
- # Generate an instance context for the instance, the context is capable of
303
- # performing various actions. All instance actions are proxied to the context
304
- # @return [MessageContext] MessageContext for this MessageInstance
305
- def context
306
- unless @instance_context
307
- @instance_context = MessageContext.new(@version, @params['session_sid'], @params['sid'], )
308
- end
309
- @instance_context
310
- end
311
-
312
- ##
313
- # @return [String] The SID of the Account that created the resource
314
- def account_sid
315
- @properties['account_sid']
316
- end
317
-
318
- ##
319
- # @return [String] The SID of the Service that the resource is associated with
320
- def service_sid
321
- @properties['service_sid']
322
- end
323
-
324
- ##
325
- # @return [String] The SID of the Messaging Service the message belongs to
326
- def messaging_service_sid
327
- @properties['messaging_service_sid']
328
- end
329
-
330
- ##
331
- # @return [String] The SID of the Session for the message
332
- def session_sid
333
- @properties['session_sid']
334
- end
335
-
336
- ##
337
- # @return [String] The unique string that identifies the resource
338
- def sid
339
- @properties['sid']
340
- end
341
-
342
- ##
343
- # @return [String] The index of the message within the Session
344
- def index
345
- @properties['index']
346
- end
347
-
348
- ##
349
- # @return [String] The identity or the address of the device of the message's author
350
- def author
351
- @properties['author']
352
- end
353
-
354
- ##
355
- # @return [String] The message body
356
- def body
357
- @properties['body']
358
- end
359
-
360
- ##
361
- # @return [String] The JSON string that stores application-specific data
362
- def attributes
363
- @properties['attributes']
364
- end
365
-
366
- ##
367
- # @return [Time] The ISO 8601 date and time in GMT when the resource was created
368
- def date_created
369
- @properties['date_created']
370
- end
371
-
372
- ##
373
- # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
374
- def date_updated
375
- @properties['date_updated']
376
- end
377
-
378
- ##
379
- # @return [String] The absolute URL of the message
380
- def url
381
- @properties['url']
382
- end
383
-
384
- ##
385
- # Fetch a MessageInstance
386
- # @return [MessageInstance] Fetched MessageInstance
387
- def fetch
388
- context.fetch
389
- end
390
-
391
- ##
392
- # Update the MessageInstance
393
- # @param [String] author The [identity](https://www.twilio.com/docs/chat/identity)
394
- # of the message's author. Defaults to `system`.
395
- # @param [String] attributes A JSON string that stores application-specific data.
396
- # @param [Time] date_created The date, specified in [ISO
397
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
398
- # as the date it was created.
399
- # @param [Time] date_updated The date, specified in [ISO
400
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
401
- # as the date it was last updated.
402
- # @param [String] body The message body.
403
- # @return [MessageInstance] Updated MessageInstance
404
- def update(author: :unset, attributes: :unset, date_created: :unset, date_updated: :unset, body: :unset)
405
- context.update(
406
- author: author,
407
- attributes: attributes,
408
- date_created: date_created,
409
- date_updated: date_updated,
410
- body: body,
411
- )
412
- end
413
-
414
- ##
415
- # Deletes the MessageInstance
416
- # @return [Boolean] true if delete succeeds, false otherwise
417
- def delete
418
- context.delete
419
- end
420
-
421
- ##
422
- # Provide a user friendly representation
423
- def to_s
424
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
425
- "<Twilio.Messaging.V1.MessageInstance #{values}>"
426
- end
427
-
428
- ##
429
- # Provide a detailed, user friendly representation
430
- def inspect
431
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
432
- "<Twilio.Messaging.V1.MessageInstance #{values}>"
433
- end
434
- end
435
- end
436
- end
437
- end
438
- end
439
- end
@@ -1,458 +0,0 @@
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 Messaging < Domain
12
- class V1 < Version
13
- class SessionContext < InstanceContext
14
- ##
15
- # 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.
16
- class ParticipantList < ListResource
17
- ##
18
- # Initialize the ParticipantList
19
- # @param [Version] version Version that contains the resource
20
- # @param [String] session_sid The SID of the Session for the participant.
21
- # @return [ParticipantList] ParticipantList
22
- def initialize(version, session_sid: nil)
23
- super(version)
24
-
25
- # Path Solution
26
- @solution = {session_sid: session_sid}
27
- @uri = "/Sessions/#{@solution[:session_sid]}/Participants"
28
- end
29
-
30
- ##
31
- # Retrieve a single page of ParticipantInstance records from the API.
32
- # Request is executed immediately.
33
- # @param [String] attributes A JSON string that stores application-specific data.
34
- # @param [String] twilio_address The address of the Twilio phone number, WhatsApp
35
- # number, or Messenger Page ID that the participant is in contact with. This
36
- # field, together with user_address, is only null when the participant is
37
- # interacting from a Chat endpoint (see the 'identity' field).
38
- # @param [Time] date_created The date, specified in [ISO
39
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
40
- # as the date it was created. This is used when importing messages from another
41
- # system, as the provided value will be trusted and displayed on SDK clients.
42
- # @param [Time] date_updated The date, specified in [ISO
43
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
44
- # as the date it was last updated. This is used when importing messages from
45
- # another system, as the provided value will be trusted and displayed on SDK
46
- # clients.
47
- # @param [String] identity The application-defined string that uniquely identifies
48
- # the [Chat User](https://www.twilio.com/docs/chat/rest/user-resource) as the
49
- # session participant. This parameter is null unless the participant is using the
50
- # Programmable Chat SDK to communicate.
51
- # @param [String] user_address The address of the participant's device. Can be a
52
- # phone number or Messenger ID. Together with the Twilio Address, this determines
53
- # a participant uniquely. This field (with twilio_address) is null when the
54
- # participant is interacting from a Chat endpoint (see the `identity` field).
55
- # @return [ParticipantInstance] Newly created ParticipantInstance
56
- def create(attributes: :unset, twilio_address: :unset, date_created: :unset, date_updated: :unset, identity: :unset, user_address: :unset)
57
- data = Twilio::Values.of({
58
- 'Identity' => identity,
59
- 'UserAddress' => user_address,
60
- 'Attributes' => attributes,
61
- 'TwilioAddress' => twilio_address,
62
- 'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
63
- 'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
64
- })
65
-
66
- payload = @version.create(
67
- 'POST',
68
- @uri,
69
- data: data
70
- )
71
-
72
- ParticipantInstance.new(@version, payload, session_sid: @solution[:session_sid], )
73
- end
74
-
75
- ##
76
- # Lists ParticipantInstance records from the API as a list.
77
- # Unlike stream(), this operation is eager and will load `limit` records into
78
- # memory before returning.
79
- # @param [Integer] limit Upper limit for the number of records to return. stream()
80
- # guarantees to never return more than limit. Default is no limit
81
- # @param [Integer] page_size Number of records to fetch per request, when
82
- # not set will use the default value of 50 records. If no page_size is defined
83
- # but a limit is defined, stream() will attempt to read the limit with the most
84
- # efficient page size, i.e. min(limit, 1000)
85
- # @return [Array] Array of up to limit results
86
- def list(limit: nil, page_size: nil)
87
- self.stream(limit: limit, page_size: page_size).entries
88
- end
89
-
90
- ##
91
- # Streams ParticipantInstance records from the API as an Enumerable.
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
97
- # not set will use the default value of 50 records. If no page_size is defined
98
- # but a limit is defined, stream() will attempt to read the limit with the most
99
- # efficient page size, i.e. min(limit, 1000)
100
- # @return [Enumerable] Enumerable that will yield up to limit results
101
- def stream(limit: nil, page_size: nil)
102
- limits = @version.read_limits(limit, page_size)
103
-
104
- page = self.page(page_size: limits[:page_size], )
105
-
106
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
107
- end
108
-
109
- ##
110
- # When passed a block, yields ParticipantInstance records from the API.
111
- # This operation lazily loads records as efficiently as possible until the limit
112
- # is reached.
113
- def each
114
- limits = @version.read_limits
115
-
116
- page = self.page(page_size: limits[:page_size], )
117
-
118
- @version.stream(page,
119
- limit: limits[:limit],
120
- page_limit: limits[:page_limit]).each {|x| yield x}
121
- end
122
-
123
- ##
124
- # Retrieve a single page of ParticipantInstance records from the API.
125
- # Request is executed immediately.
126
- # @param [String] page_token PageToken provided by the API
127
- # @param [Integer] page_number Page Number, this value is simply for client state
128
- # @param [Integer] page_size Number of records to return, defaults to 50
129
- # @return [Page] Page of ParticipantInstance
130
- def page(page_token: :unset, page_number: :unset, page_size: :unset)
131
- params = Twilio::Values.of({
132
- 'PageToken' => page_token,
133
- 'Page' => page_number,
134
- 'PageSize' => page_size,
135
- })
136
- response = @version.page(
137
- 'GET',
138
- @uri,
139
- params
140
- )
141
- ParticipantPage.new(@version, response, @solution)
142
- end
143
-
144
- ##
145
- # Retrieve a single page of ParticipantInstance records from the API.
146
- # Request is executed immediately.
147
- # @param [String] target_url API-generated URL for the requested results page
148
- # @return [Page] Page of ParticipantInstance
149
- def get_page(target_url)
150
- response = @version.domain.request(
151
- 'GET',
152
- target_url
153
- )
154
- ParticipantPage.new(@version, response, @solution)
155
- end
156
-
157
- ##
158
- # Provide a user friendly representation
159
- def to_s
160
- '#<Twilio.Messaging.V1.ParticipantList>'
161
- end
162
- end
163
-
164
- ##
165
- # 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.
166
- class ParticipantPage < Page
167
- ##
168
- # Initialize the ParticipantPage
169
- # @param [Version] version Version that contains the resource
170
- # @param [Response] response Response from the API
171
- # @param [Hash] solution Path solution for the resource
172
- # @return [ParticipantPage] ParticipantPage
173
- def initialize(version, response, solution)
174
- super(version, response)
175
-
176
- # Path Solution
177
- @solution = solution
178
- end
179
-
180
- ##
181
- # Build an instance of ParticipantInstance
182
- # @param [Hash] payload Payload response from the API
183
- # @return [ParticipantInstance] ParticipantInstance
184
- def get_instance(payload)
185
- ParticipantInstance.new(@version, payload, session_sid: @solution[:session_sid], )
186
- end
187
-
188
- ##
189
- # Provide a user friendly representation
190
- def to_s
191
- '<Twilio.Messaging.V1.ParticipantPage>'
192
- end
193
- end
194
-
195
- ##
196
- # 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.
197
- class ParticipantContext < InstanceContext
198
- ##
199
- # Initialize the ParticipantContext
200
- # @param [Version] version Version that contains the resource
201
- # @param [String] session_sid The SID of the Session with the participant to
202
- # fetch.
203
- # @param [String] sid The SID of the SessionParticipant resource to fetch.
204
- # @return [ParticipantContext] ParticipantContext
205
- def initialize(version, session_sid, sid)
206
- super(version)
207
-
208
- # Path Solution
209
- @solution = {session_sid: session_sid, sid: sid, }
210
- @uri = "/Sessions/#{@solution[:session_sid]}/Participants/#{@solution[:sid]}"
211
- end
212
-
213
- ##
214
- # Update the ParticipantInstance
215
- # @param [String] attributes A JSON string that stores application-specific data.
216
- # @param [Time] date_created The date, specified in [ISO
217
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
218
- # as the date it was created. This is used when importing messages from another
219
- # system, as the provided value will be trusted and displayed on SDK clients.
220
- # @param [Time] date_updated The date, specified in [ISO
221
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
222
- # as the date it was last updated.
223
- # @return [ParticipantInstance] Updated ParticipantInstance
224
- def update(attributes: :unset, date_created: :unset, date_updated: :unset)
225
- data = Twilio::Values.of({
226
- 'Attributes' => attributes,
227
- 'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
228
- 'DateUpdated' => Twilio.serialize_iso8601_datetime(date_updated),
229
- })
230
-
231
- payload = @version.update(
232
- 'POST',
233
- @uri,
234
- data: data,
235
- )
236
-
237
- ParticipantInstance.new(
238
- @version,
239
- payload,
240
- session_sid: @solution[:session_sid],
241
- sid: @solution[:sid],
242
- )
243
- end
244
-
245
- ##
246
- # Fetch a ParticipantInstance
247
- # @return [ParticipantInstance] Fetched ParticipantInstance
248
- def fetch
249
- params = Twilio::Values.of({})
250
-
251
- payload = @version.fetch(
252
- 'GET',
253
- @uri,
254
- params,
255
- )
256
-
257
- ParticipantInstance.new(
258
- @version,
259
- payload,
260
- session_sid: @solution[:session_sid],
261
- sid: @solution[:sid],
262
- )
263
- end
264
-
265
- ##
266
- # Deletes the ParticipantInstance
267
- # @return [Boolean] true if delete succeeds, false otherwise
268
- def delete
269
- @version.delete('delete', @uri)
270
- end
271
-
272
- ##
273
- # Provide a user friendly representation
274
- def to_s
275
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
276
- "#<Twilio.Messaging.V1.ParticipantContext #{context}>"
277
- end
278
-
279
- ##
280
- # Provide a detailed, user friendly representation
281
- def inspect
282
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
283
- "#<Twilio.Messaging.V1.ParticipantContext #{context}>"
284
- end
285
- end
286
-
287
- ##
288
- # 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.
289
- class ParticipantInstance < InstanceResource
290
- ##
291
- # Initialize the ParticipantInstance
292
- # @param [Version] version Version that contains the resource
293
- # @param [Hash] payload payload that contains response from Twilio
294
- # @param [String] session_sid The SID of the Session for the participant.
295
- # @param [String] sid The SID of the SessionParticipant resource to fetch.
296
- # @return [ParticipantInstance] ParticipantInstance
297
- def initialize(version, payload, session_sid: nil, sid: nil)
298
- super(version)
299
-
300
- # Marshaled Properties
301
- @properties = {
302
- 'account_sid' => payload['account_sid'],
303
- 'service_sid' => payload['service_sid'],
304
- 'messaging_service_sid' => payload['messaging_service_sid'],
305
- 'session_sid' => payload['session_sid'],
306
- 'sid' => payload['sid'],
307
- 'identity' => payload['identity'],
308
- 'twilio_address' => payload['twilio_address'],
309
- 'user_address' => payload['user_address'],
310
- 'attributes' => payload['attributes'],
311
- 'type' => payload['type'],
312
- 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
313
- 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
314
- 'url' => payload['url'],
315
- }
316
-
317
- # Context
318
- @instance_context = nil
319
- @params = {'session_sid' => session_sid, 'sid' => sid || @properties['sid'], }
320
- end
321
-
322
- ##
323
- # Generate an instance context for the instance, the context is capable of
324
- # performing various actions. All instance actions are proxied to the context
325
- # @return [ParticipantContext] ParticipantContext for this ParticipantInstance
326
- def context
327
- unless @instance_context
328
- @instance_context = ParticipantContext.new(@version, @params['session_sid'], @params['sid'], )
329
- end
330
- @instance_context
331
- end
332
-
333
- ##
334
- # @return [String] The SID of the Account that created the resource
335
- def account_sid
336
- @properties['account_sid']
337
- end
338
-
339
- ##
340
- # @return [String] The SID of the Service the session belongs to
341
- def service_sid
342
- @properties['service_sid']
343
- end
344
-
345
- ##
346
- # @return [String] The SID of the SMS Service the session belongs to
347
- def messaging_service_sid
348
- @properties['messaging_service_sid']
349
- end
350
-
351
- ##
352
- # @return [String] The SID of the Session for the participant
353
- def session_sid
354
- @properties['session_sid']
355
- end
356
-
357
- ##
358
- # @return [String] The unique string that identifies the resource
359
- def sid
360
- @properties['sid']
361
- end
362
-
363
- ##
364
- # @return [String] The string that identifies the resource's User
365
- def identity
366
- @properties['identity']
367
- end
368
-
369
- ##
370
- # @return [String] The address of the Twilio phone number that the participant is in contact with
371
- def twilio_address
372
- @properties['twilio_address']
373
- end
374
-
375
- ##
376
- # @return [String] The address of the participant's device
377
- def user_address
378
- @properties['user_address']
379
- end
380
-
381
- ##
382
- # @return [String] The JSON string that stores application-specific data
383
- def attributes
384
- @properties['attributes']
385
- end
386
-
387
- ##
388
- # @return [participant.ParticipantType] The type of messaging used by the participant
389
- def type
390
- @properties['type']
391
- end
392
-
393
- ##
394
- # @return [Time] The ISO 8601 date and time in GMT when the resource was created
395
- def date_created
396
- @properties['date_created']
397
- end
398
-
399
- ##
400
- # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
401
- def date_updated
402
- @properties['date_updated']
403
- end
404
-
405
- ##
406
- # @return [String] The absolute URL of the participant
407
- def url
408
- @properties['url']
409
- end
410
-
411
- ##
412
- # Update the ParticipantInstance
413
- # @param [String] attributes A JSON string that stores application-specific data.
414
- # @param [Time] date_created The date, specified in [ISO
415
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
416
- # as the date it was created. This is used when importing messages from another
417
- # system, as the provided value will be trusted and displayed on SDK clients.
418
- # @param [Time] date_updated The date, specified in [ISO
419
- # 8601](https://en.wikipedia.org/wiki/ISO_8601) format, to assign to the resource
420
- # as the date it was last updated.
421
- # @return [ParticipantInstance] Updated ParticipantInstance
422
- def update(attributes: :unset, date_created: :unset, date_updated: :unset)
423
- context.update(attributes: attributes, date_created: date_created, date_updated: date_updated, )
424
- end
425
-
426
- ##
427
- # Fetch a ParticipantInstance
428
- # @return [ParticipantInstance] Fetched ParticipantInstance
429
- def fetch
430
- context.fetch
431
- end
432
-
433
- ##
434
- # Deletes the ParticipantInstance
435
- # @return [Boolean] true if delete succeeds, false otherwise
436
- def delete
437
- context.delete
438
- end
439
-
440
- ##
441
- # Provide a user friendly representation
442
- def to_s
443
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
444
- "<Twilio.Messaging.V1.ParticipantInstance #{values}>"
445
- end
446
-
447
- ##
448
- # Provide a detailed, user friendly representation
449
- def inspect
450
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
451
- "<Twilio.Messaging.V1.ParticipantInstance #{values}>"
452
- end
453
- end
454
- end
455
- end
456
- end
457
- end
458
- end