twilio-ruby 5.55.0 → 5.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop_todo.yml +7 -7
  4. data/.travis.yml +23 -6
  5. data/CHANGES.md +73 -0
  6. data/Gemfile +1 -0
  7. data/README.md +10 -2
  8. data/examples/examples.rb +1 -1
  9. data/lib/twilio-ruby.rb +5 -15
  10. data/lib/twilio-ruby/framework/{domain.rb → rest/domain.rb} +0 -0
  11. data/lib/twilio-ruby/framework/{error.rb → rest/error.rb} +0 -0
  12. data/lib/twilio-ruby/framework/{helper.rb → rest/helper.rb} +0 -0
  13. data/lib/twilio-ruby/framework/{obsolete_client.rb → rest/obsolete_client.rb} +0 -0
  14. data/lib/twilio-ruby/framework/{page.rb → rest/page.rb} +0 -0
  15. data/lib/twilio-ruby/framework/{resource.rb → rest/resource.rb} +0 -0
  16. data/lib/twilio-ruby/framework/{version.rb → rest/version.rb} +0 -0
  17. data/lib/twilio-ruby/http.rb +5 -0
  18. data/lib/twilio-ruby/http/http_client.rb +11 -1
  19. data/lib/twilio-ruby/rest.rb +13 -0
  20. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +12 -3
  21. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +12 -8
  22. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
  23. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +2 -2
  24. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  25. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  26. data/lib/twilio-ruby/rest/conversations.rb +6 -0
  27. data/lib/twilio-ruby/rest/conversations/v1.rb +7 -0
  28. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +7 -0
  29. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  30. data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
  31. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +7 -0
  32. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  33. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +44 -0
  34. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  35. data/lib/twilio-ruby/rest/conversations/v1/user.rb +35 -0
  36. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  37. data/lib/twilio-ruby/rest/insights.rb +6 -0
  38. data/lib/twilio-ruby/rest/insights/v1.rb +7 -0
  39. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +428 -0
  40. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +19 -1
  41. data/lib/twilio-ruby/rest/supersim/v1/sim.rb +29 -0
  42. data/lib/twilio-ruby/rest/supersim/v1/sim/billing_period.rb +231 -0
  43. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
  44. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +3 -1
  45. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +24 -5
  46. data/lib/twilio-ruby/version.rb +1 -1
  47. data/sonar-project.properties +13 -0
  48. metadata +18 -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