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
@@ -0,0 +1,393 @@
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 FieldTypeContext < 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 FieldValueList < ListResource
18
+ ##
19
+ # Initialize the FieldValueList
20
+ # @param [Version] version Version that contains the resource
21
+ # @param [String] assistant_sid The unique ID of the Assistant.
22
+ # @param [String] field_type_sid The unique ID of the Field Type associated with
23
+ # this Field Value.
24
+ # @return [FieldValueList] FieldValueList
25
+ def initialize(version, assistant_sid: nil, field_type_sid: nil)
26
+ super(version)
27
+
28
+ # Path Solution
29
+ @solution = {assistant_sid: assistant_sid, field_type_sid: field_type_sid}
30
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/FieldTypes/#{@solution[:field_type_sid]}/FieldValues"
31
+ end
32
+
33
+ ##
34
+ # Lists FieldValueInstance records from the API as a list.
35
+ # Unlike stream(), this operation is eager and will load `limit` records into
36
+ # memory before returning.
37
+ # @param [String] language An ISO language-country string that specifies the
38
+ # language used for this field value. For example: en-US
39
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
40
+ # guarantees to never return more than limit. Default is no limit
41
+ # @param [Integer] page_size Number of records to fetch per request, when
42
+ # not set will use the default value of 50 records. If no page_size is defined
43
+ # but a limit is defined, stream() will attempt to read the limit with the most
44
+ # efficient page size, i.e. min(limit, 1000)
45
+ # @return [Array] Array of up to limit results
46
+ def list(language: :unset, limit: nil, page_size: nil)
47
+ self.stream(language: language, limit: limit, page_size: page_size).entries
48
+ end
49
+
50
+ ##
51
+ # Streams FieldValueInstance records from the API as an Enumerable.
52
+ # This operation lazily loads records as efficiently as possible until the limit
53
+ # is reached.
54
+ # @param [String] language An ISO language-country string that specifies the
55
+ # language used for this field value. For example: en-US
56
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
57
+ # guarantees to never return more than limit. Default is no limit.
58
+ # @param [Integer] page_size Number of records to fetch per request, when
59
+ # not set will use the default value of 50 records. If no page_size is defined
60
+ # but a limit is defined, stream() will attempt to read the limit with the most
61
+ # efficient page size, i.e. min(limit, 1000)
62
+ # @return [Enumerable] Enumerable that will yield up to limit results
63
+ def stream(language: :unset, limit: nil, page_size: nil)
64
+ limits = @version.read_limits(limit, page_size)
65
+
66
+ page = self.page(language: language, page_size: limits[:page_size], )
67
+
68
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
69
+ end
70
+
71
+ ##
72
+ # When passed a block, yields FieldValueInstance records from the API.
73
+ # This operation lazily loads records as efficiently as possible until the limit
74
+ # is reached.
75
+ def each
76
+ limits = @version.read_limits
77
+
78
+ page = self.page(page_size: limits[:page_size], )
79
+
80
+ @version.stream(page,
81
+ limit: limits[:limit],
82
+ page_limit: limits[:page_limit]).each {|x| yield x}
83
+ end
84
+
85
+ ##
86
+ # Retrieve a single page of FieldValueInstance records from the API.
87
+ # Request is executed immediately.
88
+ # @param [String] language An ISO language-country string that specifies the
89
+ # language used for this field value. For example: en-US
90
+ # @param [String] page_token PageToken provided by the API
91
+ # @param [Integer] page_number Page Number, this value is simply for client state
92
+ # @param [Integer] page_size Number of records to return, defaults to 50
93
+ # @return [Page] Page of FieldValueInstance
94
+ def page(language: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
95
+ params = Twilio::Values.of({
96
+ 'Language' => language,
97
+ 'PageToken' => page_token,
98
+ 'Page' => page_number,
99
+ 'PageSize' => page_size,
100
+ })
101
+ response = @version.page(
102
+ 'GET',
103
+ @uri,
104
+ params
105
+ )
106
+ FieldValuePage.new(@version, response, @solution)
107
+ end
108
+
109
+ ##
110
+ # Retrieve a single page of FieldValueInstance records from the API.
111
+ # Request is executed immediately.
112
+ # @param [String] target_url API-generated URL for the requested results page
113
+ # @return [Page] Page of FieldValueInstance
114
+ def get_page(target_url)
115
+ response = @version.domain.request(
116
+ 'GET',
117
+ target_url
118
+ )
119
+ FieldValuePage.new(@version, response, @solution)
120
+ end
121
+
122
+ ##
123
+ # Retrieve a single page of FieldValueInstance records from the API.
124
+ # Request is executed immediately.
125
+ # @param [String] language An ISO language-country string that specifies the
126
+ # language used for this field value. For example: en-US
127
+ # @param [String] value A user-provided string that uniquely identifies this
128
+ # resource as an alternative to the sid. Unique up to 64 characters long.
129
+ # @param [String] synonym_of A string value that indicates which word this field
130
+ # value is a synonym of.
131
+ # @return [FieldValueInstance] Newly created FieldValueInstance
132
+ def create(language: nil, value: nil, synonym_of: :unset)
133
+ data = Twilio::Values.of({'Language' => language, 'Value' => value, 'SynonymOf' => synonym_of, })
134
+
135
+ payload = @version.create(
136
+ 'POST',
137
+ @uri,
138
+ data: data
139
+ )
140
+
141
+ FieldValueInstance.new(
142
+ @version,
143
+ payload,
144
+ assistant_sid: @solution[:assistant_sid],
145
+ field_type_sid: @solution[:field_type_sid],
146
+ )
147
+ end
148
+
149
+ ##
150
+ # Provide a user friendly representation
151
+ def to_s
152
+ '#<Twilio.Autopilot.V1.FieldValueList>'
153
+ end
154
+ end
155
+
156
+ ##
157
+ # 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.
158
+ class FieldValuePage < Page
159
+ ##
160
+ # Initialize the FieldValuePage
161
+ # @param [Version] version Version that contains the resource
162
+ # @param [Response] response Response from the API
163
+ # @param [Hash] solution Path solution for the resource
164
+ # @return [FieldValuePage] FieldValuePage
165
+ def initialize(version, response, solution)
166
+ super(version, response)
167
+
168
+ # Path Solution
169
+ @solution = solution
170
+ end
171
+
172
+ ##
173
+ # Build an instance of FieldValueInstance
174
+ # @param [Hash] payload Payload response from the API
175
+ # @return [FieldValueInstance] FieldValueInstance
176
+ def get_instance(payload)
177
+ FieldValueInstance.new(
178
+ @version,
179
+ payload,
180
+ assistant_sid: @solution[:assistant_sid],
181
+ field_type_sid: @solution[:field_type_sid],
182
+ )
183
+ end
184
+
185
+ ##
186
+ # Provide a user friendly representation
187
+ def to_s
188
+ '<Twilio.Autopilot.V1.FieldValuePage>'
189
+ end
190
+ end
191
+
192
+ ##
193
+ # 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.
194
+ class FieldValueContext < InstanceContext
195
+ ##
196
+ # Initialize the FieldValueContext
197
+ # @param [Version] version Version that contains the resource
198
+ # @param [String] assistant_sid The assistant_sid
199
+ # @param [String] field_type_sid The field_type_sid
200
+ # @param [String] sid The sid
201
+ # @return [FieldValueContext] FieldValueContext
202
+ def initialize(version, assistant_sid, field_type_sid, sid)
203
+ super(version)
204
+
205
+ # Path Solution
206
+ @solution = {assistant_sid: assistant_sid, field_type_sid: field_type_sid, sid: sid, }
207
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/FieldTypes/#{@solution[:field_type_sid]}/FieldValues/#{@solution[:sid]}"
208
+ end
209
+
210
+ ##
211
+ # Fetch a FieldValueInstance
212
+ # @return [FieldValueInstance] Fetched FieldValueInstance
213
+ def fetch
214
+ params = Twilio::Values.of({})
215
+
216
+ payload = @version.fetch(
217
+ 'GET',
218
+ @uri,
219
+ params,
220
+ )
221
+
222
+ FieldValueInstance.new(
223
+ @version,
224
+ payload,
225
+ assistant_sid: @solution[:assistant_sid],
226
+ field_type_sid: @solution[:field_type_sid],
227
+ sid: @solution[:sid],
228
+ )
229
+ end
230
+
231
+ ##
232
+ # Deletes the FieldValueInstance
233
+ # @return [Boolean] true if delete succeeds, true otherwise
234
+ def delete
235
+ @version.delete('delete', @uri)
236
+ end
237
+
238
+ ##
239
+ # Provide a user friendly representation
240
+ def to_s
241
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
242
+ "#<Twilio.Autopilot.V1.FieldValueContext #{context}>"
243
+ end
244
+ end
245
+
246
+ ##
247
+ # 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.
248
+ class FieldValueInstance < InstanceResource
249
+ ##
250
+ # Initialize the FieldValueInstance
251
+ # @param [Version] version Version that contains the resource
252
+ # @param [Hash] payload payload that contains response from Twilio
253
+ # @param [String] assistant_sid The unique ID of the Assistant.
254
+ # @param [String] field_type_sid The unique ID of the Field Type associated with
255
+ # this Field Value.
256
+ # @param [String] sid The sid
257
+ # @return [FieldValueInstance] FieldValueInstance
258
+ def initialize(version, payload, assistant_sid: nil, field_type_sid: nil, sid: nil)
259
+ super(version)
260
+
261
+ # Marshaled Properties
262
+ @properties = {
263
+ 'account_sid' => payload['account_sid'],
264
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
265
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
266
+ 'field_type_sid' => payload['field_type_sid'],
267
+ 'language' => payload['language'],
268
+ 'assistant_sid' => payload['assistant_sid'],
269
+ 'sid' => payload['sid'],
270
+ 'value' => payload['value'],
271
+ 'url' => payload['url'],
272
+ 'synonym_of' => payload['synonym_of'],
273
+ }
274
+
275
+ # Context
276
+ @instance_context = nil
277
+ @params = {
278
+ 'assistant_sid' => assistant_sid,
279
+ 'field_type_sid' => field_type_sid,
280
+ 'sid' => sid || @properties['sid'],
281
+ }
282
+ end
283
+
284
+ ##
285
+ # Generate an instance context for the instance, the context is capable of
286
+ # performing various actions. All instance actions are proxied to the context
287
+ # @return [FieldValueContext] FieldValueContext for this FieldValueInstance
288
+ def context
289
+ unless @instance_context
290
+ @instance_context = FieldValueContext.new(
291
+ @version,
292
+ @params['assistant_sid'],
293
+ @params['field_type_sid'],
294
+ @params['sid'],
295
+ )
296
+ end
297
+ @instance_context
298
+ end
299
+
300
+ ##
301
+ # @return [String] The unique ID of the Account that created this Field Value.
302
+ def account_sid
303
+ @properties['account_sid']
304
+ end
305
+
306
+ ##
307
+ # @return [Time] The date that this resource was created
308
+ def date_created
309
+ @properties['date_created']
310
+ end
311
+
312
+ ##
313
+ # @return [Time] The date that this resource was last updated
314
+ def date_updated
315
+ @properties['date_updated']
316
+ end
317
+
318
+ ##
319
+ # @return [String] The unique ID of the Field Type associated with this Field Value.
320
+ def field_type_sid
321
+ @properties['field_type_sid']
322
+ end
323
+
324
+ ##
325
+ # @return [String] An ISO language-country string of the value (currently supported: `en-US`, `nl-NL`)
326
+ def language
327
+ @properties['language']
328
+ end
329
+
330
+ ##
331
+ # @return [String] The unique ID of the Assistant.
332
+ def assistant_sid
333
+ @properties['assistant_sid']
334
+ end
335
+
336
+ ##
337
+ # @return [String] A 34 character string that uniquely identifies this resource.
338
+ def sid
339
+ @properties['sid']
340
+ end
341
+
342
+ ##
343
+ # @return [String] The Field Value itself.
344
+ def value
345
+ @properties['value']
346
+ end
347
+
348
+ ##
349
+ # @return [String] The url
350
+ def url
351
+ @properties['url']
352
+ end
353
+
354
+ ##
355
+ # @return [String] A string value that indicates which word this field value is a synonym of.
356
+ def synonym_of
357
+ @properties['synonym_of']
358
+ end
359
+
360
+ ##
361
+ # Fetch a FieldValueInstance
362
+ # @return [FieldValueInstance] Fetched FieldValueInstance
363
+ def fetch
364
+ context.fetch
365
+ end
366
+
367
+ ##
368
+ # Deletes the FieldValueInstance
369
+ # @return [Boolean] true if delete succeeds, true otherwise
370
+ def delete
371
+ context.delete
372
+ end
373
+
374
+ ##
375
+ # Provide a user friendly representation
376
+ def to_s
377
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
378
+ "<Twilio.Autopilot.V1.FieldValueInstance #{values}>"
379
+ end
380
+
381
+ ##
382
+ # Provide a detailed, user friendly representation
383
+ def inspect
384
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
385
+ "<Twilio.Autopilot.V1.FieldValueInstance #{values}>"
386
+ end
387
+ end
388
+ end
389
+ end
390
+ end
391
+ end
392
+ end
393
+ end
@@ -0,0 +1,390 @@
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
+ ##
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 ModelBuildList < ListResource
17
+ ##
18
+ # Initialize the ModelBuildList
19
+ # @param [Version] version Version that contains the resource
20
+ # @param [String] assistant_sid The unique ID of the parent Assistant.
21
+ # @return [ModelBuildList] ModelBuildList
22
+ def initialize(version, assistant_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {assistant_sid: assistant_sid}
27
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/ModelBuilds"
28
+ end
29
+
30
+ ##
31
+ # Lists ModelBuildInstance records from the API as a list.
32
+ # Unlike stream(), this operation is eager and will load `limit` records into
33
+ # memory before returning.
34
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
35
+ # guarantees to never return more than limit. Default is no limit
36
+ # @param [Integer] page_size Number of records to fetch per request, when
37
+ # not set will use the default value of 50 records. If no page_size is defined
38
+ # but a limit is defined, stream() will attempt to read the limit with the most
39
+ # efficient page size, i.e. min(limit, 1000)
40
+ # @return [Array] Array of up to limit results
41
+ def list(limit: nil, page_size: nil)
42
+ self.stream(limit: limit, page_size: page_size).entries
43
+ end
44
+
45
+ ##
46
+ # Streams ModelBuildInstance records from the API as an Enumerable.
47
+ # This operation lazily loads records as efficiently as possible until the limit
48
+ # is reached.
49
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
50
+ # guarantees to never return more than limit. Default is no limit.
51
+ # @param [Integer] page_size Number of records to fetch per request, when
52
+ # not set will use the default value of 50 records. If no page_size is defined
53
+ # but a limit is defined, stream() will attempt to read the limit with the most
54
+ # efficient page size, i.e. min(limit, 1000)
55
+ # @return [Enumerable] Enumerable that will yield up to limit results
56
+ def stream(limit: nil, page_size: nil)
57
+ limits = @version.read_limits(limit, page_size)
58
+
59
+ page = self.page(page_size: limits[:page_size], )
60
+
61
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
62
+ end
63
+
64
+ ##
65
+ # When passed a block, yields ModelBuildInstance records from the API.
66
+ # This operation lazily loads records as efficiently as possible until the limit
67
+ # is reached.
68
+ def each
69
+ limits = @version.read_limits
70
+
71
+ page = self.page(page_size: limits[:page_size], )
72
+
73
+ @version.stream(page,
74
+ limit: limits[:limit],
75
+ page_limit: limits[:page_limit]).each {|x| yield x}
76
+ end
77
+
78
+ ##
79
+ # Retrieve a single page of ModelBuildInstance records from the API.
80
+ # Request is executed immediately.
81
+ # @param [String] page_token PageToken provided by the API
82
+ # @param [Integer] page_number Page Number, this value is simply for client state
83
+ # @param [Integer] page_size Number of records to return, defaults to 50
84
+ # @return [Page] Page of ModelBuildInstance
85
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
86
+ params = Twilio::Values.of({
87
+ 'PageToken' => page_token,
88
+ 'Page' => page_number,
89
+ 'PageSize' => page_size,
90
+ })
91
+ response = @version.page(
92
+ 'GET',
93
+ @uri,
94
+ params
95
+ )
96
+ ModelBuildPage.new(@version, response, @solution)
97
+ end
98
+
99
+ ##
100
+ # Retrieve a single page of ModelBuildInstance records from the API.
101
+ # Request is executed immediately.
102
+ # @param [String] target_url API-generated URL for the requested results page
103
+ # @return [Page] Page of ModelBuildInstance
104
+ def get_page(target_url)
105
+ response = @version.domain.request(
106
+ 'GET',
107
+ target_url
108
+ )
109
+ ModelBuildPage.new(@version, response, @solution)
110
+ end
111
+
112
+ ##
113
+ # Retrieve a single page of ModelBuildInstance records from the API.
114
+ # Request is executed immediately.
115
+ # @param [String] status_callback The status_callback
116
+ # @param [String] unique_name A user-provided string that uniquely identifies this
117
+ # resource as an alternative to the sid. Unique up to 64 characters long. For
118
+ # example: v0.1
119
+ # @return [ModelBuildInstance] Newly created ModelBuildInstance
120
+ def create(status_callback: :unset, unique_name: :unset)
121
+ data = Twilio::Values.of({'StatusCallback' => status_callback, 'UniqueName' => unique_name, })
122
+
123
+ payload = @version.create(
124
+ 'POST',
125
+ @uri,
126
+ data: data
127
+ )
128
+
129
+ ModelBuildInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], )
130
+ end
131
+
132
+ ##
133
+ # Provide a user friendly representation
134
+ def to_s
135
+ '#<Twilio.Autopilot.V1.ModelBuildList>'
136
+ end
137
+ end
138
+
139
+ ##
140
+ # 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.
141
+ class ModelBuildPage < Page
142
+ ##
143
+ # Initialize the ModelBuildPage
144
+ # @param [Version] version Version that contains the resource
145
+ # @param [Response] response Response from the API
146
+ # @param [Hash] solution Path solution for the resource
147
+ # @return [ModelBuildPage] ModelBuildPage
148
+ def initialize(version, response, solution)
149
+ super(version, response)
150
+
151
+ # Path Solution
152
+ @solution = solution
153
+ end
154
+
155
+ ##
156
+ # Build an instance of ModelBuildInstance
157
+ # @param [Hash] payload Payload response from the API
158
+ # @return [ModelBuildInstance] ModelBuildInstance
159
+ def get_instance(payload)
160
+ ModelBuildInstance.new(@version, payload, assistant_sid: @solution[:assistant_sid], )
161
+ end
162
+
163
+ ##
164
+ # Provide a user friendly representation
165
+ def to_s
166
+ '<Twilio.Autopilot.V1.ModelBuildPage>'
167
+ end
168
+ end
169
+
170
+ ##
171
+ # 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.
172
+ class ModelBuildContext < InstanceContext
173
+ ##
174
+ # Initialize the ModelBuildContext
175
+ # @param [Version] version Version that contains the resource
176
+ # @param [String] assistant_sid The assistant_sid
177
+ # @param [String] sid The sid
178
+ # @return [ModelBuildContext] ModelBuildContext
179
+ def initialize(version, assistant_sid, sid)
180
+ super(version)
181
+
182
+ # Path Solution
183
+ @solution = {assistant_sid: assistant_sid, sid: sid, }
184
+ @uri = "/Assistants/#{@solution[:assistant_sid]}/ModelBuilds/#{@solution[:sid]}"
185
+ end
186
+
187
+ ##
188
+ # Fetch a ModelBuildInstance
189
+ # @return [ModelBuildInstance] Fetched ModelBuildInstance
190
+ def fetch
191
+ params = Twilio::Values.of({})
192
+
193
+ payload = @version.fetch(
194
+ 'GET',
195
+ @uri,
196
+ params,
197
+ )
198
+
199
+ ModelBuildInstance.new(
200
+ @version,
201
+ payload,
202
+ assistant_sid: @solution[:assistant_sid],
203
+ sid: @solution[:sid],
204
+ )
205
+ end
206
+
207
+ ##
208
+ # Update the ModelBuildInstance
209
+ # @param [String] unique_name A user-provided string that uniquely identifies this
210
+ # resource as an alternative to the sid. Unique up to 64 characters long. For
211
+ # example: v0.1
212
+ # @return [ModelBuildInstance] Updated ModelBuildInstance
213
+ def update(unique_name: :unset)
214
+ data = Twilio::Values.of({'UniqueName' => unique_name, })
215
+
216
+ payload = @version.update(
217
+ 'POST',
218
+ @uri,
219
+ data: data,
220
+ )
221
+
222
+ ModelBuildInstance.new(
223
+ @version,
224
+ payload,
225
+ assistant_sid: @solution[:assistant_sid],
226
+ sid: @solution[:sid],
227
+ )
228
+ end
229
+
230
+ ##
231
+ # Deletes the ModelBuildInstance
232
+ # @return [Boolean] true if delete succeeds, true otherwise
233
+ def delete
234
+ @version.delete('delete', @uri)
235
+ end
236
+
237
+ ##
238
+ # Provide a user friendly representation
239
+ def to_s
240
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
241
+ "#<Twilio.Autopilot.V1.ModelBuildContext #{context}>"
242
+ end
243
+ end
244
+
245
+ ##
246
+ # 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.
247
+ class ModelBuildInstance < InstanceResource
248
+ ##
249
+ # Initialize the ModelBuildInstance
250
+ # @param [Version] version Version that contains the resource
251
+ # @param [Hash] payload payload that contains response from Twilio
252
+ # @param [String] assistant_sid The unique ID of the parent Assistant.
253
+ # @param [String] sid The sid
254
+ # @return [ModelBuildInstance] ModelBuildInstance
255
+ def initialize(version, payload, assistant_sid: nil, sid: nil)
256
+ super(version)
257
+
258
+ # Marshaled Properties
259
+ @properties = {
260
+ 'account_sid' => payload['account_sid'],
261
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
262
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
263
+ 'assistant_sid' => payload['assistant_sid'],
264
+ 'sid' => payload['sid'],
265
+ 'status' => payload['status'],
266
+ 'unique_name' => payload['unique_name'],
267
+ 'url' => payload['url'],
268
+ 'build_duration' => payload['build_duration'] == nil ? payload['build_duration'] : payload['build_duration'].to_i,
269
+ 'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
270
+ }
271
+
272
+ # Context
273
+ @instance_context = nil
274
+ @params = {'assistant_sid' => assistant_sid, 'sid' => sid || @properties['sid'], }
275
+ end
276
+
277
+ ##
278
+ # Generate an instance context for the instance, the context is capable of
279
+ # performing various actions. All instance actions are proxied to the context
280
+ # @return [ModelBuildContext] ModelBuildContext for this ModelBuildInstance
281
+ def context
282
+ unless @instance_context
283
+ @instance_context = ModelBuildContext.new(@version, @params['assistant_sid'], @params['sid'], )
284
+ end
285
+ @instance_context
286
+ end
287
+
288
+ ##
289
+ # @return [String] The unique ID of the Account that created this Model Build.
290
+ def account_sid
291
+ @properties['account_sid']
292
+ end
293
+
294
+ ##
295
+ # @return [Time] The date that this resource was created
296
+ def date_created
297
+ @properties['date_created']
298
+ end
299
+
300
+ ##
301
+ # @return [Time] The date that this resource was last updated
302
+ def date_updated
303
+ @properties['date_updated']
304
+ end
305
+
306
+ ##
307
+ # @return [String] The unique ID of the parent Assistant.
308
+ def assistant_sid
309
+ @properties['assistant_sid']
310
+ end
311
+
312
+ ##
313
+ # @return [String] A 34 character string that uniquely identifies this resource.
314
+ def sid
315
+ @properties['sid']
316
+ end
317
+
318
+ ##
319
+ # @return [model_build.Status] A string that described the model build status. The values can be: `enqueued`, `building`, `completed`, `failed`
320
+ def status
321
+ @properties['status']
322
+ end
323
+
324
+ ##
325
+ # @return [String] A user-provided string that uniquely identifies this resource as an alternative to the sid. Unique up to 64 characters long.
326
+ def unique_name
327
+ @properties['unique_name']
328
+ end
329
+
330
+ ##
331
+ # @return [String] The url
332
+ def url
333
+ @properties['url']
334
+ end
335
+
336
+ ##
337
+ # @return [String] The time in seconds it took to build the model.
338
+ def build_duration
339
+ @properties['build_duration']
340
+ end
341
+
342
+ ##
343
+ # @return [String] The error_code
344
+ def error_code
345
+ @properties['error_code']
346
+ end
347
+
348
+ ##
349
+ # Fetch a ModelBuildInstance
350
+ # @return [ModelBuildInstance] Fetched ModelBuildInstance
351
+ def fetch
352
+ context.fetch
353
+ end
354
+
355
+ ##
356
+ # Update the ModelBuildInstance
357
+ # @param [String] unique_name A user-provided string that uniquely identifies this
358
+ # resource as an alternative to the sid. Unique up to 64 characters long. For
359
+ # example: v0.1
360
+ # @return [ModelBuildInstance] Updated ModelBuildInstance
361
+ def update(unique_name: :unset)
362
+ context.update(unique_name: unique_name, )
363
+ end
364
+
365
+ ##
366
+ # Deletes the ModelBuildInstance
367
+ # @return [Boolean] true if delete succeeds, true otherwise
368
+ def delete
369
+ context.delete
370
+ end
371
+
372
+ ##
373
+ # Provide a user friendly representation
374
+ def to_s
375
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
376
+ "<Twilio.Autopilot.V1.ModelBuildInstance #{values}>"
377
+ end
378
+
379
+ ##
380
+ # Provide a detailed, user friendly representation
381
+ def inspect
382
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
383
+ "<Twilio.Autopilot.V1.ModelBuildInstance #{values}>"
384
+ end
385
+ end
386
+ end
387
+ end
388
+ end
389
+ end
390
+ end