twilio-ruby 5.56.0 → 5.57.0

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