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
@@ -0,0 +1,442 @@
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 SampleList < ListResource
18
+ ##
19
+ # Initialize the SampleList
20
+ # @param [Version] version Version that contains the resource
21
+ # @param [String] assistant_sid The unique ID of the Assistant.
22
+ # @param [String] task_sid The unique ID of the Task associated with this Sample.
23
+ # @return [SampleList] SampleList
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]}/Samples"
30
+ end
31
+
32
+ ##
33
+ # Lists SampleInstance 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 [String] language An ISO language-country string that specifies the
37
+ # language used for this sample. For example: en-US.
38
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
39
+ # guarantees to never return more than limit. Default is no limit
40
+ # @param [Integer] page_size Number of records to fetch per request, when
41
+ # not set will use the default value of 50 records. If no page_size is defined
42
+ # but a limit is defined, stream() will attempt to read the limit with the most
43
+ # efficient page size, i.e. min(limit, 1000)
44
+ # @return [Array] Array of up to limit results
45
+ def list(language: :unset, limit: nil, page_size: nil)
46
+ self.stream(language: language, limit: limit, page_size: page_size).entries
47
+ end
48
+
49
+ ##
50
+ # Streams SampleInstance records from the API as an Enumerable.
51
+ # This operation lazily loads records as efficiently as possible until the limit
52
+ # is reached.
53
+ # @param [String] language An ISO language-country string that specifies the
54
+ # language used for this sample. For example: en-US.
55
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
56
+ # guarantees to never return more than limit. Default is no limit.
57
+ # @param [Integer] page_size Number of records to fetch per request, when
58
+ # not set will use the default value of 50 records. If no page_size is defined
59
+ # but a limit is defined, stream() will attempt to read the limit with the most
60
+ # efficient page size, i.e. min(limit, 1000)
61
+ # @return [Enumerable] Enumerable that will yield up to limit results
62
+ def stream(language: :unset, limit: nil, page_size: nil)
63
+ limits = @version.read_limits(limit, page_size)
64
+
65
+ page = self.page(language: language, page_size: limits[:page_size], )
66
+
67
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
68
+ end
69
+
70
+ ##
71
+ # When passed a block, yields SampleInstance records from the API.
72
+ # This operation lazily loads records as efficiently as possible until the limit
73
+ # is reached.
74
+ def each
75
+ limits = @version.read_limits
76
+
77
+ page = self.page(page_size: limits[:page_size], )
78
+
79
+ @version.stream(page,
80
+ limit: limits[:limit],
81
+ page_limit: limits[:page_limit]).each {|x| yield x}
82
+ end
83
+
84
+ ##
85
+ # Retrieve a single page of SampleInstance records from the API.
86
+ # Request is executed immediately.
87
+ # @param [String] language An ISO language-country string that specifies the
88
+ # language used for this sample. For example: en-US.
89
+ # @param [String] page_token PageToken provided by the API
90
+ # @param [Integer] page_number Page Number, this value is simply for client state
91
+ # @param [Integer] page_size Number of records to return, defaults to 50
92
+ # @return [Page] Page of SampleInstance
93
+ def page(language: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
94
+ params = Twilio::Values.of({
95
+ 'Language' => language,
96
+ 'PageToken' => page_token,
97
+ 'Page' => page_number,
98
+ 'PageSize' => page_size,
99
+ })
100
+ response = @version.page(
101
+ 'GET',
102
+ @uri,
103
+ params
104
+ )
105
+ SamplePage.new(@version, response, @solution)
106
+ end
107
+
108
+ ##
109
+ # Retrieve a single page of SampleInstance records from the API.
110
+ # Request is executed immediately.
111
+ # @param [String] target_url API-generated URL for the requested results page
112
+ # @return [Page] Page of SampleInstance
113
+ def get_page(target_url)
114
+ response = @version.domain.request(
115
+ 'GET',
116
+ target_url
117
+ )
118
+ SamplePage.new(@version, response, @solution)
119
+ end
120
+
121
+ ##
122
+ # Retrieve a single page of SampleInstance records from the API.
123
+ # Request is executed immediately.
124
+ # @param [String] language An ISO language-country string that specifies the
125
+ # language used for this sample. For example: en-US.
126
+ # @param [String] tagged_text The text example of how end-users may express this
127
+ # task. The sample may contain Field tag blocks.
128
+ # @param [String] source_channel The communication channel from which the sample
129
+ # was captured. It can be: *voice*, *sms*, *chat*, *alexa*, *google-assistant*, or
130
+ # *slack*. If not included the value will be null
131
+ # @return [SampleInstance] Newly created SampleInstance
132
+ def create(language: nil, tagged_text: nil, source_channel: :unset)
133
+ data = Twilio::Values.of({
134
+ 'Language' => language,
135
+ 'TaggedText' => tagged_text,
136
+ 'SourceChannel' => source_channel,
137
+ })
138
+
139
+ payload = @version.create(
140
+ 'POST',
141
+ @uri,
142
+ data: data
143
+ )
144
+
145
+ SampleInstance.new(
146
+ @version,
147
+ payload,
148
+ assistant_sid: @solution[:assistant_sid],
149
+ task_sid: @solution[:task_sid],
150
+ )
151
+ end
152
+
153
+ ##
154
+ # Provide a user friendly representation
155
+ def to_s
156
+ '#<Twilio.Autopilot.V1.SampleList>'
157
+ end
158
+ end
159
+
160
+ ##
161
+ # 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.
162
+ class SamplePage < Page
163
+ ##
164
+ # Initialize the SamplePage
165
+ # @param [Version] version Version that contains the resource
166
+ # @param [Response] response Response from the API
167
+ # @param [Hash] solution Path solution for the resource
168
+ # @return [SamplePage] SamplePage
169
+ def initialize(version, response, solution)
170
+ super(version, response)
171
+
172
+ # Path Solution
173
+ @solution = solution
174
+ end
175
+
176
+ ##
177
+ # Build an instance of SampleInstance
178
+ # @param [Hash] payload Payload response from the API
179
+ # @return [SampleInstance] SampleInstance
180
+ def get_instance(payload)
181
+ SampleInstance.new(
182
+ @version,
183
+ payload,
184
+ assistant_sid: @solution[:assistant_sid],
185
+ task_sid: @solution[:task_sid],
186
+ )
187
+ end
188
+
189
+ ##
190
+ # Provide a user friendly representation
191
+ def to_s
192
+ '<Twilio.Autopilot.V1.SamplePage>'
193
+ end
194
+ end
195
+
196
+ ##
197
+ # 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.
198
+ class SampleContext < InstanceContext
199
+ ##
200
+ # Initialize the SampleContext
201
+ # @param [Version] version Version that contains the resource
202
+ # @param [String] assistant_sid The assistant_sid
203
+ # @param [String] task_sid The task_sid
204
+ # @param [String] sid The sid
205
+ # @return [SampleContext] SampleContext
206
+ def initialize(version, assistant_sid, task_sid, sid)
207
+ super(version)
208
+
209
+ # Path Solution
210
+ @solution = {assistant_sid: assistant_sid, task_sid: task_sid, sid: sid, }
211
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/Tasks/#{@solution[:task_sid]}/Samples/#{@solution[:sid]}"
212
+ end
213
+
214
+ ##
215
+ # Fetch a SampleInstance
216
+ # @return [SampleInstance] Fetched SampleInstance
217
+ def fetch
218
+ params = Twilio::Values.of({})
219
+
220
+ payload = @version.fetch(
221
+ 'GET',
222
+ @uri,
223
+ params,
224
+ )
225
+
226
+ SampleInstance.new(
227
+ @version,
228
+ payload,
229
+ assistant_sid: @solution[:assistant_sid],
230
+ task_sid: @solution[:task_sid],
231
+ sid: @solution[:sid],
232
+ )
233
+ end
234
+
235
+ ##
236
+ # Update the SampleInstance
237
+ # @param [String] language An ISO language-country string that specifies the
238
+ # language used for this sample. For example: en-US.
239
+ # @param [String] tagged_text The text example of how end-users may express this
240
+ # task. The sample may contain Field tag blocks.
241
+ # @param [String] source_channel The communication channel from which the sample
242
+ # was captured. It can be: *voice*, *sms*, *chat*, *alexa*, *google-assistant*, or
243
+ # *slack*. If not included the value will be null
244
+ # @return [SampleInstance] Updated SampleInstance
245
+ def update(language: :unset, tagged_text: :unset, source_channel: :unset)
246
+ data = Twilio::Values.of({
247
+ 'Language' => language,
248
+ 'TaggedText' => tagged_text,
249
+ 'SourceChannel' => source_channel,
250
+ })
251
+
252
+ payload = @version.update(
253
+ 'POST',
254
+ @uri,
255
+ data: data,
256
+ )
257
+
258
+ SampleInstance.new(
259
+ @version,
260
+ payload,
261
+ assistant_sid: @solution[:assistant_sid],
262
+ task_sid: @solution[:task_sid],
263
+ sid: @solution[:sid],
264
+ )
265
+ end
266
+
267
+ ##
268
+ # Deletes the SampleInstance
269
+ # @return [Boolean] true if delete succeeds, true otherwise
270
+ def delete
271
+ @version.delete('delete', @uri)
272
+ end
273
+
274
+ ##
275
+ # Provide a user friendly representation
276
+ def to_s
277
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
278
+ "#<Twilio.Autopilot.V1.SampleContext #{context}>"
279
+ end
280
+ end
281
+
282
+ ##
283
+ # 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.
284
+ class SampleInstance < InstanceResource
285
+ ##
286
+ # Initialize the SampleInstance
287
+ # @param [Version] version Version that contains the resource
288
+ # @param [Hash] payload payload that contains response from Twilio
289
+ # @param [String] assistant_sid The unique ID of the Assistant.
290
+ # @param [String] task_sid The unique ID of the Task associated with this Sample.
291
+ # @param [String] sid The sid
292
+ # @return [SampleInstance] SampleInstance
293
+ def initialize(version, payload, assistant_sid: nil, task_sid: nil, sid: nil)
294
+ super(version)
295
+
296
+ # Marshaled Properties
297
+ @properties = {
298
+ 'account_sid' => payload['account_sid'],
299
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
300
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
301
+ 'task_sid' => payload['task_sid'],
302
+ 'language' => payload['language'],
303
+ 'assistant_sid' => payload['assistant_sid'],
304
+ 'sid' => payload['sid'],
305
+ 'tagged_text' => payload['tagged_text'],
306
+ 'url' => payload['url'],
307
+ 'source_channel' => payload['source_channel'],
308
+ }
309
+
310
+ # Context
311
+ @instance_context = nil
312
+ @params = {
313
+ 'assistant_sid' => assistant_sid,
314
+ 'task_sid' => task_sid,
315
+ 'sid' => sid || @properties['sid'],
316
+ }
317
+ end
318
+
319
+ ##
320
+ # Generate an instance context for the instance, the context is capable of
321
+ # performing various actions. All instance actions are proxied to the context
322
+ # @return [SampleContext] SampleContext for this SampleInstance
323
+ def context
324
+ unless @instance_context
325
+ @instance_context = SampleContext.new(
326
+ @version,
327
+ @params['assistant_sid'],
328
+ @params['task_sid'],
329
+ @params['sid'],
330
+ )
331
+ end
332
+ @instance_context
333
+ end
334
+
335
+ ##
336
+ # @return [String] The unique ID of the Account that created this Sample.
337
+ def account_sid
338
+ @properties['account_sid']
339
+ end
340
+
341
+ ##
342
+ # @return [Time] The date that this resource was created
343
+ def date_created
344
+ @properties['date_created']
345
+ end
346
+
347
+ ##
348
+ # @return [Time] The date that this resource was last updated
349
+ def date_updated
350
+ @properties['date_updated']
351
+ end
352
+
353
+ ##
354
+ # @return [String] The unique ID of the Task associated with this Sample.
355
+ def task_sid
356
+ @properties['task_sid']
357
+ end
358
+
359
+ ##
360
+ # @return [String] An ISO language-country string that specifies the language used for this sample. For example: en-US.
361
+ def language
362
+ @properties['language']
363
+ end
364
+
365
+ ##
366
+ # @return [String] The unique ID of the Assistant.
367
+ def assistant_sid
368
+ @properties['assistant_sid']
369
+ end
370
+
371
+ ##
372
+ # @return [String] A 34 character string that uniquely identifies this resource.
373
+ def sid
374
+ @properties['sid']
375
+ end
376
+
377
+ ##
378
+ # @return [String] The text example of how end-users may express this task. The sample may contain Field tag blocks.
379
+ def tagged_text
380
+ @properties['tagged_text']
381
+ end
382
+
383
+ ##
384
+ # @return [String] The url
385
+ def url
386
+ @properties['url']
387
+ end
388
+
389
+ ##
390
+ # @return [String] The communication channel from which the sample was captured. It can be: voice, sms, chat, alexa, google-assistant, or slack. If not included the value will be null
391
+ def source_channel
392
+ @properties['source_channel']
393
+ end
394
+
395
+ ##
396
+ # Fetch a SampleInstance
397
+ # @return [SampleInstance] Fetched SampleInstance
398
+ def fetch
399
+ context.fetch
400
+ end
401
+
402
+ ##
403
+ # Update the SampleInstance
404
+ # @param [String] language An ISO language-country string that specifies the
405
+ # language used for this sample. For example: en-US.
406
+ # @param [String] tagged_text The text example of how end-users may express this
407
+ # task. The sample may contain Field tag blocks.
408
+ # @param [String] source_channel The communication channel from which the sample
409
+ # was captured. It can be: *voice*, *sms*, *chat*, *alexa*, *google-assistant*, or
410
+ # *slack*. If not included the value will be null
411
+ # @return [SampleInstance] Updated SampleInstance
412
+ def update(language: :unset, tagged_text: :unset, source_channel: :unset)
413
+ context.update(language: language, tagged_text: tagged_text, source_channel: source_channel, )
414
+ end
415
+
416
+ ##
417
+ # Deletes the SampleInstance
418
+ # @return [Boolean] true if delete succeeds, true otherwise
419
+ def delete
420
+ context.delete
421
+ end
422
+
423
+ ##
424
+ # Provide a user friendly representation
425
+ def to_s
426
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
427
+ "<Twilio.Autopilot.V1.SampleInstance #{values}>"
428
+ end
429
+
430
+ ##
431
+ # Provide a detailed, user friendly representation
432
+ def inspect
433
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
434
+ "<Twilio.Autopilot.V1.SampleInstance #{values}>"
435
+ end
436
+ end
437
+ end
438
+ end
439
+ end
440
+ end
441
+ end
442
+ end
@@ -0,0 +1,244 @@
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 TaskActionsList < ListResource
18
+ ##
19
+ # Initialize the TaskActionsList
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.
23
+ # @return [TaskActionsList] TaskActionsList
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
+ end
30
+
31
+ ##
32
+ # Provide a user friendly representation
33
+ def to_s
34
+ '#<Twilio.Autopilot.V1.TaskActionsList>'
35
+ end
36
+ end
37
+
38
+ ##
39
+ # 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.
40
+ class TaskActionsPage < Page
41
+ ##
42
+ # Initialize the TaskActionsPage
43
+ # @param [Version] version Version that contains the resource
44
+ # @param [Response] response Response from the API
45
+ # @param [Hash] solution Path solution for the resource
46
+ # @return [TaskActionsPage] TaskActionsPage
47
+ def initialize(version, response, solution)
48
+ super(version, response)
49
+
50
+ # Path Solution
51
+ @solution = solution
52
+ end
53
+
54
+ ##
55
+ # Build an instance of TaskActionsInstance
56
+ # @param [Hash] payload Payload response from the API
57
+ # @return [TaskActionsInstance] TaskActionsInstance
58
+ def get_instance(payload)
59
+ TaskActionsInstance.new(
60
+ @version,
61
+ payload,
62
+ assistant_sid: @solution[:assistant_sid],
63
+ task_sid: @solution[:task_sid],
64
+ )
65
+ end
66
+
67
+ ##
68
+ # Provide a user friendly representation
69
+ def to_s
70
+ '<Twilio.Autopilot.V1.TaskActionsPage>'
71
+ end
72
+ end
73
+
74
+ ##
75
+ # 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.
76
+ class TaskActionsContext < InstanceContext
77
+ ##
78
+ # Initialize the TaskActionsContext
79
+ # @param [Version] version Version that contains the resource
80
+ # @param [String] assistant_sid The unique ID of the parent Assistant.
81
+ # @param [String] task_sid The unique ID of the Task.
82
+ # @return [TaskActionsContext] TaskActionsContext
83
+ def initialize(version, assistant_sid, task_sid)
84
+ super(version)
85
+
86
+ # Path Solution
87
+ @solution = {assistant_sid: assistant_sid, task_sid: task_sid, }
88
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/Tasks/#{@solution[:task_sid]}/Actions"
89
+ end
90
+
91
+ ##
92
+ # Fetch a TaskActionsInstance
93
+ # @return [TaskActionsInstance] Fetched TaskActionsInstance
94
+ def fetch
95
+ params = Twilio::Values.of({})
96
+
97
+ payload = @version.fetch(
98
+ 'GET',
99
+ @uri,
100
+ params,
101
+ )
102
+
103
+ TaskActionsInstance.new(
104
+ @version,
105
+ payload,
106
+ assistant_sid: @solution[:assistant_sid],
107
+ task_sid: @solution[:task_sid],
108
+ )
109
+ end
110
+
111
+ ##
112
+ # Update the TaskActionsInstance
113
+ # @param [Hash] actions The JSON actions that instruct the Assistant how to
114
+ # perform this task.
115
+ # @return [TaskActionsInstance] Updated TaskActionsInstance
116
+ def update(actions: :unset)
117
+ data = Twilio::Values.of({'Actions' => Twilio.serialize_object(actions), })
118
+
119
+ payload = @version.update(
120
+ 'POST',
121
+ @uri,
122
+ data: data,
123
+ )
124
+
125
+ TaskActionsInstance.new(
126
+ @version,
127
+ payload,
128
+ assistant_sid: @solution[:assistant_sid],
129
+ task_sid: @solution[:task_sid],
130
+ )
131
+ end
132
+
133
+ ##
134
+ # Provide a user friendly representation
135
+ def to_s
136
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
137
+ "#<Twilio.Autopilot.V1.TaskActionsContext #{context}>"
138
+ end
139
+ end
140
+
141
+ ##
142
+ # 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.
143
+ class TaskActionsInstance < InstanceResource
144
+ ##
145
+ # Initialize the TaskActionsInstance
146
+ # @param [Version] version Version that contains the resource
147
+ # @param [Hash] payload payload that contains response from Twilio
148
+ # @param [String] assistant_sid The unique ID of the parent Assistant.
149
+ # @param [String] task_sid The unique ID of the Task.
150
+ # @return [TaskActionsInstance] TaskActionsInstance
151
+ def initialize(version, payload, assistant_sid: nil, task_sid: nil)
152
+ super(version)
153
+
154
+ # Marshaled Properties
155
+ @properties = {
156
+ 'account_sid' => payload['account_sid'],
157
+ 'assistant_sid' => payload['assistant_sid'],
158
+ 'task_sid' => payload['task_sid'],
159
+ 'url' => payload['url'],
160
+ 'data' => payload['data'],
161
+ }
162
+
163
+ # Context
164
+ @instance_context = nil
165
+ @params = {'assistant_sid' => assistant_sid, 'task_sid' => task_sid, }
166
+ end
167
+
168
+ ##
169
+ # Generate an instance context for the instance, the context is capable of
170
+ # performing various actions. All instance actions are proxied to the context
171
+ # @return [TaskActionsContext] TaskActionsContext for this TaskActionsInstance
172
+ def context
173
+ unless @instance_context
174
+ @instance_context = TaskActionsContext.new(@version, @params['assistant_sid'], @params['task_sid'], )
175
+ end
176
+ @instance_context
177
+ end
178
+
179
+ ##
180
+ # @return [String] The unique ID of the Account that created this Field.
181
+ def account_sid
182
+ @properties['account_sid']
183
+ end
184
+
185
+ ##
186
+ # @return [String] The unique ID of the parent Assistant.
187
+ def assistant_sid
188
+ @properties['assistant_sid']
189
+ end
190
+
191
+ ##
192
+ # @return [String] The unique ID of the Task.
193
+ def task_sid
194
+ @properties['task_sid']
195
+ end
196
+
197
+ ##
198
+ # @return [String] The url
199
+ def url
200
+ @properties['url']
201
+ end
202
+
203
+ ##
204
+ # @return [Hash] The data
205
+ def data
206
+ @properties['data']
207
+ end
208
+
209
+ ##
210
+ # Fetch a TaskActionsInstance
211
+ # @return [TaskActionsInstance] Fetched TaskActionsInstance
212
+ def fetch
213
+ context.fetch
214
+ end
215
+
216
+ ##
217
+ # Update the TaskActionsInstance
218
+ # @param [Hash] actions The JSON actions that instruct the Assistant how to
219
+ # perform this task.
220
+ # @return [TaskActionsInstance] Updated TaskActionsInstance
221
+ def update(actions: :unset)
222
+ context.update(actions: actions, )
223
+ end
224
+
225
+ ##
226
+ # Provide a user friendly representation
227
+ def to_s
228
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
229
+ "<Twilio.Autopilot.V1.TaskActionsInstance #{values}>"
230
+ end
231
+
232
+ ##
233
+ # Provide a detailed, user friendly representation
234
+ def inspect
235
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
236
+ "<Twilio.Autopilot.V1.TaskActionsInstance #{values}>"
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end