imagekitio 4.0.0 → 4.1.1

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/README.md +1 -1
  4. data/lib/imagekitio/client.rb +4 -0
  5. data/lib/imagekitio/helpers/helper.rb +4 -0
  6. data/lib/imagekitio/helpers/transformation_utils.rb +7 -0
  7. data/lib/imagekitio/internal/transport/base_client.rb +7 -1
  8. data/lib/imagekitio/internal/transport/pooled_net_requester.rb +17 -24
  9. data/lib/imagekitio/internal/type/base_model.rb +1 -0
  10. data/lib/imagekitio/internal/type/union.rb +20 -8
  11. data/lib/imagekitio/internal/util.rb +7 -2
  12. data/lib/imagekitio/models/base_overlay.rb +73 -3
  13. data/lib/imagekitio/models/beta/v2/file_upload_params.rb +2 -2
  14. data/lib/imagekitio/models/beta/v2/file_upload_response.rb +21 -1
  15. data/lib/imagekitio/models/extension_config.rb +674 -0
  16. data/lib/imagekitio/models/extensions.rb +559 -1
  17. data/lib/imagekitio/models/file_update_response.rb +21 -1
  18. data/lib/imagekitio/models/file_upload_params.rb +2 -2
  19. data/lib/imagekitio/models/file_upload_response.rb +21 -1
  20. data/lib/imagekitio/models/image_overlay.rb +12 -0
  21. data/lib/imagekitio/models/saved_extension.rb +62 -0
  22. data/lib/imagekitio/models/saved_extension_create_params.rb +42 -0
  23. data/lib/imagekitio/models/saved_extension_delete_params.rb +14 -0
  24. data/lib/imagekitio/models/saved_extension_get_params.rb +14 -0
  25. data/lib/imagekitio/models/saved_extension_list_params.rb +14 -0
  26. data/lib/imagekitio/models/saved_extension_list_response.rb +8 -0
  27. data/lib/imagekitio/models/saved_extension_update_params.rb +42 -0
  28. data/lib/imagekitio/models/solid_color_overlay_transformation.rb +24 -12
  29. data/lib/imagekitio/models/subtitle_overlay.rb +12 -0
  30. data/lib/imagekitio/models/subtitle_overlay_transformation.rb +4 -3
  31. data/lib/imagekitio/models/text_overlay.rb +6 -0
  32. data/lib/imagekitio/models/text_overlay_transformation.rb +35 -19
  33. data/lib/imagekitio/models/transformation.rb +62 -12
  34. data/lib/imagekitio/models/unsafe_unwrap_webhook_event.rb +2 -0
  35. data/lib/imagekitio/models/unwrap_webhook_event.rb +2 -0
  36. data/lib/imagekitio/models/update_file_request.rb +2 -2
  37. data/lib/imagekitio/models/upload_pre_transform_success_event.rb +21 -1
  38. data/lib/imagekitio/models/video_overlay.rb +12 -0
  39. data/lib/imagekitio/models.rb +14 -0
  40. data/lib/imagekitio/resources/beta/v2/files.rb +1 -1
  41. data/lib/imagekitio/resources/files/metadata.rb +1 -1
  42. data/lib/imagekitio/resources/files.rb +1 -1
  43. data/lib/imagekitio/resources/saved_extensions.rb +146 -0
  44. data/lib/imagekitio/version.rb +1 -1
  45. data/lib/imagekitio.rb +11 -1
  46. data/manifest.yaml +2 -0
  47. data/rbi/imagekitio/client.rbi +3 -0
  48. data/rbi/imagekitio/internal/transport/base_client.rbi +5 -0
  49. data/rbi/imagekitio/internal/transport/pooled_net_requester.rbi +6 -2
  50. data/rbi/imagekitio/internal/type/base_model.rbi +8 -4
  51. data/rbi/imagekitio/models/base_overlay.rbi +110 -1
  52. data/rbi/imagekitio/models/beta/v2/file_upload_params.rbi +8 -0
  53. data/rbi/imagekitio/models/beta/v2/file_upload_response.rbi +61 -0
  54. data/rbi/imagekitio/models/extension_config.rbi +1406 -0
  55. data/rbi/imagekitio/models/extensions.rbi +1162 -0
  56. data/rbi/imagekitio/models/file_update_response.rbi +61 -0
  57. data/rbi/imagekitio/models/file_upload_params.rbi +8 -0
  58. data/rbi/imagekitio/models/file_upload_response.rbi +61 -0
  59. data/rbi/imagekitio/models/image_overlay.rbi +18 -0
  60. data/rbi/imagekitio/models/saved_extension.rbi +114 -0
  61. data/rbi/imagekitio/models/saved_extension_create_params.rbi +85 -0
  62. data/rbi/imagekitio/models/saved_extension_delete_params.rbi +30 -0
  63. data/rbi/imagekitio/models/saved_extension_get_params.rbi +30 -0
  64. data/rbi/imagekitio/models/saved_extension_list_params.rbi +30 -0
  65. data/rbi/imagekitio/models/saved_extension_list_response.rbi +11 -0
  66. data/rbi/imagekitio/models/saved_extension_update_params.rbi +106 -0
  67. data/rbi/imagekitio/models/solid_color_overlay_transformation.rbi +33 -18
  68. data/rbi/imagekitio/models/subtitle_overlay.rbi +18 -0
  69. data/rbi/imagekitio/models/subtitle_overlay_transformation.rbi +6 -4
  70. data/rbi/imagekitio/models/text_overlay.rbi +9 -0
  71. data/rbi/imagekitio/models/text_overlay_transformation.rbi +47 -26
  72. data/rbi/imagekitio/models/transformation.rbi +99 -18
  73. data/rbi/imagekitio/models/update_file_request.rbi +8 -0
  74. data/rbi/imagekitio/models/upload_pre_transform_success_event.rbi +61 -0
  75. data/rbi/imagekitio/models/video_overlay.rbi +18 -0
  76. data/rbi/imagekitio/models.rbi +14 -0
  77. data/rbi/imagekitio/resources/beta/v2/files.rbi +2 -0
  78. data/rbi/imagekitio/resources/files.rbi +2 -0
  79. data/rbi/imagekitio/resources/saved_extensions.rbi +114 -0
  80. data/sig/imagekitio/client.rbs +2 -0
  81. data/sig/imagekitio/internal/transport/base_client.rbs +2 -0
  82. data/sig/imagekitio/internal/transport/pooled_net_requester.rbs +4 -1
  83. data/sig/imagekitio/models/base_overlay.rbs +22 -0
  84. data/sig/imagekitio/models/beta/v2/file_upload_response.rbs +21 -0
  85. data/sig/imagekitio/models/extension_config.rbs +606 -0
  86. data/sig/imagekitio/models/extensions.rbs +491 -0
  87. data/sig/imagekitio/models/file_update_response.rbs +21 -0
  88. data/sig/imagekitio/models/file_upload_response.rbs +21 -0
  89. data/sig/imagekitio/models/saved_extension.rbs +59 -0
  90. data/sig/imagekitio/models/saved_extension_create_params.rbs +36 -0
  91. data/sig/imagekitio/models/saved_extension_delete_params.rbs +15 -0
  92. data/sig/imagekitio/models/saved_extension_get_params.rbs +15 -0
  93. data/sig/imagekitio/models/saved_extension_list_params.rbs +15 -0
  94. data/sig/imagekitio/models/saved_extension_list_response.rbs +7 -0
  95. data/sig/imagekitio/models/saved_extension_update_params.rbs +44 -0
  96. data/sig/imagekitio/models/solid_color_overlay_transformation.rbs +1 -1
  97. data/sig/imagekitio/models/text_overlay_transformation.rbs +1 -1
  98. data/sig/imagekitio/models/transformation.rbs +15 -1
  99. data/sig/imagekitio/models/upload_pre_transform_success_event.rbs +21 -0
  100. data/sig/imagekitio/models.rbs +14 -0
  101. data/sig/imagekitio/resources/saved_extensions.rbs +33 -0
  102. metadata +43 -2
@@ -11,6 +11,10 @@ module Imagekitio
11
11
 
12
12
  variant :"ai-auto-description", -> { Imagekitio::ExtensionItem::AIAutoDescription }
13
13
 
14
+ variant :"ai-tasks", -> { Imagekitio::ExtensionItem::AITasks }
15
+
16
+ variant :"saved-extension", -> { Imagekitio::ExtensionItem::SavedExtension }
17
+
14
18
  variant -> { Imagekitio::ExtensionItem::AutoTaggingExtension }
15
19
 
16
20
  class RemoveBg < Imagekitio::Internal::Type::BaseModel
@@ -126,8 +130,562 @@ module Imagekitio
126
130
  # @param name [Symbol, :"ai-auto-description"] Specifies the auto description extension.
127
131
  end
128
132
 
133
+ class AITasks < Imagekitio::Internal::Type::BaseModel
134
+ # @!attribute name
135
+ # Specifies the AI tasks extension for automated image analysis using AI models.
136
+ #
137
+ # @return [Symbol, :"ai-tasks"]
138
+ required :name, const: :"ai-tasks"
139
+
140
+ # @!attribute tasks
141
+ # Array of task objects defining AI operations to perform on the asset.
142
+ #
143
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags, Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata, Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo>]
144
+ required :tasks,
145
+ -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem::AITasks::Task] }
146
+
147
+ # @!method initialize(tasks:, name: :"ai-tasks")
148
+ # @param tasks [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags, Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata, Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo>] Array of task objects defining AI operations to perform on the asset.
149
+ #
150
+ # @param name [Symbol, :"ai-tasks"] Specifies the AI tasks extension for automated image analysis using AI models.
151
+
152
+ module Task
153
+ extend Imagekitio::Internal::Type::Union
154
+
155
+ discriminator :type
156
+
157
+ variant :select_tags, -> { Imagekitio::ExtensionItem::AITasks::Task::SelectTags }
158
+
159
+ variant :select_metadata, -> { Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata }
160
+
161
+ variant :yes_no, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo }
162
+
163
+ class SelectTags < Imagekitio::Internal::Type::BaseModel
164
+ # @!attribute instruction
165
+ # The question or instruction for the AI to analyze the image.
166
+ #
167
+ # @return [String]
168
+ required :instruction, String
169
+
170
+ # @!attribute type
171
+ # Task type that analyzes the image and adds matching tags from a vocabulary.
172
+ #
173
+ # @return [Symbol, :select_tags]
174
+ required :type, const: :select_tags
175
+
176
+ # @!attribute max_selections
177
+ # Maximum number of tags to select from the vocabulary.
178
+ #
179
+ # @return [Integer, nil]
180
+ optional :max_selections, Integer
181
+
182
+ # @!attribute min_selections
183
+ # Minimum number of tags to select from the vocabulary.
184
+ #
185
+ # @return [Integer, nil]
186
+ optional :min_selections, Integer
187
+
188
+ # @!attribute vocabulary
189
+ # Array of possible tag values. Combined length of all strings must not exceed 500
190
+ # characters. Cannot contain the `%` character.
191
+ #
192
+ # @return [Array<String>, nil]
193
+ optional :vocabulary, Imagekitio::Internal::Type::ArrayOf[String]
194
+
195
+ # @!method initialize(instruction:, max_selections: nil, min_selections: nil, vocabulary: nil, type: :select_tags)
196
+ # Some parameter documentations has been truncated, see
197
+ # {Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags} for more details.
198
+ #
199
+ # @param instruction [String] The question or instruction for the AI to analyze the image.
200
+ #
201
+ # @param max_selections [Integer] Maximum number of tags to select from the vocabulary.
202
+ #
203
+ # @param min_selections [Integer] Minimum number of tags to select from the vocabulary.
204
+ #
205
+ # @param vocabulary [Array<String>] Array of possible tag values. Combined length of all strings must not exceed 500
206
+ #
207
+ # @param type [Symbol, :select_tags] Task type that analyzes the image and adds matching tags from a vocabulary.
208
+ end
209
+
210
+ class SelectMetadata < Imagekitio::Internal::Type::BaseModel
211
+ # @!attribute field
212
+ # Name of the custom metadata field to set. The field must exist in your account.
213
+ #
214
+ # @return [String]
215
+ required :field, String
216
+
217
+ # @!attribute instruction
218
+ # The question or instruction for the AI to analyze the image.
219
+ #
220
+ # @return [String]
221
+ required :instruction, String
222
+
223
+ # @!attribute type
224
+ # Task type that analyzes the image and sets a custom metadata field value from a
225
+ # vocabulary.
226
+ #
227
+ # @return [Symbol, :select_metadata]
228
+ required :type, const: :select_metadata
229
+
230
+ # @!attribute max_selections
231
+ # Maximum number of values to select from the vocabulary.
232
+ #
233
+ # @return [Integer, nil]
234
+ optional :max_selections, Integer
235
+
236
+ # @!attribute min_selections
237
+ # Minimum number of values to select from the vocabulary.
238
+ #
239
+ # @return [Integer, nil]
240
+ optional :min_selections, Integer
241
+
242
+ # @!attribute vocabulary
243
+ # Array of possible values matching the custom metadata field type.
244
+ #
245
+ # @return [Array<String, Float, Boolean>, nil]
246
+ optional :vocabulary,
247
+ -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary] }
248
+
249
+ # @!method initialize(field:, instruction:, max_selections: nil, min_selections: nil, vocabulary: nil, type: :select_metadata)
250
+ # Some parameter documentations has been truncated, see
251
+ # {Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata} for more
252
+ # details.
253
+ #
254
+ # @param field [String] Name of the custom metadata field to set. The field must exist in your account.
255
+ #
256
+ # @param instruction [String] The question or instruction for the AI to analyze the image.
257
+ #
258
+ # @param max_selections [Integer] Maximum number of values to select from the vocabulary.
259
+ #
260
+ # @param min_selections [Integer] Minimum number of values to select from the vocabulary.
261
+ #
262
+ # @param vocabulary [Array<String, Float, Boolean>] Array of possible values matching the custom metadata field type.
263
+ #
264
+ # @param type [Symbol, :select_metadata] Task type that analyzes the image and sets a custom metadata field value from a
265
+
266
+ module Vocabulary
267
+ extend Imagekitio::Internal::Type::Union
268
+
269
+ variant String
270
+
271
+ variant Float
272
+
273
+ variant Imagekitio::Internal::Type::Boolean
274
+
275
+ # @!method self.variants
276
+ # @return [Array(String, Float, Boolean)]
277
+ end
278
+ end
279
+
280
+ class YesNo < Imagekitio::Internal::Type::BaseModel
281
+ # @!attribute instruction
282
+ # The yes/no question for the AI to answer about the image.
283
+ #
284
+ # @return [String]
285
+ required :instruction, String
286
+
287
+ # @!attribute type
288
+ # Task type that asks a yes/no question and executes actions based on the answer.
289
+ #
290
+ # @return [Symbol, :yes_no]
291
+ required :type, const: :yes_no
292
+
293
+ # @!attribute on_no
294
+ # Actions to execute if the AI answers no.
295
+ #
296
+ # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo, nil]
297
+ optional :on_no, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo }
298
+
299
+ # @!attribute on_unknown
300
+ # Actions to execute if the AI cannot determine the answer.
301
+ #
302
+ # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown, nil]
303
+ optional :on_unknown, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown }
304
+
305
+ # @!attribute on_yes
306
+ # Actions to execute if the AI answers yes.
307
+ #
308
+ # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes, nil]
309
+ optional :on_yes, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes }
310
+
311
+ # @!method initialize(instruction:, on_no: nil, on_unknown: nil, on_yes: nil, type: :yes_no)
312
+ # @param instruction [String] The yes/no question for the AI to answer about the image.
313
+ #
314
+ # @param on_no [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo] Actions to execute if the AI answers no.
315
+ #
316
+ # @param on_unknown [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown] Actions to execute if the AI cannot determine the answer.
317
+ #
318
+ # @param on_yes [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes] Actions to execute if the AI answers yes.
319
+ #
320
+ # @param type [Symbol, :yes_no] Task type that asks a yes/no question and executes actions based on the answer.
321
+
322
+ # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_no
323
+ class OnNo < Imagekitio::Internal::Type::BaseModel
324
+ # @!attribute add_tags
325
+ # Array of tag strings to add to the asset.
326
+ #
327
+ # @return [Array<String>, nil]
328
+ optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String]
329
+
330
+ # @!attribute remove_tags
331
+ # Array of tag strings to remove from the asset.
332
+ #
333
+ # @return [Array<String>, nil]
334
+ optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String]
335
+
336
+ # @!attribute set_metadata
337
+ # Array of custom metadata field updates.
338
+ #
339
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata>, nil]
340
+ optional :set_metadata,
341
+ -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] }
342
+
343
+ # @!attribute unset_metadata
344
+ # Array of custom metadata fields to remove.
345
+ #
346
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata>, nil]
347
+ optional :unset_metadata,
348
+ -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] }
349
+
350
+ # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil)
351
+ # Actions to execute if the AI answers no.
352
+ #
353
+ # @param add_tags [Array<String>] Array of tag strings to add to the asset.
354
+ #
355
+ # @param remove_tags [Array<String>] Array of tag strings to remove from the asset.
356
+ #
357
+ # @param set_metadata [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata>] Array of custom metadata field updates.
358
+ #
359
+ # @param unset_metadata [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata>] Array of custom metadata fields to remove.
360
+
361
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
362
+ # @!attribute field
363
+ # Name of the custom metadata field to set.
364
+ #
365
+ # @return [String]
366
+ required :field, String
367
+
368
+ # @!attribute value
369
+ # Value to set for the custom metadata field. The value type should match the
370
+ # custom metadata field type.
371
+ #
372
+ # @return [String, Float, Boolean, Array<String, Float, Boolean>]
373
+ required :value, union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value }
374
+
375
+ # @!method initialize(field:, value:)
376
+ # Some parameter documentations has been truncated, see
377
+ # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata} for
378
+ # more details.
379
+ #
380
+ # @param field [String] Name of the custom metadata field to set.
381
+ #
382
+ # @param value [String, Float, Boolean, Array<String, Float, Boolean>] Value to set for the custom metadata field. The value type should match the cust
383
+
384
+ # Value to set for the custom metadata field. The value type should match the
385
+ # custom metadata field type.
386
+ #
387
+ # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata#value
388
+ module Value
389
+ extend Imagekitio::Internal::Type::Union
390
+
391
+ variant String
392
+
393
+ variant Float
394
+
395
+ variant Imagekitio::Internal::Type::Boolean
396
+
397
+ variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::MixedArray }
398
+
399
+ module Mixed
400
+ extend Imagekitio::Internal::Type::Union
401
+
402
+ variant String
403
+
404
+ variant Float
405
+
406
+ variant Imagekitio::Internal::Type::Boolean
407
+
408
+ # @!method self.variants
409
+ # @return [Array(String, Float, Boolean)]
410
+ end
411
+
412
+ # @!method self.variants
413
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
414
+
415
+ # @type [Imagekitio::Internal::Type::Converter]
416
+ MixedArray =
417
+ Imagekitio::Internal::Type::ArrayOf[union: -> {
418
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed
419
+ }]
420
+ end
421
+ end
422
+
423
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
424
+ # @!attribute field
425
+ # Name of the custom metadata field to remove.
426
+ #
427
+ # @return [String]
428
+ required :field, String
429
+
430
+ # @!method initialize(field:)
431
+ # @param field [String] Name of the custom metadata field to remove.
432
+ end
433
+ end
434
+
435
+ # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_unknown
436
+ class OnUnknown < Imagekitio::Internal::Type::BaseModel
437
+ # @!attribute add_tags
438
+ # Array of tag strings to add to the asset.
439
+ #
440
+ # @return [Array<String>, nil]
441
+ optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String]
442
+
443
+ # @!attribute remove_tags
444
+ # Array of tag strings to remove from the asset.
445
+ #
446
+ # @return [Array<String>, nil]
447
+ optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String]
448
+
449
+ # @!attribute set_metadata
450
+ # Array of custom metadata field updates.
451
+ #
452
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata>, nil]
453
+ optional :set_metadata,
454
+ -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] }
455
+
456
+ # @!attribute unset_metadata
457
+ # Array of custom metadata fields to remove.
458
+ #
459
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata>, nil]
460
+ optional :unset_metadata,
461
+ -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] }
462
+
463
+ # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil)
464
+ # Actions to execute if the AI cannot determine the answer.
465
+ #
466
+ # @param add_tags [Array<String>] Array of tag strings to add to the asset.
467
+ #
468
+ # @param remove_tags [Array<String>] Array of tag strings to remove from the asset.
469
+ #
470
+ # @param set_metadata [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata>] Array of custom metadata field updates.
471
+ #
472
+ # @param unset_metadata [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata>] Array of custom metadata fields to remove.
473
+
474
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
475
+ # @!attribute field
476
+ # Name of the custom metadata field to set.
477
+ #
478
+ # @return [String]
479
+ required :field, String
480
+
481
+ # @!attribute value
482
+ # Value to set for the custom metadata field. The value type should match the
483
+ # custom metadata field type.
484
+ #
485
+ # @return [String, Float, Boolean, Array<String, Float, Boolean>]
486
+ required :value,
487
+ union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value }
488
+
489
+ # @!method initialize(field:, value:)
490
+ # Some parameter documentations has been truncated, see
491
+ # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata}
492
+ # for more details.
493
+ #
494
+ # @param field [String] Name of the custom metadata field to set.
495
+ #
496
+ # @param value [String, Float, Boolean, Array<String, Float, Boolean>] Value to set for the custom metadata field. The value type should match the cust
497
+
498
+ # Value to set for the custom metadata field. The value type should match the
499
+ # custom metadata field type.
500
+ #
501
+ # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata#value
502
+ module Value
503
+ extend Imagekitio::Internal::Type::Union
504
+
505
+ variant String
506
+
507
+ variant Float
508
+
509
+ variant Imagekitio::Internal::Type::Boolean
510
+
511
+ variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::MixedArray }
512
+
513
+ module Mixed
514
+ extend Imagekitio::Internal::Type::Union
515
+
516
+ variant String
517
+
518
+ variant Float
519
+
520
+ variant Imagekitio::Internal::Type::Boolean
521
+
522
+ # @!method self.variants
523
+ # @return [Array(String, Float, Boolean)]
524
+ end
525
+
526
+ # @!method self.variants
527
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
528
+
529
+ # @type [Imagekitio::Internal::Type::Converter]
530
+ MixedArray =
531
+ Imagekitio::Internal::Type::ArrayOf[union: -> {
532
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed
533
+ }]
534
+ end
535
+ end
536
+
537
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
538
+ # @!attribute field
539
+ # Name of the custom metadata field to remove.
540
+ #
541
+ # @return [String]
542
+ required :field, String
543
+
544
+ # @!method initialize(field:)
545
+ # @param field [String] Name of the custom metadata field to remove.
546
+ end
547
+ end
548
+
549
+ # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_yes
550
+ class OnYes < Imagekitio::Internal::Type::BaseModel
551
+ # @!attribute add_tags
552
+ # Array of tag strings to add to the asset.
553
+ #
554
+ # @return [Array<String>, nil]
555
+ optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String]
556
+
557
+ # @!attribute remove_tags
558
+ # Array of tag strings to remove from the asset.
559
+ #
560
+ # @return [Array<String>, nil]
561
+ optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String]
562
+
563
+ # @!attribute set_metadata
564
+ # Array of custom metadata field updates.
565
+ #
566
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata>, nil]
567
+ optional :set_metadata,
568
+ -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] }
569
+
570
+ # @!attribute unset_metadata
571
+ # Array of custom metadata fields to remove.
572
+ #
573
+ # @return [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata>, nil]
574
+ optional :unset_metadata,
575
+ -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] }
576
+
577
+ # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil)
578
+ # Actions to execute if the AI answers yes.
579
+ #
580
+ # @param add_tags [Array<String>] Array of tag strings to add to the asset.
581
+ #
582
+ # @param remove_tags [Array<String>] Array of tag strings to remove from the asset.
583
+ #
584
+ # @param set_metadata [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata>] Array of custom metadata field updates.
585
+ #
586
+ # @param unset_metadata [Array<Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata>] Array of custom metadata fields to remove.
587
+
588
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
589
+ # @!attribute field
590
+ # Name of the custom metadata field to set.
591
+ #
592
+ # @return [String]
593
+ required :field, String
594
+
595
+ # @!attribute value
596
+ # Value to set for the custom metadata field. The value type should match the
597
+ # custom metadata field type.
598
+ #
599
+ # @return [String, Float, Boolean, Array<String, Float, Boolean>]
600
+ required :value, union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value }
601
+
602
+ # @!method initialize(field:, value:)
603
+ # Some parameter documentations has been truncated, see
604
+ # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata}
605
+ # for more details.
606
+ #
607
+ # @param field [String] Name of the custom metadata field to set.
608
+ #
609
+ # @param value [String, Float, Boolean, Array<String, Float, Boolean>] Value to set for the custom metadata field. The value type should match the cust
610
+
611
+ # Value to set for the custom metadata field. The value type should match the
612
+ # custom metadata field type.
613
+ #
614
+ # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata#value
615
+ module Value
616
+ extend Imagekitio::Internal::Type::Union
617
+
618
+ variant String
619
+
620
+ variant Float
621
+
622
+ variant Imagekitio::Internal::Type::Boolean
623
+
624
+ variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::MixedArray }
625
+
626
+ module Mixed
627
+ extend Imagekitio::Internal::Type::Union
628
+
629
+ variant String
630
+
631
+ variant Float
632
+
633
+ variant Imagekitio::Internal::Type::Boolean
634
+
635
+ # @!method self.variants
636
+ # @return [Array(String, Float, Boolean)]
637
+ end
638
+
639
+ # @!method self.variants
640
+ # @return [Array(String, Float, Boolean, Array<String, Float, Boolean>)]
641
+
642
+ # @type [Imagekitio::Internal::Type::Converter]
643
+ MixedArray =
644
+ Imagekitio::Internal::Type::ArrayOf[union: -> {
645
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed
646
+ }]
647
+ end
648
+ end
649
+
650
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
651
+ # @!attribute field
652
+ # Name of the custom metadata field to remove.
653
+ #
654
+ # @return [String]
655
+ required :field, String
656
+
657
+ # @!method initialize(field:)
658
+ # @param field [String] Name of the custom metadata field to remove.
659
+ end
660
+ end
661
+ end
662
+
663
+ # @!method self.variants
664
+ # @return [Array(Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags, Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata, Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo)]
665
+ end
666
+ end
667
+
668
+ class SavedExtension < Imagekitio::Internal::Type::BaseModel
669
+ # @!attribute id
670
+ # The unique ID of the saved extension to apply.
671
+ #
672
+ # @return [String]
673
+ required :id, String
674
+
675
+ # @!attribute name
676
+ # Indicates this is a reference to a saved extension.
677
+ #
678
+ # @return [Symbol, :"saved-extension"]
679
+ required :name, const: :"saved-extension"
680
+
681
+ # @!method initialize(id:, name: :"saved-extension")
682
+ # @param id [String] The unique ID of the saved extension to apply.
683
+ #
684
+ # @param name [Symbol, :"saved-extension"] Indicates this is a reference to a saved extension.
685
+ end
686
+
129
687
  # @!method self.variants
130
- # @return [Array(Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension)]
688
+ # @return [Array(Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension)]
131
689
  end
132
690
 
133
691
  # @type [Imagekitio::Internal::Type::Converter]
@@ -24,6 +24,13 @@ module Imagekitio
24
24
  enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AIAutoDescription },
25
25
  api_name: :"ai-auto-description"
26
26
 
27
+ # @!attribute ai_tasks
28
+ #
29
+ # @return [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AITasks, nil]
30
+ optional :ai_tasks,
31
+ enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AITasks },
32
+ api_name: :"ai-tasks"
33
+
27
34
  # @!attribute aws_auto_tagging
28
35
  #
29
36
  # @return [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AwsAutoTagging, nil]
@@ -45,8 +52,9 @@ module Imagekitio
45
52
  enum: -> { Imagekitio::Models::FileUpdateResponse::ExtensionStatus::RemoveBg },
46
53
  api_name: :"remove-bg"
47
54
 
48
- # @!method initialize(ai_auto_description: nil, aws_auto_tagging: nil, google_auto_tagging: nil, remove_bg: nil)
55
+ # @!method initialize(ai_auto_description: nil, ai_tasks: nil, aws_auto_tagging: nil, google_auto_tagging: nil, remove_bg: nil)
49
56
  # @param ai_auto_description [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AIAutoDescription]
57
+ # @param ai_tasks [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AITasks]
50
58
  # @param aws_auto_tagging [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::AwsAutoTagging]
51
59
  # @param google_auto_tagging [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::GoogleAutoTagging]
52
60
  # @param remove_bg [Symbol, Imagekitio::Models::FileUpdateResponse::ExtensionStatus::RemoveBg]
@@ -63,6 +71,18 @@ module Imagekitio
63
71
  # @return [Array<Symbol>]
64
72
  end
65
73
 
74
+ # @see Imagekitio::Models::FileUpdateResponse::ExtensionStatus#ai_tasks
75
+ module AITasks
76
+ extend Imagekitio::Internal::Type::Enum
77
+
78
+ SUCCESS = :success
79
+ PENDING = :pending
80
+ FAILED = :failed
81
+
82
+ # @!method self.values
83
+ # @return [Array<Symbol>]
84
+ end
85
+
66
86
  # @see Imagekitio::Models::FileUpdateResponse::ExtensionStatus#aws_auto_tagging
67
87
  module AwsAutoTagging
68
88
  extend Imagekitio::Internal::Type::Enum
@@ -156,7 +156,7 @@ module Imagekitio
156
156
  # Array of extensions to be applied to the asset. Each extension can be configured
157
157
  # with specific parameters based on the extension type.
158
158
  #
159
- # @return [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>, nil]
159
+ # @return [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>, nil]
160
160
  optional :extensions, -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem] }
161
161
 
162
162
  # @!attribute folder
@@ -317,7 +317,7 @@ module Imagekitio
317
317
  #
318
318
  # @param expire [Integer] The time until your signature is valid. It must be a [Unix time](https://en.wiki
319
319
  #
320
- # @param extensions [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>] Array of extensions to be applied to the asset. Each extension can be configured
320
+ # @param extensions [Array<Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension>] Array of extensions to be applied to the asset. Each extension can be configured
321
321
  #
322
322
  # @param folder [String] The folder path in which the image has to be uploaded. If the folder(s) didn't e
323
323
  #