twilio-ruby 5.14.1 → 5.15.0

Sign up to get free protection for your applications and to get access to all the features.
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