twilio-ruby 5.56.0 → 5.58.1

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +24 -7
  4. data/CHANGES.md +76 -0
  5. data/Gemfile +1 -0
  6. data/README.md +2 -2
  7. data/examples/examples.rb +1 -1
  8. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +12 -3
  9. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +4 -1
  10. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
  11. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  12. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  13. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +12 -5
  14. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  15. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +12 -5
  16. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  17. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  18. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +44 -0
  19. data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
  20. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  21. data/lib/twilio-ruby/rest/conversations/v1/user.rb +35 -0
  22. data/lib/twilio-ruby/rest/conversations/v1.rb +7 -0
  23. data/lib/twilio-ruby/rest/conversations.rb +6 -0
  24. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  25. data/lib/twilio-ruby/rest/insights/v1.rb +7 -0
  26. data/lib/twilio-ruby/rest/insights.rb +6 -0
  27. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +19 -1
  28. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +6 -2
  29. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  30. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  31. data/lib/twilio-ruby/rest/pricing/v2.rb +37 -0
  32. data/lib/twilio-ruby/rest/pricing.rb +19 -0
  33. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
  34. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +26 -5
  35. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +24 -5
  36. data/lib/twilio-ruby/version.rb +1 -1
  37. data/sonar-project.properties +13 -0
  38. metadata +10 -2
@@ -0,0 +1,466 @@
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 Conversations < Domain
12
+ class V1 < Version
13
+ class ServiceContext < InstanceContext
14
+ class UserContext < InstanceContext
15
+ class UserConversationList < ListResource
16
+ ##
17
+ # Initialize the UserConversationList
18
+ # @param [Version] version Version that contains the resource
19
+ # @param [String] chat_service_sid The unique ID of the {Conversation
20
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
21
+ # conversation belongs to.
22
+ # @param [String] user_sid The unique string that identifies the {User
23
+ # resource}[https://www.twilio.com/docs/conversations/api/user-resource].
24
+ # @return [UserConversationList] UserConversationList
25
+ def initialize(version, chat_service_sid: nil, user_sid: nil)
26
+ super(version)
27
+
28
+ # Path Solution
29
+ @solution = {chat_service_sid: chat_service_sid, user_sid: user_sid}
30
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Users/#{@solution[:user_sid]}/Conversations"
31
+ end
32
+
33
+ ##
34
+ # Lists UserConversationInstance 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
40
+ # not set will use the default value of 50 records. If no page_size is defined
41
+ # but a limit is defined, stream() will attempt to read the limit with the most
42
+ # 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(limit: limit, page_size: page_size).entries
46
+ end
47
+
48
+ ##
49
+ # Streams UserConversationInstance records from the API as an Enumerable.
50
+ # This operation lazily loads records as efficiently as possible until the limit
51
+ # is reached.
52
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
53
+ # guarantees to never return more than limit. Default is no limit.
54
+ # @param [Integer] page_size Number of records to fetch per request, when
55
+ # not set will use the default value of 50 records. If no page_size is defined
56
+ # but a limit is defined, stream() will attempt to read the limit with the most
57
+ # efficient page size, i.e. min(limit, 1000)
58
+ # @return [Enumerable] Enumerable that will yield up to limit results
59
+ def stream(limit: nil, page_size: nil)
60
+ limits = @version.read_limits(limit, page_size)
61
+
62
+ page = self.page(page_size: limits[:page_size], )
63
+
64
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
65
+ end
66
+
67
+ ##
68
+ # When passed a block, yields UserConversationInstance records from the API.
69
+ # This operation lazily loads records as efficiently as possible until the limit
70
+ # is reached.
71
+ def each
72
+ limits = @version.read_limits
73
+
74
+ page = self.page(page_size: limits[:page_size], )
75
+
76
+ @version.stream(page,
77
+ limit: limits[:limit],
78
+ page_limit: limits[:page_limit]).each {|x| yield x}
79
+ end
80
+
81
+ ##
82
+ # Retrieve a single page of UserConversationInstance records from the API.
83
+ # Request is executed immediately.
84
+ # @param [String] page_token PageToken provided by the API
85
+ # @param [Integer] page_number Page Number, this value is simply for client state
86
+ # @param [Integer] page_size Number of records to return, defaults to 50
87
+ # @return [Page] Page of UserConversationInstance
88
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
89
+ params = Twilio::Values.of({
90
+ 'PageToken' => page_token,
91
+ 'Page' => page_number,
92
+ 'PageSize' => page_size,
93
+ })
94
+
95
+ response = @version.page('GET', @uri, params: params)
96
+
97
+ UserConversationPage.new(@version, response, @solution)
98
+ end
99
+
100
+ ##
101
+ # Retrieve a single page of UserConversationInstance records from the API.
102
+ # Request is executed immediately.
103
+ # @param [String] target_url API-generated URL for the requested results page
104
+ # @return [Page] Page of UserConversationInstance
105
+ def get_page(target_url)
106
+ response = @version.domain.request(
107
+ 'GET',
108
+ target_url
109
+ )
110
+ UserConversationPage.new(@version, response, @solution)
111
+ end
112
+
113
+ ##
114
+ # Provide a user friendly representation
115
+ def to_s
116
+ '#<Twilio.Conversations.V1.UserConversationList>'
117
+ end
118
+ end
119
+
120
+ class UserConversationPage < Page
121
+ ##
122
+ # Initialize the UserConversationPage
123
+ # @param [Version] version Version that contains the resource
124
+ # @param [Response] response Response from the API
125
+ # @param [Hash] solution Path solution for the resource
126
+ # @return [UserConversationPage] UserConversationPage
127
+ def initialize(version, response, solution)
128
+ super(version, response)
129
+
130
+ # Path Solution
131
+ @solution = solution
132
+ end
133
+
134
+ ##
135
+ # Build an instance of UserConversationInstance
136
+ # @param [Hash] payload Payload response from the API
137
+ # @return [UserConversationInstance] UserConversationInstance
138
+ def get_instance(payload)
139
+ UserConversationInstance.new(
140
+ @version,
141
+ payload,
142
+ chat_service_sid: @solution[:chat_service_sid],
143
+ user_sid: @solution[:user_sid],
144
+ )
145
+ end
146
+
147
+ ##
148
+ # Provide a user friendly representation
149
+ def to_s
150
+ '<Twilio.Conversations.V1.UserConversationPage>'
151
+ end
152
+ end
153
+
154
+ class UserConversationContext < InstanceContext
155
+ ##
156
+ # Initialize the UserConversationContext
157
+ # @param [Version] version Version that contains the resource
158
+ # @param [String] chat_service_sid The SID of the {Conversation
159
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
160
+ # Conversation resource is associated with.
161
+ # @param [String] user_sid The unique SID identifier of the {User
162
+ # resource}[https://www.twilio.com/docs/conversations/api/user-resource]. This
163
+ # value can be either the `sid` or the `identity` of the User resource.
164
+ # @param [String] conversation_sid The unique SID identifier of the Conversation.
165
+ # This value can be either the `sid` or the `unique_name` of the {Conversation
166
+ # resource}[https://www.twilio.com/docs/conversations/api/conversation-resource].
167
+ # @return [UserConversationContext] UserConversationContext
168
+ def initialize(version, chat_service_sid, user_sid, conversation_sid)
169
+ super(version)
170
+
171
+ # Path Solution
172
+ @solution = {
173
+ chat_service_sid: chat_service_sid,
174
+ user_sid: user_sid,
175
+ conversation_sid: conversation_sid,
176
+ }
177
+ @uri = "/Services/#{@solution[:chat_service_sid]}/Users/#{@solution[:user_sid]}/Conversations/#{@solution[:conversation_sid]}"
178
+ end
179
+
180
+ ##
181
+ # Update the UserConversationInstance
182
+ # @param [user_conversation.NotificationLevel] notification_level The Notification
183
+ # Level of this User Conversation. One of `default` or `muted`.
184
+ # @param [Time] last_read_timestamp The date of the last message read in
185
+ # conversation by the user, given in ISO 8601 format.
186
+ # @param [String] last_read_message_index The index of the last Message in the
187
+ # Conversation that the Participant has read.
188
+ # @return [UserConversationInstance] Updated UserConversationInstance
189
+ def update(notification_level: :unset, last_read_timestamp: :unset, last_read_message_index: :unset)
190
+ data = Twilio::Values.of({
191
+ 'NotificationLevel' => notification_level,
192
+ 'LastReadTimestamp' => Twilio.serialize_iso8601_datetime(last_read_timestamp),
193
+ 'LastReadMessageIndex' => last_read_message_index,
194
+ })
195
+
196
+ payload = @version.update('POST', @uri, data: data)
197
+
198
+ UserConversationInstance.new(
199
+ @version,
200
+ payload,
201
+ chat_service_sid: @solution[:chat_service_sid],
202
+ user_sid: @solution[:user_sid],
203
+ conversation_sid: @solution[:conversation_sid],
204
+ )
205
+ end
206
+
207
+ ##
208
+ # Delete the UserConversationInstance
209
+ # @return [Boolean] true if delete succeeds, false otherwise
210
+ def delete
211
+ @version.delete('DELETE', @uri)
212
+ end
213
+
214
+ ##
215
+ # Fetch the UserConversationInstance
216
+ # @return [UserConversationInstance] Fetched UserConversationInstance
217
+ def fetch
218
+ payload = @version.fetch('GET', @uri)
219
+
220
+ UserConversationInstance.new(
221
+ @version,
222
+ payload,
223
+ chat_service_sid: @solution[:chat_service_sid],
224
+ user_sid: @solution[:user_sid],
225
+ conversation_sid: @solution[:conversation_sid],
226
+ )
227
+ end
228
+
229
+ ##
230
+ # Provide a user friendly representation
231
+ def to_s
232
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
233
+ "#<Twilio.Conversations.V1.UserConversationContext #{context}>"
234
+ end
235
+
236
+ ##
237
+ # Provide a detailed, user friendly representation
238
+ def inspect
239
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
240
+ "#<Twilio.Conversations.V1.UserConversationContext #{context}>"
241
+ end
242
+ end
243
+
244
+ class UserConversationInstance < InstanceResource
245
+ ##
246
+ # Initialize the UserConversationInstance
247
+ # @param [Version] version Version that contains the resource
248
+ # @param [Hash] payload payload that contains response from Twilio
249
+ # @param [String] chat_service_sid The unique ID of the {Conversation
250
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
251
+ # conversation belongs to.
252
+ # @param [String] user_sid The unique string that identifies the {User
253
+ # resource}[https://www.twilio.com/docs/conversations/api/user-resource].
254
+ # @param [String] conversation_sid The unique SID identifier of the Conversation.
255
+ # This value can be either the `sid` or the `unique_name` of the {Conversation
256
+ # resource}[https://www.twilio.com/docs/conversations/api/conversation-resource].
257
+ # @return [UserConversationInstance] UserConversationInstance
258
+ def initialize(version, payload, chat_service_sid: nil, user_sid: nil, conversation_sid: nil)
259
+ super(version)
260
+
261
+ # Marshaled Properties
262
+ @properties = {
263
+ 'account_sid' => payload['account_sid'],
264
+ 'chat_service_sid' => payload['chat_service_sid'],
265
+ 'conversation_sid' => payload['conversation_sid'],
266
+ 'unread_messages_count' => payload['unread_messages_count'] == nil ? payload['unread_messages_count'] : payload['unread_messages_count'].to_i,
267
+ 'last_read_message_index' => payload['last_read_message_index'] == nil ? payload['last_read_message_index'] : payload['last_read_message_index'].to_i,
268
+ 'participant_sid' => payload['participant_sid'],
269
+ 'user_sid' => payload['user_sid'],
270
+ 'friendly_name' => payload['friendly_name'],
271
+ 'conversation_state' => payload['conversation_state'],
272
+ 'timers' => payload['timers'],
273
+ 'attributes' => payload['attributes'],
274
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
275
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
276
+ 'created_by' => payload['created_by'],
277
+ 'notification_level' => payload['notification_level'],
278
+ 'unique_name' => payload['unique_name'],
279
+ 'url' => payload['url'],
280
+ 'links' => payload['links'],
281
+ }
282
+
283
+ # Context
284
+ @instance_context = nil
285
+ @params = {
286
+ 'chat_service_sid' => chat_service_sid,
287
+ 'user_sid' => user_sid,
288
+ 'conversation_sid' => conversation_sid || @properties['conversation_sid'],
289
+ }
290
+ end
291
+
292
+ ##
293
+ # Generate an instance context for the instance, the context is capable of
294
+ # performing various actions. All instance actions are proxied to the context
295
+ # @return [UserConversationContext] UserConversationContext for this UserConversationInstance
296
+ def context
297
+ unless @instance_context
298
+ @instance_context = UserConversationContext.new(
299
+ @version,
300
+ @params['chat_service_sid'],
301
+ @params['user_sid'],
302
+ @params['conversation_sid'],
303
+ )
304
+ end
305
+ @instance_context
306
+ end
307
+
308
+ ##
309
+ # @return [String] The unique ID of the Account responsible for this conversation.
310
+ def account_sid
311
+ @properties['account_sid']
312
+ end
313
+
314
+ ##
315
+ # @return [String] The unique ID of the Conversation Service this conversation belongs to.
316
+ def chat_service_sid
317
+ @properties['chat_service_sid']
318
+ end
319
+
320
+ ##
321
+ # @return [String] The unique ID of the Conversation for this User Conversation.
322
+ def conversation_sid
323
+ @properties['conversation_sid']
324
+ end
325
+
326
+ ##
327
+ # @return [String] The number of unread Messages in the Conversation.
328
+ def unread_messages_count
329
+ @properties['unread_messages_count']
330
+ end
331
+
332
+ ##
333
+ # @return [String] The index of the last read Message .
334
+ def last_read_message_index
335
+ @properties['last_read_message_index']
336
+ end
337
+
338
+ ##
339
+ # @return [String] Participant Sid.
340
+ def participant_sid
341
+ @properties['participant_sid']
342
+ end
343
+
344
+ ##
345
+ # @return [String] The unique ID for the User.
346
+ def user_sid
347
+ @properties['user_sid']
348
+ end
349
+
350
+ ##
351
+ # @return [String] The human-readable name of this conversation.
352
+ def friendly_name
353
+ @properties['friendly_name']
354
+ end
355
+
356
+ ##
357
+ # @return [user_conversation.State] The current state of this User Conversation
358
+ def conversation_state
359
+ @properties['conversation_state']
360
+ end
361
+
362
+ ##
363
+ # @return [Hash] Timer date values for this conversation.
364
+ def timers
365
+ @properties['timers']
366
+ end
367
+
368
+ ##
369
+ # @return [String] An optional string metadata field you can use to store any data you wish.
370
+ def attributes
371
+ @properties['attributes']
372
+ end
373
+
374
+ ##
375
+ # @return [Time] The date that this conversation was created.
376
+ def date_created
377
+ @properties['date_created']
378
+ end
379
+
380
+ ##
381
+ # @return [Time] The date that this conversation was last updated.
382
+ def date_updated
383
+ @properties['date_updated']
384
+ end
385
+
386
+ ##
387
+ # @return [String] Creator of this conversation.
388
+ def created_by
389
+ @properties['created_by']
390
+ end
391
+
392
+ ##
393
+ # @return [user_conversation.NotificationLevel] The Notification Level of this User Conversation.
394
+ def notification_level
395
+ @properties['notification_level']
396
+ end
397
+
398
+ ##
399
+ # @return [String] An application-defined string that uniquely identifies the Conversation resource.
400
+ def unique_name
401
+ @properties['unique_name']
402
+ end
403
+
404
+ ##
405
+ # @return [String] The url
406
+ def url
407
+ @properties['url']
408
+ end
409
+
410
+ ##
411
+ # @return [String] Absolute URLs to access the participant and conversation of this user conversation.
412
+ def links
413
+ @properties['links']
414
+ end
415
+
416
+ ##
417
+ # Update the UserConversationInstance
418
+ # @param [user_conversation.NotificationLevel] notification_level The Notification
419
+ # Level of this User Conversation. One of `default` or `muted`.
420
+ # @param [Time] last_read_timestamp The date of the last message read in
421
+ # conversation by the user, given in ISO 8601 format.
422
+ # @param [String] last_read_message_index The index of the last Message in the
423
+ # Conversation that the Participant has read.
424
+ # @return [UserConversationInstance] Updated UserConversationInstance
425
+ def update(notification_level: :unset, last_read_timestamp: :unset, last_read_message_index: :unset)
426
+ context.update(
427
+ notification_level: notification_level,
428
+ last_read_timestamp: last_read_timestamp,
429
+ last_read_message_index: last_read_message_index,
430
+ )
431
+ end
432
+
433
+ ##
434
+ # Delete the UserConversationInstance
435
+ # @return [Boolean] true if delete succeeds, false otherwise
436
+ def delete
437
+ context.delete
438
+ end
439
+
440
+ ##
441
+ # Fetch the UserConversationInstance
442
+ # @return [UserConversationInstance] Fetched UserConversationInstance
443
+ def fetch
444
+ context.fetch
445
+ end
446
+
447
+ ##
448
+ # Provide a user friendly representation
449
+ def to_s
450
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
451
+ "<Twilio.Conversations.V1.UserConversationInstance #{values}>"
452
+ end
453
+
454
+ ##
455
+ # Provide a detailed, user friendly representation
456
+ def inspect
457
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
458
+ "<Twilio.Conversations.V1.UserConversationInstance #{values}>"
459
+ end
460
+ end
461
+ end
462
+ end
463
+ end
464
+ end
465
+ end
466
+ end