twilio-ruby 5.54.1 → 5.57.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +7 -7
  3. data/.travis.yml +2 -2
  4. data/CHANGES.md +54 -0
  5. data/README.md +10 -2
  6. data/lib/twilio-ruby.rb +5 -15
  7. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +0 -0
  8. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +0 -0
  9. data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  10. data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  11. data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  12. data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
  13. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +0 -0
  14. data/lib/twilio-ruby/http.rb +5 -0
  15. data/lib/twilio-ruby/http/http_client.rb +11 -1
  16. data/lib/twilio-ruby/rest.rb +13 -0
  17. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +8 -7
  18. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +2 -2
  19. data/lib/twilio-ruby/rest/client.rb +7 -0
  20. data/lib/twilio-ruby/rest/conversations.rb +6 -0
  21. data/lib/twilio-ruby/rest/conversations/v1.rb +7 -0
  22. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +7 -0
  23. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  24. data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
  25. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +7 -0
  26. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  27. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +44 -0
  28. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  29. data/lib/twilio-ruby/rest/conversations/v1/user.rb +35 -0
  30. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  31. data/lib/twilio-ruby/rest/frontline_api.rb +47 -0
  32. data/lib/twilio-ruby/rest/frontline_api/v1.rb +45 -0
  33. data/lib/twilio-ruby/rest/frontline_api/v1/user.rb +233 -0
  34. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +7 -0
  35. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +29 -0
  36. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  37. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
  38. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +24 -5
  39. data/lib/twilio-ruby/version.rb +1 -1
  40. metadata +19 -9
@@ -172,6 +172,7 @@ module Twilio
172
172
  @users = nil
173
173
  @roles = nil
174
174
  @configuration = nil
175
+ @participant_conversations = nil
175
176
  end
176
177
 
177
178
  ##
@@ -270,6 +271,21 @@ module Twilio
270
271
  ConfigurationContext.new(@version, @solution[:sid], )
271
272
  end
272
273
 
274
+ ##
275
+ # Access the participant_conversations
276
+ # @return [ParticipantConversationList]
277
+ # @return [ParticipantConversationContext]
278
+ def participant_conversations
279
+ unless @participant_conversations
280
+ @participant_conversations = ParticipantConversationList.new(
281
+ @version,
282
+ chat_service_sid: @solution[:sid],
283
+ )
284
+ end
285
+
286
+ @participant_conversations
287
+ end
288
+
273
289
  ##
274
290
  # Provide a user friendly representation
275
291
  def to_s
@@ -414,6 +430,13 @@ module Twilio
414
430
  context.configuration
415
431
  end
416
432
 
433
+ ##
434
+ # Access the participant_conversations
435
+ # @return [participant_conversations] participant_conversations
436
+ def participant_conversations
437
+ context.participant_conversations
438
+ end
439
+
417
440
  ##
418
441
  # Provide a user friendly representation
419
442
  def to_s
@@ -394,6 +394,7 @@ module Twilio
394
394
  'timers' => payload['timers'],
395
395
  'url' => payload['url'],
396
396
  'links' => payload['links'],
397
+ 'bindings' => payload['bindings'],
397
398
  }
398
399
 
399
400
  # Context
@@ -490,6 +491,12 @@ module Twilio
490
491
  @properties['links']
491
492
  end
492
493
 
494
+ ##
495
+ # @return [Hash] The bindings
496
+ def bindings
497
+ @properties['bindings']
498
+ end
499
+
493
500
  ##
494
501
  # Update the ConversationInstance
495
502
  # @param [String] friendly_name The human-readable name of this conversation,
@@ -0,0 +1,324 @@
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 ParticipantConversationList < ListResource
15
+ ##
16
+ # Initialize the ParticipantConversationList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] chat_service_sid The unique ID of the {Conversation
19
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
20
+ # conversation belongs to.
21
+ # @return [ParticipantConversationList] ParticipantConversationList
22
+ def initialize(version, chat_service_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {chat_service_sid: chat_service_sid}
27
+ @uri = "/Services/#{@solution[:chat_service_sid]}/ParticipantConversations"
28
+ end
29
+
30
+ ##
31
+ # Lists ParticipantConversationInstance records from the API as a list.
32
+ # Unlike stream(), this operation is eager and will load `limit` records into
33
+ # memory before returning.
34
+ # @param [String] identity A unique string identifier for the conversation
35
+ # participant as {Conversation
36
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
37
+ # parameter is non-null if (and only if) the participant is using the
38
+ # Conversations SDK to communicate. Limited to 256 characters.
39
+ # @param [String] address A unique string identifier for the conversation
40
+ # participant who's not a Conversation User. This parameter could be found in
41
+ # messaging_binding.address field of Participant resource. It should be
42
+ # url-encoded.
43
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
44
+ # guarantees to never return more than limit. Default is no limit
45
+ # @param [Integer] page_size Number of records to fetch per request, when
46
+ # not set will use the default value of 50 records. If no page_size is defined
47
+ # but a limit is defined, stream() will attempt to read the limit with the most
48
+ # efficient page size, i.e. min(limit, 1000)
49
+ # @return [Array] Array of up to limit results
50
+ def list(identity: :unset, address: :unset, limit: nil, page_size: nil)
51
+ self.stream(identity: identity, address: address, limit: limit, page_size: page_size).entries
52
+ end
53
+
54
+ ##
55
+ # Streams ParticipantConversationInstance records from the API as an Enumerable.
56
+ # This operation lazily loads records as efficiently as possible until the limit
57
+ # is reached.
58
+ # @param [String] identity A unique string identifier for the conversation
59
+ # participant as {Conversation
60
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
61
+ # parameter is non-null if (and only if) the participant is using the
62
+ # Conversations SDK to communicate. Limited to 256 characters.
63
+ # @param [String] address A unique string identifier for the conversation
64
+ # participant who's not a Conversation User. This parameter could be found in
65
+ # messaging_binding.address field of Participant resource. It should be
66
+ # url-encoded.
67
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
68
+ # guarantees to never return more than limit. Default is no limit.
69
+ # @param [Integer] page_size Number of records to fetch per request, when
70
+ # not set will use the default value of 50 records. If no page_size is defined
71
+ # but a limit is defined, stream() will attempt to read the limit with the most
72
+ # efficient page size, i.e. min(limit, 1000)
73
+ # @return [Enumerable] Enumerable that will yield up to limit results
74
+ def stream(identity: :unset, address: :unset, limit: nil, page_size: nil)
75
+ limits = @version.read_limits(limit, page_size)
76
+
77
+ page = self.page(identity: identity, address: address, page_size: limits[:page_size], )
78
+
79
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
80
+ end
81
+
82
+ ##
83
+ # When passed a block, yields ParticipantConversationInstance records from the API.
84
+ # This operation lazily loads records as efficiently as possible until the limit
85
+ # is reached.
86
+ def each
87
+ limits = @version.read_limits
88
+
89
+ page = self.page(page_size: limits[:page_size], )
90
+
91
+ @version.stream(page,
92
+ limit: limits[:limit],
93
+ page_limit: limits[:page_limit]).each {|x| yield x}
94
+ end
95
+
96
+ ##
97
+ # Retrieve a single page of ParticipantConversationInstance records from the API.
98
+ # Request is executed immediately.
99
+ # @param [String] identity A unique string identifier for the conversation
100
+ # participant as {Conversation
101
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
102
+ # parameter is non-null if (and only if) the participant is using the
103
+ # Conversations SDK to communicate. Limited to 256 characters.
104
+ # @param [String] address A unique string identifier for the conversation
105
+ # participant who's not a Conversation User. This parameter could be found in
106
+ # messaging_binding.address field of Participant resource. It should be
107
+ # url-encoded.
108
+ # @param [String] page_token PageToken provided by the API
109
+ # @param [Integer] page_number Page Number, this value is simply for client state
110
+ # @param [Integer] page_size Number of records to return, defaults to 50
111
+ # @return [Page] Page of ParticipantConversationInstance
112
+ def page(identity: :unset, address: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
113
+ params = Twilio::Values.of({
114
+ 'Identity' => identity,
115
+ 'Address' => address,
116
+ 'PageToken' => page_token,
117
+ 'Page' => page_number,
118
+ 'PageSize' => page_size,
119
+ })
120
+
121
+ response = @version.page('GET', @uri, params: params)
122
+
123
+ ParticipantConversationPage.new(@version, response, @solution)
124
+ end
125
+
126
+ ##
127
+ # Retrieve a single page of ParticipantConversationInstance records from the API.
128
+ # Request is executed immediately.
129
+ # @param [String] target_url API-generated URL for the requested results page
130
+ # @return [Page] Page of ParticipantConversationInstance
131
+ def get_page(target_url)
132
+ response = @version.domain.request(
133
+ 'GET',
134
+ target_url
135
+ )
136
+ ParticipantConversationPage.new(@version, response, @solution)
137
+ end
138
+
139
+ ##
140
+ # Provide a user friendly representation
141
+ def to_s
142
+ '#<Twilio.Conversations.V1.ParticipantConversationList>'
143
+ end
144
+ end
145
+
146
+ class ParticipantConversationPage < Page
147
+ ##
148
+ # Initialize the ParticipantConversationPage
149
+ # @param [Version] version Version that contains the resource
150
+ # @param [Response] response Response from the API
151
+ # @param [Hash] solution Path solution for the resource
152
+ # @return [ParticipantConversationPage] ParticipantConversationPage
153
+ def initialize(version, response, solution)
154
+ super(version, response)
155
+
156
+ # Path Solution
157
+ @solution = solution
158
+ end
159
+
160
+ ##
161
+ # Build an instance of ParticipantConversationInstance
162
+ # @param [Hash] payload Payload response from the API
163
+ # @return [ParticipantConversationInstance] ParticipantConversationInstance
164
+ def get_instance(payload)
165
+ ParticipantConversationInstance.new(
166
+ @version,
167
+ payload,
168
+ chat_service_sid: @solution[:chat_service_sid],
169
+ )
170
+ end
171
+
172
+ ##
173
+ # Provide a user friendly representation
174
+ def to_s
175
+ '<Twilio.Conversations.V1.ParticipantConversationPage>'
176
+ end
177
+ end
178
+
179
+ class ParticipantConversationInstance < InstanceResource
180
+ ##
181
+ # Initialize the ParticipantConversationInstance
182
+ # @param [Version] version Version that contains the resource
183
+ # @param [Hash] payload payload that contains response from Twilio
184
+ # @param [String] chat_service_sid The unique ID of the {Conversation
185
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
186
+ # conversation belongs to.
187
+ # @return [ParticipantConversationInstance] ParticipantConversationInstance
188
+ def initialize(version, payload, chat_service_sid: nil)
189
+ super(version)
190
+
191
+ # Marshaled Properties
192
+ @properties = {
193
+ 'account_sid' => payload['account_sid'],
194
+ 'chat_service_sid' => payload['chat_service_sid'],
195
+ 'participant_sid' => payload['participant_sid'],
196
+ 'participant_user_sid' => payload['participant_user_sid'],
197
+ 'participant_identity' => payload['participant_identity'],
198
+ 'participant_messaging_binding' => payload['participant_messaging_binding'],
199
+ 'conversation_sid' => payload['conversation_sid'],
200
+ 'conversation_unique_name' => payload['conversation_unique_name'],
201
+ 'conversation_friendly_name' => payload['conversation_friendly_name'],
202
+ 'conversation_attributes' => payload['conversation_attributes'],
203
+ 'conversation_date_created' => Twilio.deserialize_iso8601_datetime(payload['conversation_date_created']),
204
+ 'conversation_date_updated' => Twilio.deserialize_iso8601_datetime(payload['conversation_date_updated']),
205
+ 'conversation_created_by' => payload['conversation_created_by'],
206
+ 'conversation_state' => payload['conversation_state'],
207
+ 'conversation_timers' => payload['conversation_timers'],
208
+ 'links' => payload['links'],
209
+ }
210
+ end
211
+
212
+ ##
213
+ # @return [String] The unique ID of the Account responsible for this conversation.
214
+ def account_sid
215
+ @properties['account_sid']
216
+ end
217
+
218
+ ##
219
+ # @return [String] The unique ID of the Conversation Service this conversation belongs to.
220
+ def chat_service_sid
221
+ @properties['chat_service_sid']
222
+ end
223
+
224
+ ##
225
+ # @return [String] The unique ID of the Participant.
226
+ def participant_sid
227
+ @properties['participant_sid']
228
+ end
229
+
230
+ ##
231
+ # @return [String] The unique ID for the conversation participant as Conversation User.
232
+ def participant_user_sid
233
+ @properties['participant_user_sid']
234
+ end
235
+
236
+ ##
237
+ # @return [String] A unique string identifier for the conversation participant as Conversation User.
238
+ def participant_identity
239
+ @properties['participant_identity']
240
+ end
241
+
242
+ ##
243
+ # @return [Hash] Information about how this participant exchanges messages with the conversation.
244
+ def participant_messaging_binding
245
+ @properties['participant_messaging_binding']
246
+ end
247
+
248
+ ##
249
+ # @return [String] The unique ID of the Conversation this Participant belongs to.
250
+ def conversation_sid
251
+ @properties['conversation_sid']
252
+ end
253
+
254
+ ##
255
+ # @return [String] An application-defined string that uniquely identifies the Conversation resource.
256
+ def conversation_unique_name
257
+ @properties['conversation_unique_name']
258
+ end
259
+
260
+ ##
261
+ # @return [String] The human-readable name of this conversation.
262
+ def conversation_friendly_name
263
+ @properties['conversation_friendly_name']
264
+ end
265
+
266
+ ##
267
+ # @return [String] An optional string metadata field you can use to store any data you wish.
268
+ def conversation_attributes
269
+ @properties['conversation_attributes']
270
+ end
271
+
272
+ ##
273
+ # @return [Time] The date that this conversation was created.
274
+ def conversation_date_created
275
+ @properties['conversation_date_created']
276
+ end
277
+
278
+ ##
279
+ # @return [Time] The date that this conversation was last updated.
280
+ def conversation_date_updated
281
+ @properties['conversation_date_updated']
282
+ end
283
+
284
+ ##
285
+ # @return [String] Creator of this conversation.
286
+ def conversation_created_by
287
+ @properties['conversation_created_by']
288
+ end
289
+
290
+ ##
291
+ # @return [participant_conversation.State] The current state of this User Conversation
292
+ def conversation_state
293
+ @properties['conversation_state']
294
+ end
295
+
296
+ ##
297
+ # @return [Hash] Timer date values for this conversation.
298
+ def conversation_timers
299
+ @properties['conversation_timers']
300
+ end
301
+
302
+ ##
303
+ # @return [String] Absolute URLs to access the participant and conversation of this Participant Conversation.
304
+ def links
305
+ @properties['links']
306
+ end
307
+
308
+ ##
309
+ # Provide a user friendly representation
310
+ def to_s
311
+ "<Twilio.Conversations.V1.ParticipantConversationInstance>"
312
+ end
313
+
314
+ ##
315
+ # Provide a detailed, user friendly representation
316
+ def inspect
317
+ "<Twilio.Conversations.V1.ParticipantConversationInstance>"
318
+ end
319
+ end
320
+ end
321
+ end
322
+ end
323
+ end
324
+ end
@@ -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