twilio-ruby 7.2.1 → 7.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +74 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/call/transcription.rb +5 -599
  5. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +2 -2
  6. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload/data.rb +200 -0
  7. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +22 -1
  8. data/lib/twilio-ruby/rest/assistants/v1/assistant/feedback.rb +303 -0
  9. data/lib/twilio-ruby/rest/assistants/v1/assistant.rb +626 -0
  10. data/lib/twilio-ruby/rest/assistants/v1/knowledge/chunk.rb +229 -0
  11. data/lib/twilio-ruby/rest/assistants/v1/knowledge.rb +593 -0
  12. data/lib/twilio-ruby/rest/assistants/v1/policy.rb +264 -0
  13. data/lib/twilio-ruby/rest/assistants/v1/session/message.rb +264 -0
  14. data/lib/twilio-ruby/rest/assistants/v1/session.rb +328 -0
  15. data/lib/twilio-ruby/rest/assistants/v1/tool.rb +549 -0
  16. data/lib/twilio-ruby/rest/assistants/v1.rb +100 -0
  17. data/lib/twilio-ruby/rest/{preview_iam.rb → assistants.rb} +1 -1
  18. data/lib/twilio-ruby/rest/assistants_base.rb +38 -0
  19. data/lib/twilio-ruby/rest/client.rb +8 -3
  20. data/lib/twilio-ruby/rest/content/v1/content/approval_fetch.rb +11 -11
  21. data/lib/twilio-ruby/rest/content/v1/content.rb +167 -4
  22. data/lib/twilio-ruby/rest/flex_api/v2/flex_user.rb +81 -1
  23. data/lib/twilio-ruby/rest/iam/v1/api_key.rb +270 -0
  24. data/lib/twilio-ruby/rest/iam/v1/get_api_keys.rb +223 -0
  25. data/lib/twilio-ruby/rest/iam/v1/new_api_key.rb +177 -0
  26. data/lib/twilio-ruby/rest/iam/v1.rb +61 -0
  27. data/lib/twilio-ruby/rest/iam.rb +6 -0
  28. data/lib/twilio-ruby/rest/{preview_iam_base.rb → iam_base.rb} +10 -5
  29. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +60 -12
  30. data/lib/twilio-ruby/rest/intelligence/v2/operator_type.rb +1 -1
  31. data/lib/twilio-ruby/rest/intelligence/v2/transcript/sentence.rb +16 -3
  32. data/lib/twilio-ruby/rest/intelligence/v2.rb +1 -1
  33. data/lib/twilio-ruby/rest/marketplace/v1/installed_add_on/installed_add_on_usage.rb +16 -29
  34. data/lib/twilio-ruby/rest/marketplace/v1/module_data_management.rb +46 -20
  35. data/lib/twilio-ruby/rest/marketplace/v1/referral_conversion.rb +199 -0
  36. data/lib/twilio-ruby/rest/marketplace/v1.rb +7 -1
  37. data/lib/twilio-ruby/rest/messaging/v1/external_campaign.rb +4 -1
  38. data/lib/twilio-ruby/rest/messaging/v1/service/channel_sender.rb +40 -0
  39. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in.rb +10 -10
  40. data/lib/twilio-ruby/rest/numbers/v1/porting_port_in_phone_number.rb +24 -17
  41. data/lib/twilio-ruby/rest/numbers/v1/porting_portability.rb +7 -7
  42. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration.rb +3 -3
  43. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_delete.rb +1 -1
  44. data/lib/twilio-ruby/rest/numbers/v1/porting_webhook_configuration_fetch.rb +3 -3
  45. data/lib/twilio-ruby/rest/numbers/v1/signing_request_configuration.rb +96 -0
  46. data/lib/twilio-ruby/rest/numbers/v1.rb +2 -2
  47. data/lib/twilio-ruby/rest/numbers/v2/bundle_clone.rb +277 -0
  48. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +8 -5
  49. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/supporting_document.rb +7 -0
  50. data/lib/twilio-ruby/rest/numbers/v2.rb +15 -0
  51. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +2 -2
  52. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +1 -1
  53. data/lib/twilio-ruby/rest/trusthub/v1/compliance_inquiries.rb +12 -3
  54. data/lib/twilio-ruby/rest/verify/v2/service.rb +4 -4
  55. data/lib/twilio-ruby/version.rb +1 -1
  56. data/twilio-ruby.gemspec +2 -1
  57. metadata +23 -4
@@ -0,0 +1,38 @@
1
+ ##
2
+ # This code was generated by
3
+ # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __
4
+ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/
5
+ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \
6
+ #
7
+ # NOTE: This class is auto generated by OpenAPI Generator.
8
+ # https://openapi-generator.tech
9
+ # Do not edit the class manually.
10
+ # frozen_string_literal: true
11
+ module Twilio
12
+ module REST
13
+ class AssistantsBase < Domain
14
+ ##
15
+ # Initialize assistants domain
16
+ #
17
+ # @param twilio - The twilio client
18
+ #
19
+ def initialize(twilio)
20
+ super(twilio)
21
+ @base_url = "https://assistants.twilio.com"
22
+ @host = "assistants.twilio.com"
23
+ @port = 443
24
+ @v1 = nil
25
+ end
26
+
27
+ def v1
28
+ @v1 ||= Assistants::V1.new self
29
+ end
30
+
31
+ ##
32
+ # Provide a user friendly representation
33
+ def to_s
34
+ '<Twilio::REST::Assistants::V1>';
35
+ end
36
+ end
37
+ end
38
+ end
@@ -27,6 +27,11 @@ module Twilio
27
27
  @api ||= Api.new self
28
28
  end
29
29
  ##
30
+ # Access the Assistants Twilio Domain
31
+ def assistants
32
+ @assistants ||= Assistants.new self
33
+ end
34
+ ##
30
35
  # Access the Bulkexports Twilio Domain
31
36
  def bulkexports
32
37
  @bulkexports ||= Bulkexports.new self
@@ -62,9 +67,9 @@ module Twilio
62
67
  @frontline_api ||= FrontlineApi.new self
63
68
  end
64
69
  ##
65
- # Access the PreviewIam Twilio Domain
66
- def preview_iam
67
- @preview_iam ||= PreviewIam.new self
70
+ # Access the Iam Twilio Domain
71
+ def iam
72
+ @iam ||= Iam.new self
68
73
  end
69
74
  ##
70
75
  # Access the Insights Twilio Domain
@@ -25,10 +25,10 @@ module Twilio
25
25
  # Initialize the ApprovalFetchList
26
26
  # @param [Version] version Version that contains the resource
27
27
  # @return [ApprovalFetchList] ApprovalFetchList
28
- def initialize(version, content_sid: nil)
28
+ def initialize(version, sid: nil)
29
29
  super(version)
30
30
  # Path Solution
31
- @solution = { content_sid: content_sid }
31
+ @solution = { sid: sid }
32
32
 
33
33
 
34
34
  end
@@ -46,14 +46,14 @@ module Twilio
46
46
  ##
47
47
  # Initialize the ApprovalFetchContext
48
48
  # @param [Version] version Version that contains the resource
49
- # @param [String] content_sid The Twilio-provided string that uniquely identifies the Content resource whose approval information to fetch.
49
+ # @param [String] sid The Twilio-provided string that uniquely identifies the Content resource whose approval information to fetch.
50
50
  # @return [ApprovalFetchContext] ApprovalFetchContext
51
- def initialize(version, content_sid)
51
+ def initialize(version, sid)
52
52
  super(version)
53
53
 
54
54
  # Path Solution
55
- @solution = { content_sid: content_sid, }
56
- @uri = "/Content/#{@solution[:content_sid]}/ApprovalRequests"
55
+ @solution = { sid: sid, }
56
+ @uri = "/Content/#{@solution[:sid]}/ApprovalRequests"
57
57
 
58
58
 
59
59
  end
@@ -68,7 +68,7 @@ module Twilio
68
68
  ApprovalFetchInstance.new(
69
69
  @version,
70
70
  payload,
71
- content_sid: @solution[:content_sid],
71
+ sid: @solution[:sid],
72
72
  )
73
73
  end
74
74
 
@@ -107,7 +107,7 @@ module Twilio
107
107
  # @param [Hash] payload Payload response from the API
108
108
  # @return [ApprovalFetchInstance] ApprovalFetchInstance
109
109
  def get_instance(payload)
110
- ApprovalFetchInstance.new(@version, payload, content_sid: @solution[:content_sid])
110
+ ApprovalFetchInstance.new(@version, payload, sid: @solution[:sid])
111
111
  end
112
112
 
113
113
  ##
@@ -126,7 +126,7 @@ module Twilio
126
126
  # resource.
127
127
  # @param [String] sid The SID of the Call resource to fetch.
128
128
  # @return [ApprovalFetchInstance] ApprovalFetchInstance
129
- def initialize(version, payload , content_sid: nil)
129
+ def initialize(version, payload , sid: nil)
130
130
  super(version)
131
131
 
132
132
  # Marshaled Properties
@@ -139,7 +139,7 @@ module Twilio
139
139
 
140
140
  # Context
141
141
  @instance_context = nil
142
- @params = { 'content_sid' => content_sid || @properties['content_sid'] , }
142
+ @params = { 'sid' => sid || @properties['sid'] , }
143
143
  end
144
144
 
145
145
  ##
@@ -148,7 +148,7 @@ module Twilio
148
148
  # @return [ApprovalFetchContext] CallContext for this CallInstance
149
149
  def context
150
150
  unless @instance_context
151
- @instance_context = ApprovalFetchContext.new(@version , @params['content_sid'])
151
+ @instance_context = ApprovalFetchContext.new(@version , @params['sid'])
152
152
  end
153
153
  @instance_context
154
154
  end
@@ -40,14 +40,41 @@ module Twilio
40
40
  # @param [title]: [String]
41
41
  # @param [url]: [String]
42
42
  # @param [phone]: [String]
43
+ # @param [code]: [String]
44
+ attr_accessor :type, :title, :url, :phone, :code
45
+ def initialize(payload)
46
+ @type = payload["type"]
47
+ @title = payload["title"]
48
+ @url = payload["url"]
49
+ @phone = payload["phone"]
50
+ @code = payload["code"]
51
+ end
52
+ def to_json(options = {})
53
+ {
54
+ type: @type,
55
+ title: @title,
56
+ url: @url,
57
+ phone: @phone,
58
+ code: @code,
59
+ }.to_json(options)
60
+ end
61
+ end
62
+
63
+ class CardAction
64
+ # @param [type]: [CardActionType]
65
+ # @param [title]: [String]
66
+ # @param [url]: [String]
67
+ # @param [phone]: [String]
43
68
  # @param [id]: [String]
44
- attr_accessor :type, :title, :url, :phone, :id
69
+ # @param [code]: [String]
70
+ attr_accessor :type, :title, :url, :phone, :id, :code
45
71
  def initialize(payload)
46
72
  @type = payload["type"]
47
73
  @title = payload["title"]
48
74
  @url = payload["url"]
49
75
  @phone = payload["phone"]
50
76
  @id = payload["id"]
77
+ @code = payload["code"]
51
78
  end
52
79
  def to_json(options = {})
53
80
  {
@@ -56,12 +83,13 @@ module Twilio
56
83
  url: @url,
57
84
  phone: @phone,
58
85
  id: @id,
86
+ code: @code,
59
87
  }.to_json(options)
60
88
  end
61
89
  end
62
90
 
63
- class CardAction
64
- # @param [type]: [CardActionType]
91
+ class CarouselAction
92
+ # @param [type]: [CarouselActionType]
65
93
  # @param [title]: [String]
66
94
  # @param [url]: [String]
67
95
  # @param [phone]: [String]
@@ -85,6 +113,28 @@ module Twilio
85
113
  end
86
114
  end
87
115
 
116
+ class CarouselCard
117
+ # @param [title]: [String]
118
+ # @param [body]: [String]
119
+ # @param [media]: [String]
120
+ # @param [actions]: [Array<ContentList.CarouselAction>]
121
+ attr_accessor :title, :body, :media, :actions
122
+ def initialize(payload)
123
+ @title = payload["title"]
124
+ @body = payload["body"]
125
+ @media = payload["media"]
126
+ @actions = payload["actions"]
127
+ end
128
+ def to_json(options = {})
129
+ {
130
+ title: @title,
131
+ body: @body,
132
+ media: @media,
133
+ actions: @actions,
134
+ }.to_json(options)
135
+ end
136
+ end
137
+
88
138
  class CatalogItem
89
139
  # @param [id]: [String]
90
140
  # @param [section_title]: [String]
@@ -135,6 +185,69 @@ module Twilio
135
185
  end
136
186
  end
137
187
 
188
+ class FlowsPage
189
+ # @param [id]: [String]
190
+ # @param [next_page_id]: [String]
191
+ # @param [title]: [String]
192
+ # @param [subtitle]: [String]
193
+ # @param [layout]: [Array<ContentList.FlowsPageComponent>]
194
+ attr_accessor :id, :next_page_id, :title, :subtitle, :layout
195
+ def initialize(payload)
196
+ @id = payload["id"]
197
+ @next_page_id = payload["next_page_id"]
198
+ @title = payload["title"]
199
+ @subtitle = payload["subtitle"]
200
+ @layout = payload["layout"]
201
+ end
202
+ def to_json(options = {})
203
+ {
204
+ id: @id,
205
+ next_page_id: @next_page_id,
206
+ title: @title,
207
+ subtitle: @subtitle,
208
+ layout: @layout,
209
+ }.to_json(options)
210
+ end
211
+ end
212
+
213
+ class FlowsPageComponent
214
+ # @param [label]: [String]
215
+ # @param [type]: [String]
216
+ # @param [text]: [String]
217
+ # @param [options]: [Array<ContentList.FlowsPageComponentSelectItem>]
218
+ attr_accessor :label, :type, :text, :options
219
+ def initialize(payload)
220
+ @label = payload["label"]
221
+ @type = payload["type"]
222
+ @text = payload["text"]
223
+ @options = payload["options"]
224
+ end
225
+ def to_json(options = {})
226
+ {
227
+ label: @label,
228
+ type: @type,
229
+ text: @text,
230
+ options: @options,
231
+ }.to_json(options)
232
+ end
233
+ end
234
+
235
+ class FlowsPageComponentSelectItem
236
+ # @param [id]: [String]
237
+ # @param [title]: [String]
238
+ attr_accessor :id, :title
239
+ def initialize(payload)
240
+ @id = payload["id"]
241
+ @title = payload["title"]
242
+ end
243
+ def to_json(options = {})
244
+ {
245
+ id: @id,
246
+ title: @title,
247
+ }.to_json(options)
248
+ end
249
+ end
250
+
138
251
  class ListItem
139
252
  # @param [id]: [String]
140
253
  # @param [item]: [String]
@@ -211,6 +324,22 @@ module Twilio
211
324
  end
212
325
  end
213
326
 
327
+ class TwilioCarousel
328
+ # @param [body]: [String]
329
+ # @param [cards]: [Array<ContentList.CarouselCard>]
330
+ attr_accessor :body, :cards
331
+ def initialize(payload)
332
+ @body = payload["body"]
333
+ @cards = payload["cards"]
334
+ end
335
+ def to_json(options = {})
336
+ {
337
+ body: @body,
338
+ cards: @cards,
339
+ }.to_json(options)
340
+ end
341
+ end
342
+
214
343
  class TwilioCatalog
215
344
  # @param [title]: [String]
216
345
  # @param [body]: [String]
@@ -239,6 +368,34 @@ module Twilio
239
368
  end
240
369
  end
241
370
 
371
+ class TwilioFlows
372
+ # @param [body]: [String]
373
+ # @param [button_text]: [String]
374
+ # @param [subtitle]: [String]
375
+ # @param [media_url]: [String]
376
+ # @param [pages]: [Array<ContentList.FlowsPage>]
377
+ # @param [type]: [String]
378
+ attr_accessor :body, :button_text, :subtitle, :media_url, :pages, :type
379
+ def initialize(payload)
380
+ @body = payload["body"]
381
+ @button_text = payload["button_text"]
382
+ @subtitle = payload["subtitle"]
383
+ @media_url = payload["media_url"]
384
+ @pages = payload["pages"]
385
+ @type = payload["type"]
386
+ end
387
+ def to_json(options = {})
388
+ {
389
+ body: @body,
390
+ button_text: @button_text,
391
+ subtitle: @subtitle,
392
+ media_url: @media_url,
393
+ pages: @pages,
394
+ type: @type,
395
+ }.to_json(options)
396
+ end
397
+ end
398
+
242
399
  class TwilioListPicker
243
400
  # @param [body]: [String]
244
401
  # @param [button]: [String]
@@ -331,9 +488,11 @@ module Twilio
331
488
  # @param [twilio_quick_reply]: [ContentList.TwilioQuickReply]
332
489
  # @param [twilio_card]: [ContentList.TwilioCard]
333
490
  # @param [twilio_catalog]: [ContentList.TwilioCatalog]
491
+ # @param [twilio_carousel]: [ContentList.TwilioCarousel]
492
+ # @param [twilio_flows]: [ContentList.TwilioFlows]
334
493
  # @param [whatsapp_card]: [ContentList.WhatsappCard]
335
494
  # @param [whatsapp_authentication]: [ContentList.WhatsappAuthentication]
336
- attr_accessor :twilio_text, :twilio_media, :twilio_location, :twilio_list_picker, :twilio_call_to_action, :twilio_quick_reply, :twilio_card, :twilio_catalog, :whatsapp_card, :whatsapp_authentication
495
+ attr_accessor :twilio_text, :twilio_media, :twilio_location, :twilio_list_picker, :twilio_call_to_action, :twilio_quick_reply, :twilio_card, :twilio_catalog, :twilio_carousel, :twilio_flows, :whatsapp_card, :whatsapp_authentication
337
496
  def initialize(payload)
338
497
  @twilio_text = payload["twilio_text"]
339
498
  @twilio_media = payload["twilio_media"]
@@ -343,6 +502,8 @@ module Twilio
343
502
  @twilio_quick_reply = payload["twilio_quick_reply"]
344
503
  @twilio_card = payload["twilio_card"]
345
504
  @twilio_catalog = payload["twilio_catalog"]
505
+ @twilio_carousel = payload["twilio_carousel"]
506
+ @twilio_flows = payload["twilio_flows"]
346
507
  @whatsapp_card = payload["whatsapp_card"]
347
508
  @whatsapp_authentication = payload["whatsapp_authentication"]
348
509
  end
@@ -356,6 +517,8 @@ module Twilio
356
517
  twilio_quick_reply: @twilio_quick_reply,
357
518
  twilio_card: @twilio_card,
358
519
  twilio_catalog: @twilio_catalog,
520
+ twilio_carousel: @twilio_carousel,
521
+ twilio_flows: @twilio_flows,
359
522
  whatsapp_card: @whatsapp_card,
360
523
  whatsapp_authentication: @whatsapp_authentication,
361
524
  }.to_json(options)
@@ -45,7 +45,7 @@ module Twilio
45
45
  # Initialize the FlexUserContext
46
46
  # @param [Version] version Version that contains the resource
47
47
  # @param [String] instance_sid The unique ID created by Twilio to identify a Flex instance.
48
- # @param [String] flex_user_sid The unique id for the flex user to be retrieved.
48
+ # @param [String] flex_user_sid The unique id for the flex user.
49
49
  # @return [FlexUserContext] FlexUserContext
50
50
  def initialize(version, instance_sid, flex_user_sid)
51
51
  super(version)
@@ -72,6 +72,44 @@ module Twilio
72
72
  )
73
73
  end
74
74
 
75
+ ##
76
+ # Update the FlexUserInstance
77
+ # @param [String] first_name First name of the User.
78
+ # @param [String] last_name Last name of the User.
79
+ # @param [String] email Email of the User.
80
+ # @param [String] friendly_name Friendly name of the User.
81
+ # @param [String] user_sid The unique SID identifier of the Twilio Unified User.
82
+ # @param [String] locale The locale preference of the user.
83
+ # @return [FlexUserInstance] Updated FlexUserInstance
84
+ def update(
85
+ first_name: :unset,
86
+ last_name: :unset,
87
+ email: :unset,
88
+ friendly_name: :unset,
89
+ user_sid: :unset,
90
+ locale: :unset
91
+ )
92
+
93
+ data = Twilio::Values.of({
94
+ 'FirstName' => first_name,
95
+ 'LastName' => last_name,
96
+ 'Email' => email,
97
+ 'FriendlyName' => friendly_name,
98
+ 'UserSid' => user_sid,
99
+ 'Locale' => locale,
100
+ })
101
+
102
+ headers = Twilio::Values.of({'Content-Type' => 'application/x-www-form-urlencoded', })
103
+
104
+ payload = @version.update('POST', @uri, data: data, headers: headers)
105
+ FlexUserInstance.new(
106
+ @version,
107
+ payload,
108
+ instance_sid: @solution[:instance_sid],
109
+ flex_user_sid: @solution[:flex_user_sid],
110
+ )
111
+ end
112
+
75
113
 
76
114
  ##
77
115
  # Provide a user friendly representation
@@ -143,6 +181,8 @@ module Twilio
143
181
  'username' => payload['username'],
144
182
  'email' => payload['email'],
145
183
  'friendly_name' => payload['friendly_name'],
184
+ 'locale' => payload['locale'],
185
+ 'roles' => payload['roles'],
146
186
  'created_date' => Twilio.deserialize_iso8601_datetime(payload['created_date']),
147
187
  'updated_date' => Twilio.deserialize_iso8601_datetime(payload['updated_date']),
148
188
  'version' => payload['version'] == nil ? payload['version'] : payload['version'].to_i,
@@ -237,6 +277,18 @@ module Twilio
237
277
  @properties['friendly_name']
238
278
  end
239
279
 
280
+ ##
281
+ # @return [String] The locale preference of the user.
282
+ def locale
283
+ @properties['locale']
284
+ end
285
+
286
+ ##
287
+ # @return [Array<String>] The roles of the user.
288
+ def roles
289
+ @properties['roles']
290
+ end
291
+
240
292
  ##
241
293
  # @return [Time] The date that this user was created, given in ISO 8601 format.
242
294
  def created_date
@@ -269,6 +321,34 @@ module Twilio
269
321
  context.fetch
270
322
  end
271
323
 
324
+ ##
325
+ # Update the FlexUserInstance
326
+ # @param [String] first_name First name of the User.
327
+ # @param [String] last_name Last name of the User.
328
+ # @param [String] email Email of the User.
329
+ # @param [String] friendly_name Friendly name of the User.
330
+ # @param [String] user_sid The unique SID identifier of the Twilio Unified User.
331
+ # @param [String] locale The locale preference of the user.
332
+ # @return [FlexUserInstance] Updated FlexUserInstance
333
+ def update(
334
+ first_name: :unset,
335
+ last_name: :unset,
336
+ email: :unset,
337
+ friendly_name: :unset,
338
+ user_sid: :unset,
339
+ locale: :unset
340
+ )
341
+
342
+ context.update(
343
+ first_name: first_name,
344
+ last_name: last_name,
345
+ email: email,
346
+ friendly_name: friendly_name,
347
+ user_sid: user_sid,
348
+ locale: locale,
349
+ )
350
+ end
351
+
272
352
  ##
273
353
  # Provide a user friendly representation
274
354
  def to_s