twilio-ruby 5.14.1 → 5.15.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +33 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +2 -1
  5. data/lib/twilio-ruby/rest/authy.rb +55 -0
  6. data/lib/twilio-ruby/rest/authy/v1.rb +59 -0
  7. data/lib/twilio-ruby/rest/authy/v1/form.rb +190 -0
  8. data/lib/twilio-ruby/rest/authy/v1/service.rb +378 -0
  9. data/lib/twilio-ruby/rest/authy/v1/service/entity.rb +372 -0
  10. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor.rb +474 -0
  11. data/lib/twilio-ruby/rest/authy/v1/service/entity/factor/challenge.rb +405 -0
  12. data/lib/twilio-ruby/rest/autopilot.rb +47 -0
  13. data/lib/twilio-ruby/rest/autopilot/v1.rb +43 -0
  14. data/lib/twilio-ruby/rest/autopilot/v1/assistant.rb +606 -0
  15. data/lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb +215 -0
  16. data/lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb +205 -0
  17. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb +417 -0
  18. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +393 -0
  19. data/lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb +390 -0
  20. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +443 -0
  21. data/lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb +215 -0
  22. data/lib/twilio-ruby/rest/{preview/understand/assistant/intent.rb → autopilot/v1/assistant/task.rb} +91 -84
  23. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb +377 -0
  24. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +442 -0
  25. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb +244 -0
  26. data/lib/twilio-ruby/rest/{preview/understand/assistant/intent/intent_statistics.rb → autopilot/v1/assistant/task/task_statistics.rb} +49 -51
  27. data/lib/twilio-ruby/rest/chat/v1/service.rb +1 -1
  28. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +12 -6
  29. data/lib/twilio-ruby/rest/client.rb +14 -0
  30. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +1 -1
  31. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +12 -6
  32. data/lib/twilio-ruby/rest/preview/understand.rb +2 -1
  33. data/lib/twilio-ruby/rest/preview/understand/assistant.rb +59 -29
  34. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +17 -13
  35. data/lib/twilio-ruby/rest/preview/understand/assistant/style_sheet.rb +215 -0
  36. data/lib/twilio-ruby/rest/preview/understand/assistant/task.rb +505 -0
  37. data/lib/twilio-ruby/rest/preview/understand/assistant/{intent → task}/field.rb +25 -25
  38. data/lib/twilio-ruby/rest/preview/understand/assistant/{intent → task}/sample.rb +30 -30
  39. data/lib/twilio-ruby/rest/preview/understand/assistant/{intent/intent_actions.rb → task/task_actions.rb} +50 -54
  40. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +224 -0
  41. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +7 -7
  42. data/lib/twilio-ruby/rest/verify/v1/service.rb +45 -6
  43. data/lib/twilio-ruby/rest/verify/v1/service/verification.rb +9 -2
  44. data/lib/twilio-ruby/rest/wireless/v1/command.rb +32 -5
  45. data/lib/twilio-ruby/twiml/voice_response.rb +66 -5
  46. data/lib/twilio-ruby/version.rb +1 -1
  47. data/spec/integration/api/v2010/account/call/recording_spec.rb +3 -3
  48. data/spec/integration/api/v2010/account/conference/participant_spec.rb +42 -1
  49. data/spec/integration/api/v2010/account/conference/recording_spec.rb +2 -2
  50. data/spec/integration/authy/v1/form_spec.rb +48 -0
  51. data/spec/integration/authy/v1/service/entity/factor/challenge_spec.rb +267 -0
  52. data/spec/integration/authy/v1/service/entity/factor_spec.rb +269 -0
  53. data/spec/integration/authy/v1/service/entity_spec.rb +201 -0
  54. data/spec/integration/authy/v1/service_spec.rb +227 -0
  55. data/spec/integration/autopilot/v1/assistant/defaults_spec.rb +81 -0
  56. data/spec/integration/autopilot/v1/assistant/dialogue_spec.rb +47 -0
  57. data/spec/integration/autopilot/v1/assistant/field_type/field_value_spec.rb +210 -0
  58. data/spec/integration/autopilot/v1/assistant/field_type_spec.rb +246 -0
  59. data/spec/integration/autopilot/v1/assistant/model_build_spec.rb +241 -0
  60. data/spec/integration/autopilot/v1/assistant/query_spec.rb +306 -0
  61. data/spec/integration/autopilot/v1/assistant/style_sheet_spec.rb +81 -0
  62. data/spec/integration/autopilot/v1/assistant/task/field_spec.rb +207 -0
  63. data/spec/integration/autopilot/v1/assistant/task/sample_spec.rb +253 -0
  64. data/spec/integration/autopilot/v1/assistant/task/task_actions_spec.rb +87 -0
  65. data/spec/integration/autopilot/v1/assistant/task/task_statistics_spec.rb +50 -0
  66. data/spec/integration/autopilot/v1/assistant/task_spec.rb +262 -0
  67. data/spec/integration/autopilot/v1/assistant_spec.rb +270 -0
  68. data/spec/integration/preview/understand/assistant/query_spec.rb +8 -8
  69. data/spec/integration/preview/understand/assistant/style_sheet_spec.rb +81 -0
  70. data/spec/integration/preview/understand/assistant/{intent → task}/field_spec.rb +23 -23
  71. data/spec/integration/preview/understand/assistant/{intent → task}/sample_spec.rb +28 -28
  72. data/spec/integration/preview/understand/assistant/{intent/intent_actions_spec.rb → task/task_actions_spec.rb} +15 -15
  73. data/spec/integration/preview/understand/assistant/{intent/intent_statistics_spec.rb → task/task_statistics_spec.rb} +6 -6
  74. data/spec/integration/preview/understand/assistant/{intent_spec.rb → task_spec.rb} +53 -49
  75. data/spec/integration/preview/understand/assistant_spec.rb +12 -8
  76. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +3 -7
  77. data/spec/integration/verify/v1/service_spec.rb +30 -0
  78. data/spec/integration/wireless/v1/command_spec.rb +99 -2
  79. data/spec/twiml/voice_response_spec.rb +25 -2
  80. metadata +78 -17
@@ -8,27 +8,27 @@
8
8
 
9
9
  module Twilio
10
10
  module REST
11
- class Preview < Domain
12
- class Understand < Version
11
+ class Autopilot < Domain
12
+ class V1 < Version
13
13
  class AssistantContext < InstanceContext
14
14
  ##
15
15
  # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
16
- class IntentList < ListResource
16
+ class TaskList < ListResource
17
17
  ##
18
- # Initialize the IntentList
18
+ # Initialize the TaskList
19
19
  # @param [Version] version Version that contains the resource
20
20
  # @param [String] assistant_sid The unique ID of the Assistant.
21
- # @return [IntentList] IntentList
21
+ # @return [TaskList] TaskList
22
22
  def initialize(version, assistant_sid: nil)
23
23
  super(version)
24
24
 
25
25
  # Path Solution
26
26
  @solution = {assistant_sid: assistant_sid}
27
- @uri = "/Assistants/#{@solution[:assistant_sid]}/Intents"
27
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/Tasks"
28
28
  end
29
29
 
30
30
  ##
31
- # Lists IntentInstance records from the API as a list.
31
+ # Lists TaskInstance records from the API as a list.
32
32
  # Unlike stream(), this operation is eager and will load `limit` records into
33
33
  # memory before returning.
34
34
  # @param [Integer] limit Upper limit for the number of records to return. stream()
@@ -43,7 +43,7 @@ module Twilio
43
43
  end
44
44
 
45
45
  ##
46
- # Streams IntentInstance records from the API as an Enumerable.
46
+ # Streams TaskInstance records from the API as an Enumerable.
47
47
  # This operation lazily loads records as efficiently as possible until the limit
48
48
  # is reached.
49
49
  # @param [Integer] limit Upper limit for the number of records to return. stream()
@@ -62,7 +62,7 @@ module Twilio
62
62
  end
63
63
 
64
64
  ##
65
- # When passed a block, yields IntentInstance records from the API.
65
+ # When passed a block, yields TaskInstance records from the API.
66
66
  # This operation lazily loads records as efficiently as possible until the limit
67
67
  # is reached.
68
68
  def each
@@ -76,12 +76,12 @@ module Twilio
76
76
  end
77
77
 
78
78
  ##
79
- # Retrieve a single page of IntentInstance records from the API.
79
+ # Retrieve a single page of TaskInstance records from the API.
80
80
  # Request is executed immediately.
81
81
  # @param [String] page_token PageToken provided by the API
82
82
  # @param [Integer] page_number Page Number, this value is simply for client state
83
83
  # @param [Integer] page_size Number of records to return, defaults to 50
84
- # @return [Page] Page of IntentInstance
84
+ # @return [Page] Page of TaskInstance
85
85
  def page(page_token: :unset, page_number: :unset, page_size: :unset)
86
86
  params = Twilio::Values.of({
87
87
  'PageToken' => page_token,
@@ -93,36 +93,38 @@ module Twilio
93
93
  @uri,
94
94
  params
95
95
  )
96
- IntentPage.new(@version, response, @solution)
96
+ TaskPage.new(@version, response, @solution)
97
97
  end
98
98
 
99
99
  ##
100
- # Retrieve a single page of IntentInstance records from the API.
100
+ # Retrieve a single page of TaskInstance records from the API.
101
101
  # Request is executed immediately.
102
102
  # @param [String] target_url API-generated URL for the requested results page
103
- # @return [Page] Page of IntentInstance
103
+ # @return [Page] Page of TaskInstance
104
104
  def get_page(target_url)
105
105
  response = @version.domain.request(
106
106
  'GET',
107
107
  target_url
108
108
  )
109
- IntentPage.new(@version, response, @solution)
109
+ TaskPage.new(@version, response, @solution)
110
110
  end
111
111
 
112
112
  ##
113
- # Retrieve a single page of IntentInstance records from the API.
113
+ # Retrieve a single page of TaskInstance records from the API.
114
114
  # Request is executed immediately.
115
115
  # @param [String] unique_name A user-provided string that uniquely identifies this
116
116
  # resource as an alternative to the sid. Unique up to 64 characters long.
117
117
  # @param [String] friendly_name A user-provided string that identifies this
118
- # resource. It is non-unique and can up to 255 characters long.
118
+ # resource. It is non-unique and can be up to 255 characters long.
119
119
  # @param [Hash] actions The actions
120
- # @return [IntentInstance] Newly created IntentInstance
121
- def create(unique_name: nil, friendly_name: :unset, actions: :unset)
120
+ # @param [String] actions_url The actions_url
121
+ # @return [TaskInstance] Newly created TaskInstance
122
+ def create(unique_name: nil, friendly_name: :unset, actions: :unset, actions_url: :unset)
122
123
  data = Twilio::Values.of({
123
124
  'UniqueName' => unique_name,
124
125
  'FriendlyName' => friendly_name,
125
126
  'Actions' => Twilio.serialize_object(actions),
127
+ 'ActionsUrl' => actions_url,
126
128
  })
127
129
 
128
130
  payload = @version.create(
@@ -131,25 +133,25 @@ module Twilio
131
133
  data: data
132
134
  )
133
135
 
134
- IntentInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], )
136
+ TaskInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], )
135
137
  end
136
138
 
137
139
  ##
138
140
  # Provide a user friendly representation
139
141
  def to_s
140
- '#<Twilio.Preview.Understand.IntentList>'
142
+ '#<Twilio.Autopilot.V1.TaskList>'
141
143
  end
142
144
  end
143
145
 
144
146
  ##
145
147
  # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
146
- class IntentPage < Page
148
+ class TaskPage < Page
147
149
  ##
148
- # Initialize the IntentPage
150
+ # Initialize the TaskPage
149
151
  # @param [Version] version Version that contains the resource
150
152
  # @param [Response] response Response from the API
151
153
  # @param [Hash] solution Path solution for the resource
152
- # @return [IntentPage] IntentPage
154
+ # @return [TaskPage] TaskPage
153
155
  def initialize(version, response, solution)
154
156
  super(version, response)
155
157
 
@@ -158,46 +160,46 @@ module Twilio
158
160
  end
159
161
 
160
162
  ##
161
- # Build an instance of IntentInstance
163
+ # Build an instance of TaskInstance
162
164
  # @param [Hash] payload Payload response from the API
163
- # @return [IntentInstance] IntentInstance
165
+ # @return [TaskInstance] TaskInstance
164
166
  def get_instance(payload)
165
- IntentInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], )
167
+ TaskInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], )
166
168
  end
167
169
 
168
170
  ##
169
171
  # Provide a user friendly representation
170
172
  def to_s
171
- '<Twilio.Preview.Understand.IntentPage>'
173
+ '<Twilio.Autopilot.V1.TaskPage>'
172
174
  end
173
175
  end
174
176
 
175
177
  ##
176
178
  # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
177
- class IntentContext < InstanceContext
179
+ class TaskContext < InstanceContext
178
180
  ##
179
- # Initialize the IntentContext
181
+ # Initialize the TaskContext
180
182
  # @param [Version] version Version that contains the resource
181
183
  # @param [String] assistant_sid The assistant_sid
182
184
  # @param [String] sid The sid
183
- # @return [IntentContext] IntentContext
185
+ # @return [TaskContext] TaskContext
184
186
  def initialize(version, assistant_sid, sid)
185
187
  super(version)
186
188
 
187
189
  # Path Solution
188
190
  @solution = {assistant_sid: assistant_sid, sid: sid, }
189
- @uri = "/Assistants/#{@solution[:assistant_sid]}/Intents/#{@solution[:sid]}"
191
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/Tasks/#{@solution[:sid]}"
190
192
 
191
193
  # Dependents
192
194
  @fields = nil
193
195
  @samples = nil
194
- @intent_actions = nil
196
+ @task_actions = nil
195
197
  @statistics = nil
196
198
  end
197
199
 
198
200
  ##
199
- # Fetch a IntentInstance
200
- # @return [IntentInstance] Fetched IntentInstance
201
+ # Fetch a TaskInstance
202
+ # @return [TaskInstance] Fetched TaskInstance
201
203
  def fetch
202
204
  params = Twilio::Values.of({})
203
205
 
@@ -207,27 +209,24 @@ module Twilio
207
209
  params,
208
210
  )
209
211
 
210
- IntentInstance.new(
211
- @version,
212
- payload,
213
- assistant_sid: @solution[:assistant_sid],
214
- sid: @solution[:sid],
215
- )
212
+ TaskInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], sid: @solution[:sid], )
216
213
  end
217
214
 
218
215
  ##
219
- # Update the IntentInstance
216
+ # Update the TaskInstance
220
217
  # @param [String] friendly_name A user-provided string that identifies this
221
- # resource. It is non-unique and can up to 255 characters long.
218
+ # resource. It is non-unique and can be up to 255 characters long.
222
219
  # @param [String] unique_name A user-provided string that uniquely identifies this
223
220
  # resource as an alternative to the sid. Unique up to 64 characters long.
224
221
  # @param [Hash] actions The actions
225
- # @return [IntentInstance] Updated IntentInstance
226
- def update(friendly_name: :unset, unique_name: :unset, actions: :unset)
222
+ # @param [String] actions_url The actions_url
223
+ # @return [TaskInstance] Updated TaskInstance
224
+ def update(friendly_name: :unset, unique_name: :unset, actions: :unset, actions_url: :unset)
227
225
  data = Twilio::Values.of({
228
226
  'FriendlyName' => friendly_name,
229
227
  'UniqueName' => unique_name,
230
228
  'Actions' => Twilio.serialize_object(actions),
229
+ 'ActionsUrl' => actions_url,
231
230
  })
232
231
 
233
232
  payload = @version.update(
@@ -236,16 +235,11 @@ module Twilio
236
235
  data: data,
237
236
  )
238
237
 
239
- IntentInstance.new(
240
- @version,
241
- payload,
242
- assistant_sid: @solution[:assistant_sid],
243
- sid: @solution[:sid],
244
- )
238
+ TaskInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], sid: @solution[:sid], )
245
239
  end
246
240
 
247
241
  ##
248
- # Deletes the IntentInstance
242
+ # Deletes the TaskInstance
249
243
  # @return [Boolean] true if delete succeeds, true otherwise
250
244
  def delete
251
245
  @version.delete('delete', @uri)
@@ -266,7 +260,7 @@ module Twilio
266
260
  @fields = FieldList.new(
267
261
  @version,
268
262
  assistant_sid: @solution[:assistant_sid],
269
- intent_sid: @solution[:sid],
263
+ task_sid: @solution[:sid],
270
264
  )
271
265
  end
272
266
 
@@ -288,7 +282,7 @@ module Twilio
288
282
  @samples = SampleList.new(
289
283
  @version,
290
284
  assistant_sid: @solution[:assistant_sid],
291
- intent_sid: @solution[:sid],
285
+ task_sid: @solution[:sid],
292
286
  )
293
287
  end
294
288
 
@@ -296,39 +290,39 @@ module Twilio
296
290
  end
297
291
 
298
292
  ##
299
- # Access the intent_actions
300
- # @return [IntentActionsList]
301
- # @return [IntentActionsContext]
302
- def intent_actions
303
- IntentActionsContext.new(@version, @solution[:assistant_sid], @solution[:sid], )
293
+ # Access the task_actions
294
+ # @return [TaskActionsList]
295
+ # @return [TaskActionsContext]
296
+ def task_actions
297
+ TaskActionsContext.new(@version, @solution[:assistant_sid], @solution[:sid], )
304
298
  end
305
299
 
306
300
  ##
307
301
  # Access the statistics
308
- # @return [IntentStatisticsList]
309
- # @return [IntentStatisticsContext]
302
+ # @return [TaskStatisticsList]
303
+ # @return [TaskStatisticsContext]
310
304
  def statistics
311
- IntentStatisticsContext.new(@version, @solution[:assistant_sid], @solution[:sid], )
305
+ TaskStatisticsContext.new(@version, @solution[:assistant_sid], @solution[:sid], )
312
306
  end
313
307
 
314
308
  ##
315
309
  # Provide a user friendly representation
316
310
  def to_s
317
311
  context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
318
- "#<Twilio.Preview.Understand.IntentContext #{context}>"
312
+ "#<Twilio.Autopilot.V1.TaskContext #{context}>"
319
313
  end
320
314
  end
321
315
 
322
316
  ##
323
317
  # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
324
- class IntentInstance < InstanceResource
318
+ class TaskInstance < InstanceResource
325
319
  ##
326
- # Initialize the IntentInstance
320
+ # Initialize the TaskInstance
327
321
  # @param [Version] version Version that contains the resource
328
322
  # @param [Hash] payload payload that contains response from Twilio
329
323
  # @param [String] assistant_sid The unique ID of the Assistant.
330
324
  # @param [String] sid The sid
331
- # @return [IntentInstance] IntentInstance
325
+ # @return [TaskInstance] TaskInstance
332
326
  def initialize(version, payload, assistant_sid: nil, sid: nil)
333
327
  super(version)
334
328
 
@@ -342,6 +336,7 @@ module Twilio
342
336
  'assistant_sid' => payload['assistant_sid'],
343
337
  'sid' => payload['sid'],
344
338
  'unique_name' => payload['unique_name'],
339
+ 'actions_url' => payload['actions_url'],
345
340
  'url' => payload['url'],
346
341
  }
347
342
 
@@ -353,16 +348,16 @@ module Twilio
353
348
  ##
354
349
  # Generate an instance context for the instance, the context is capable of
355
350
  # performing various actions. All instance actions are proxied to the context
356
- # @return [IntentContext] IntentContext for this IntentInstance
351
+ # @return [TaskContext] TaskContext for this TaskInstance
357
352
  def context
358
353
  unless @instance_context
359
- @instance_context = IntentContext.new(@version, @params['assistant_sid'], @params['sid'], )
354
+ @instance_context = TaskContext.new(@version, @params['assistant_sid'], @params['sid'], )
360
355
  end
361
356
  @instance_context
362
357
  end
363
358
 
364
359
  ##
365
- # @return [String] The unique ID of the Account that created this Intent.
360
+ # @return [String] The unique ID of the Account that created this Task.
366
361
  def account_sid
367
362
  @properties['account_sid']
368
363
  end
@@ -380,7 +375,7 @@ module Twilio
380
375
  end
381
376
 
382
377
  ##
383
- # @return [String] A user-provided string that identifies this resource. It is non-unique and can up to 255 characters long.
378
+ # @return [String] A user-provided string that identifies this resource. It is non-unique and can be up to 255 characters long.
384
379
  def friendly_name
385
380
  @properties['friendly_name']
386
381
  end
@@ -409,6 +404,12 @@ module Twilio
409
404
  @properties['unique_name']
410
405
  end
411
406
 
407
+ ##
408
+ # @return [String] User-provided HTTP endpoint where the assistant can fetch actions.
409
+ def actions_url
410
+ @properties['actions_url']
411
+ end
412
+
412
413
  ##
413
414
  # @return [String] The url
414
415
  def url
@@ -416,26 +417,32 @@ module Twilio
416
417
  end
417
418
 
418
419
  ##
419
- # Fetch a IntentInstance
420
- # @return [IntentInstance] Fetched IntentInstance
420
+ # Fetch a TaskInstance
421
+ # @return [TaskInstance] Fetched TaskInstance
421
422
  def fetch
422
423
  context.fetch
423
424
  end
424
425
 
425
426
  ##
426
- # Update the IntentInstance
427
+ # Update the TaskInstance
427
428
  # @param [String] friendly_name A user-provided string that identifies this
428
- # resource. It is non-unique and can up to 255 characters long.
429
+ # resource. It is non-unique and can be up to 255 characters long.
429
430
  # @param [String] unique_name A user-provided string that uniquely identifies this
430
431
  # resource as an alternative to the sid. Unique up to 64 characters long.
431
432
  # @param [Hash] actions The actions
432
- # @return [IntentInstance] Updated IntentInstance
433
- def update(friendly_name: :unset, unique_name: :unset, actions: :unset)
434
- context.update(friendly_name: friendly_name, unique_name: unique_name, actions: actions, )
433
+ # @param [String] actions_url The actions_url
434
+ # @return [TaskInstance] Updated TaskInstance
435
+ def update(friendly_name: :unset, unique_name: :unset, actions: :unset, actions_url: :unset)
436
+ context.update(
437
+ friendly_name: friendly_name,
438
+ unique_name: unique_name,
439
+ actions: actions,
440
+ actions_url: actions_url,
441
+ )
435
442
  end
436
443
 
437
444
  ##
438
- # Deletes the IntentInstance
445
+ # Deletes the TaskInstance
439
446
  # @return [Boolean] true if delete succeeds, true otherwise
440
447
  def delete
441
448
  context.delete
@@ -456,10 +463,10 @@ module Twilio
456
463
  end
457
464
 
458
465
  ##
459
- # Access the intent_actions
460
- # @return [intent_actions] intent_actions
461
- def intent_actions
462
- context.intent_actions
466
+ # Access the task_actions
467
+ # @return [task_actions] task_actions
468
+ def task_actions
469
+ context.task_actions
463
470
  end
464
471
 
465
472
  ##
@@ -473,14 +480,14 @@ module Twilio
473
480
  # Provide a user friendly representation
474
481
  def to_s
475
482
  values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
476
- "<Twilio.Preview.Understand.IntentInstance #{values}>"
483
+ "<Twilio.Autopilot.V1.TaskInstance #{values}>"
477
484
  end
478
485
 
479
486
  ##
480
487
  # Provide a detailed, user friendly representation
481
488
  def inspect
482
489
  values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
483
- "<Twilio.Preview.Understand.IntentInstance #{values}>"
490
+ "<Twilio.Autopilot.V1.TaskInstance #{values}>"
484
491
  end
485
492
  end
486
493
  end
@@ -0,0 +1,377 @@
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 Autopilot < Domain
12
+ class V1 < Version
13
+ class AssistantContext < InstanceContext
14
+ class TaskContext < InstanceContext
15
+ ##
16
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
17
+ class FieldList < ListResource
18
+ ##
19
+ # Initialize the FieldList
20
+ # @param [Version] version Version that contains the resource
21
+ # @param [String] assistant_sid The unique ID of the parent Assistant.
22
+ # @param [String] task_sid The unique ID of the Task associated with this Field.
23
+ # @return [FieldList] FieldList
24
+ def initialize(version, assistant_sid: nil, task_sid: nil)
25
+ super(version)
26
+
27
+ # Path Solution
28
+ @solution = {assistant_sid: assistant_sid, task_sid: task_sid}
29
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/Tasks/#{@solution[:task_sid]}/Fields"
30
+ end
31
+
32
+ ##
33
+ # Lists FieldInstance records from the API as a list.
34
+ # Unlike stream(), this operation is eager and will load `limit` records into
35
+ # memory before returning.
36
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
37
+ # guarantees to never return more than limit. Default is no limit
38
+ # @param [Integer] page_size Number of records to fetch per request, when
39
+ # not set will use the default value of 50 records. If no page_size is defined
40
+ # but a limit is defined, stream() will attempt to read the limit with the most
41
+ # efficient page size, i.e. min(limit, 1000)
42
+ # @return [Array] Array of up to limit results
43
+ def list(limit: nil, page_size: nil)
44
+ self.stream(limit: limit, page_size: page_size).entries
45
+ end
46
+
47
+ ##
48
+ # Streams FieldInstance records from the API as an Enumerable.
49
+ # This operation lazily loads records as efficiently as possible until the limit
50
+ # is reached.
51
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
52
+ # guarantees to never return more than limit. Default is no limit.
53
+ # @param [Integer] page_size Number of records to fetch per request, when
54
+ # not set will use the default value of 50 records. If no page_size is defined
55
+ # but a limit is defined, stream() will attempt to read the limit with the most
56
+ # efficient page size, i.e. min(limit, 1000)
57
+ # @return [Enumerable] Enumerable that will yield up to limit results
58
+ def stream(limit: nil, page_size: nil)
59
+ limits = @version.read_limits(limit, page_size)
60
+
61
+ page = self.page(page_size: limits[:page_size], )
62
+
63
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
64
+ end
65
+
66
+ ##
67
+ # When passed a block, yields FieldInstance records from the API.
68
+ # This operation lazily loads records as efficiently as possible until the limit
69
+ # is reached.
70
+ def each
71
+ limits = @version.read_limits
72
+
73
+ page = self.page(page_size: limits[:page_size], )
74
+
75
+ @version.stream(page,
76
+ limit: limits[:limit],
77
+ page_limit: limits[:page_limit]).each {|x| yield x}
78
+ end
79
+
80
+ ##
81
+ # Retrieve a single page of FieldInstance records from the API.
82
+ # Request is executed immediately.
83
+ # @param [String] page_token PageToken provided by the API
84
+ # @param [Integer] page_number Page Number, this value is simply for client state
85
+ # @param [Integer] page_size Number of records to return, defaults to 50
86
+ # @return [Page] Page of FieldInstance
87
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
88
+ params = Twilio::Values.of({
89
+ 'PageToken' => page_token,
90
+ 'Page' => page_number,
91
+ 'PageSize' => page_size,
92
+ })
93
+ response = @version.page(
94
+ 'GET',
95
+ @uri,
96
+ params
97
+ )
98
+ FieldPage.new(@version, response, @solution)
99
+ end
100
+
101
+ ##
102
+ # Retrieve a single page of FieldInstance records from the API.
103
+ # Request is executed immediately.
104
+ # @param [String] target_url API-generated URL for the requested results page
105
+ # @return [Page] Page of FieldInstance
106
+ def get_page(target_url)
107
+ response = @version.domain.request(
108
+ 'GET',
109
+ target_url
110
+ )
111
+ FieldPage.new(@version, response, @solution)
112
+ end
113
+
114
+ ##
115
+ # Retrieve a single page of FieldInstance records from the API.
116
+ # Request is executed immediately.
117
+ # @param [String] field_type The unique name or sid of the FieldType. It can be
118
+ # any [Built-in Field
119
+ # Type](https://www.twilio.com/docs/assistant/api/built-in-field-types) or the
120
+ # unique_name or the Field Type sid of a custom Field Type.
121
+ # @param [String] unique_name A user-provided string that uniquely identifies this
122
+ # resource as an alternative to the sid. Unique up to 64 characters long.
123
+ # @return [FieldInstance] Newly created FieldInstance
124
+ def create(field_type: nil, unique_name: nil)
125
+ data = Twilio::Values.of({'FieldType' => field_type, 'UniqueName' => unique_name, })
126
+
127
+ payload = @version.create(
128
+ 'POST',
129
+ @uri,
130
+ data: data
131
+ )
132
+
133
+ FieldInstance.new(
134
+ @version,
135
+ payload,
136
+ assistant_sid: @solution[:assistant_sid],
137
+ task_sid: @solution[:task_sid],
138
+ )
139
+ end
140
+
141
+ ##
142
+ # Provide a user friendly representation
143
+ def to_s
144
+ '#<Twilio.Autopilot.V1.FieldList>'
145
+ end
146
+ end
147
+
148
+ ##
149
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
150
+ class FieldPage < Page
151
+ ##
152
+ # Initialize the FieldPage
153
+ # @param [Version] version Version that contains the resource
154
+ # @param [Response] response Response from the API
155
+ # @param [Hash] solution Path solution for the resource
156
+ # @return [FieldPage] FieldPage
157
+ def initialize(version, response, solution)
158
+ super(version, response)
159
+
160
+ # Path Solution
161
+ @solution = solution
162
+ end
163
+
164
+ ##
165
+ # Build an instance of FieldInstance
166
+ # @param [Hash] payload Payload response from the API
167
+ # @return [FieldInstance] FieldInstance
168
+ def get_instance(payload)
169
+ FieldInstance.new(
170
+ @version,
171
+ payload,
172
+ assistant_sid: @solution[:assistant_sid],
173
+ task_sid: @solution[:task_sid],
174
+ )
175
+ end
176
+
177
+ ##
178
+ # Provide a user friendly representation
179
+ def to_s
180
+ '<Twilio.Autopilot.V1.FieldPage>'
181
+ end
182
+ end
183
+
184
+ ##
185
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
186
+ class FieldContext < InstanceContext
187
+ ##
188
+ # Initialize the FieldContext
189
+ # @param [Version] version Version that contains the resource
190
+ # @param [String] assistant_sid The assistant_sid
191
+ # @param [String] task_sid The task_sid
192
+ # @param [String] sid The sid
193
+ # @return [FieldContext] FieldContext
194
+ def initialize(version, assistant_sid, task_sid, sid)
195
+ super(version)
196
+
197
+ # Path Solution
198
+ @solution = {assistant_sid: assistant_sid, task_sid: task_sid, sid: sid, }
199
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/Tasks/#{@solution[:task_sid]}/Fields/#{@solution[:sid]}"
200
+ end
201
+
202
+ ##
203
+ # Fetch a FieldInstance
204
+ # @return [FieldInstance] Fetched FieldInstance
205
+ def fetch
206
+ params = Twilio::Values.of({})
207
+
208
+ payload = @version.fetch(
209
+ 'GET',
210
+ @uri,
211
+ params,
212
+ )
213
+
214
+ FieldInstance.new(
215
+ @version,
216
+ payload,
217
+ assistant_sid: @solution[:assistant_sid],
218
+ task_sid: @solution[:task_sid],
219
+ sid: @solution[:sid],
220
+ )
221
+ end
222
+
223
+ ##
224
+ # Deletes the FieldInstance
225
+ # @return [Boolean] true if delete succeeds, true otherwise
226
+ def delete
227
+ @version.delete('delete', @uri)
228
+ end
229
+
230
+ ##
231
+ # Provide a user friendly representation
232
+ def to_s
233
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
234
+ "#<Twilio.Autopilot.V1.FieldContext #{context}>"
235
+ end
236
+ end
237
+
238
+ ##
239
+ # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
240
+ class FieldInstance < InstanceResource
241
+ ##
242
+ # Initialize the FieldInstance
243
+ # @param [Version] version Version that contains the resource
244
+ # @param [Hash] payload payload that contains response from Twilio
245
+ # @param [String] assistant_sid The unique ID of the parent Assistant.
246
+ # @param [String] task_sid The unique ID of the Task associated with this Field.
247
+ # @param [String] sid The sid
248
+ # @return [FieldInstance] FieldInstance
249
+ def initialize(version, payload, assistant_sid: nil, task_sid: nil, sid: nil)
250
+ super(version)
251
+
252
+ # Marshaled Properties
253
+ @properties = {
254
+ 'account_sid' => payload['account_sid'],
255
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
256
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
257
+ 'field_type' => payload['field_type'],
258
+ 'task_sid' => payload['task_sid'],
259
+ 'assistant_sid' => payload['assistant_sid'],
260
+ 'sid' => payload['sid'],
261
+ 'unique_name' => payload['unique_name'],
262
+ 'url' => payload['url'],
263
+ }
264
+
265
+ # Context
266
+ @instance_context = nil
267
+ @params = {
268
+ 'assistant_sid' => assistant_sid,
269
+ 'task_sid' => task_sid,
270
+ 'sid' => sid || @properties['sid'],
271
+ }
272
+ end
273
+
274
+ ##
275
+ # Generate an instance context for the instance, the context is capable of
276
+ # performing various actions. All instance actions are proxied to the context
277
+ # @return [FieldContext] FieldContext for this FieldInstance
278
+ def context
279
+ unless @instance_context
280
+ @instance_context = FieldContext.new(
281
+ @version,
282
+ @params['assistant_sid'],
283
+ @params['task_sid'],
284
+ @params['sid'],
285
+ )
286
+ end
287
+ @instance_context
288
+ end
289
+
290
+ ##
291
+ # @return [String] The unique ID of the Account that created this Field.
292
+ def account_sid
293
+ @properties['account_sid']
294
+ end
295
+
296
+ ##
297
+ # @return [Time] The date that this resource was created
298
+ def date_created
299
+ @properties['date_created']
300
+ end
301
+
302
+ ##
303
+ # @return [Time] The date that this resource was last updated
304
+ def date_updated
305
+ @properties['date_updated']
306
+ end
307
+
308
+ ##
309
+ # @return [String] The Field Type of this field. It can be any Built-in Field Type or unique_name or the Field Type sid of a custom Field Type.
310
+ def field_type
311
+ @properties['field_type']
312
+ end
313
+
314
+ ##
315
+ # @return [String] The unique ID of the Task associated with this Field.
316
+ def task_sid
317
+ @properties['task_sid']
318
+ end
319
+
320
+ ##
321
+ # @return [String] The unique ID of the parent Assistant.
322
+ def assistant_sid
323
+ @properties['assistant_sid']
324
+ end
325
+
326
+ ##
327
+ # @return [String] A 34 character string that uniquely identifies this resource.
328
+ def sid
329
+ @properties['sid']
330
+ end
331
+
332
+ ##
333
+ # @return [String] A user-provided string that uniquely identifies this resource as an alternative to the sid. Unique up to 64 characters long.
334
+ def unique_name
335
+ @properties['unique_name']
336
+ end
337
+
338
+ ##
339
+ # @return [String] The url
340
+ def url
341
+ @properties['url']
342
+ end
343
+
344
+ ##
345
+ # Fetch a FieldInstance
346
+ # @return [FieldInstance] Fetched FieldInstance
347
+ def fetch
348
+ context.fetch
349
+ end
350
+
351
+ ##
352
+ # Deletes the FieldInstance
353
+ # @return [Boolean] true if delete succeeds, true otherwise
354
+ def delete
355
+ context.delete
356
+ end
357
+
358
+ ##
359
+ # Provide a user friendly representation
360
+ def to_s
361
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
362
+ "<Twilio.Autopilot.V1.FieldInstance #{values}>"
363
+ end
364
+
365
+ ##
366
+ # Provide a detailed, user friendly representation
367
+ def inspect
368
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
369
+ "<Twilio.Autopilot.V1.FieldInstance #{values}>"
370
+ end
371
+ end
372
+ end
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end