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
@@ -0,0 +1,1406 @@
1
+ # typed: strong
2
+
3
+ module Imagekitio
4
+ module Models
5
+ # Configuration object for an extension (base extensions only, not saved extension
6
+ # references).
7
+ module ExtensionConfig
8
+ extend Imagekitio::Internal::Type::Union
9
+
10
+ Variants =
11
+ T.type_alias do
12
+ T.any(
13
+ Imagekitio::ExtensionConfig::RemoveBg,
14
+ Imagekitio::ExtensionConfig::AIAutoDescription,
15
+ Imagekitio::ExtensionConfig::AITasks,
16
+ Imagekitio::ExtensionConfig::AutoTaggingExtension
17
+ )
18
+ end
19
+
20
+ class RemoveBg < Imagekitio::Internal::Type::BaseModel
21
+ OrHash =
22
+ T.type_alias do
23
+ T.any(
24
+ Imagekitio::ExtensionConfig::RemoveBg,
25
+ Imagekitio::Internal::AnyHash
26
+ )
27
+ end
28
+
29
+ # Specifies the background removal extension.
30
+ sig { returns(Symbol) }
31
+ attr_accessor :name
32
+
33
+ sig do
34
+ returns(T.nilable(Imagekitio::ExtensionConfig::RemoveBg::Options))
35
+ end
36
+ attr_reader :options
37
+
38
+ sig do
39
+ params(
40
+ options: Imagekitio::ExtensionConfig::RemoveBg::Options::OrHash
41
+ ).void
42
+ end
43
+ attr_writer :options
44
+
45
+ sig do
46
+ params(
47
+ options: Imagekitio::ExtensionConfig::RemoveBg::Options::OrHash,
48
+ name: Symbol
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ options: nil,
53
+ # Specifies the background removal extension.
54
+ name: :"remove-bg"
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ name: Symbol,
62
+ options: Imagekitio::ExtensionConfig::RemoveBg::Options
63
+ }
64
+ )
65
+ end
66
+ def to_hash
67
+ end
68
+
69
+ class Options < Imagekitio::Internal::Type::BaseModel
70
+ OrHash =
71
+ T.type_alias do
72
+ T.any(
73
+ Imagekitio::ExtensionConfig::RemoveBg::Options,
74
+ Imagekitio::Internal::AnyHash
75
+ )
76
+ end
77
+
78
+ # Whether to add an artificial shadow to the result. Default is false. Note:
79
+ # Adding shadows is currently only supported for car photos.
80
+ sig { returns(T.nilable(T::Boolean)) }
81
+ attr_reader :add_shadow
82
+
83
+ sig { params(add_shadow: T::Boolean).void }
84
+ attr_writer :add_shadow
85
+
86
+ # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or
87
+ # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be
88
+ # empty.
89
+ sig { returns(T.nilable(String)) }
90
+ attr_reader :bg_color
91
+
92
+ sig { params(bg_color: String).void }
93
+ attr_writer :bg_color
94
+
95
+ # Sets a background image from a URL. If this parameter is set, `bg_color` must be
96
+ # empty.
97
+ sig { returns(T.nilable(String)) }
98
+ attr_reader :bg_image_url
99
+
100
+ sig { params(bg_image_url: String).void }
101
+ attr_writer :bg_image_url
102
+
103
+ # Allows semi-transparent regions in the result. Default is true. Note:
104
+ # Semitransparency is currently only supported for car windows.
105
+ sig { returns(T.nilable(T::Boolean)) }
106
+ attr_reader :semitransparency
107
+
108
+ sig { params(semitransparency: T::Boolean).void }
109
+ attr_writer :semitransparency
110
+
111
+ sig do
112
+ params(
113
+ add_shadow: T::Boolean,
114
+ bg_color: String,
115
+ bg_image_url: String,
116
+ semitransparency: T::Boolean
117
+ ).returns(T.attached_class)
118
+ end
119
+ def self.new(
120
+ # Whether to add an artificial shadow to the result. Default is false. Note:
121
+ # Adding shadows is currently only supported for car photos.
122
+ add_shadow: nil,
123
+ # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or
124
+ # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be
125
+ # empty.
126
+ bg_color: nil,
127
+ # Sets a background image from a URL. If this parameter is set, `bg_color` must be
128
+ # empty.
129
+ bg_image_url: nil,
130
+ # Allows semi-transparent regions in the result. Default is true. Note:
131
+ # Semitransparency is currently only supported for car windows.
132
+ semitransparency: nil
133
+ )
134
+ end
135
+
136
+ sig do
137
+ override.returns(
138
+ {
139
+ add_shadow: T::Boolean,
140
+ bg_color: String,
141
+ bg_image_url: String,
142
+ semitransparency: T::Boolean
143
+ }
144
+ )
145
+ end
146
+ def to_hash
147
+ end
148
+ end
149
+ end
150
+
151
+ class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel
152
+ OrHash =
153
+ T.type_alias do
154
+ T.any(
155
+ Imagekitio::ExtensionConfig::AutoTaggingExtension,
156
+ Imagekitio::Internal::AnyHash
157
+ )
158
+ end
159
+
160
+ # Maximum number of tags to attach to the asset.
161
+ sig { returns(Integer) }
162
+ attr_accessor :max_tags
163
+
164
+ # Minimum confidence level for tags to be considered valid.
165
+ sig { returns(Integer) }
166
+ attr_accessor :min_confidence
167
+
168
+ # Specifies the auto-tagging extension used.
169
+ sig do
170
+ returns(
171
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name::OrSymbol
172
+ )
173
+ end
174
+ attr_accessor :name
175
+
176
+ sig do
177
+ params(
178
+ max_tags: Integer,
179
+ min_confidence: Integer,
180
+ name:
181
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name::OrSymbol
182
+ ).returns(T.attached_class)
183
+ end
184
+ def self.new(
185
+ # Maximum number of tags to attach to the asset.
186
+ max_tags:,
187
+ # Minimum confidence level for tags to be considered valid.
188
+ min_confidence:,
189
+ # Specifies the auto-tagging extension used.
190
+ name:
191
+ )
192
+ end
193
+
194
+ sig do
195
+ override.returns(
196
+ {
197
+ max_tags: Integer,
198
+ min_confidence: Integer,
199
+ name:
200
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name::OrSymbol
201
+ }
202
+ )
203
+ end
204
+ def to_hash
205
+ end
206
+
207
+ # Specifies the auto-tagging extension used.
208
+ module Name
209
+ extend Imagekitio::Internal::Type::Enum
210
+
211
+ TaggedSymbol =
212
+ T.type_alias do
213
+ T.all(
214
+ Symbol,
215
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name
216
+ )
217
+ end
218
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
219
+
220
+ GOOGLE_AUTO_TAGGING =
221
+ T.let(
222
+ :"google-auto-tagging",
223
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name::TaggedSymbol
224
+ )
225
+ AWS_AUTO_TAGGING =
226
+ T.let(
227
+ :"aws-auto-tagging",
228
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name::TaggedSymbol
229
+ )
230
+
231
+ sig do
232
+ override.returns(
233
+ T::Array[
234
+ Imagekitio::ExtensionConfig::AutoTaggingExtension::Name::TaggedSymbol
235
+ ]
236
+ )
237
+ end
238
+ def self.values
239
+ end
240
+ end
241
+ end
242
+
243
+ class AIAutoDescription < Imagekitio::Internal::Type::BaseModel
244
+ OrHash =
245
+ T.type_alias do
246
+ T.any(
247
+ Imagekitio::ExtensionConfig::AIAutoDescription,
248
+ Imagekitio::Internal::AnyHash
249
+ )
250
+ end
251
+
252
+ # Specifies the auto description extension.
253
+ sig { returns(Symbol) }
254
+ attr_accessor :name
255
+
256
+ sig { params(name: Symbol).returns(T.attached_class) }
257
+ def self.new(
258
+ # Specifies the auto description extension.
259
+ name: :"ai-auto-description"
260
+ )
261
+ end
262
+
263
+ sig { override.returns({ name: Symbol }) }
264
+ def to_hash
265
+ end
266
+ end
267
+
268
+ class AITasks < Imagekitio::Internal::Type::BaseModel
269
+ OrHash =
270
+ T.type_alias do
271
+ T.any(
272
+ Imagekitio::ExtensionConfig::AITasks,
273
+ Imagekitio::Internal::AnyHash
274
+ )
275
+ end
276
+
277
+ # Specifies the AI tasks extension for automated image analysis using AI models.
278
+ sig { returns(Symbol) }
279
+ attr_accessor :name
280
+
281
+ # Array of task objects defining AI operations to perform on the asset.
282
+ sig do
283
+ returns(
284
+ T::Array[
285
+ T.any(
286
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectTags,
287
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata,
288
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo
289
+ )
290
+ ]
291
+ )
292
+ end
293
+ attr_accessor :tasks
294
+
295
+ sig do
296
+ params(
297
+ tasks:
298
+ T::Array[
299
+ T.any(
300
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectTags::OrHash,
301
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::OrHash,
302
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OrHash
303
+ )
304
+ ],
305
+ name: Symbol
306
+ ).returns(T.attached_class)
307
+ end
308
+ def self.new(
309
+ # Array of task objects defining AI operations to perform on the asset.
310
+ tasks:,
311
+ # Specifies the AI tasks extension for automated image analysis using AI models.
312
+ name: :"ai-tasks"
313
+ )
314
+ end
315
+
316
+ sig do
317
+ override.returns(
318
+ {
319
+ name: Symbol,
320
+ tasks:
321
+ T::Array[
322
+ T.any(
323
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectTags,
324
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata,
325
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo
326
+ )
327
+ ]
328
+ }
329
+ )
330
+ end
331
+ def to_hash
332
+ end
333
+
334
+ module Task
335
+ extend Imagekitio::Internal::Type::Union
336
+
337
+ Variants =
338
+ T.type_alias do
339
+ T.any(
340
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectTags,
341
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata,
342
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo
343
+ )
344
+ end
345
+
346
+ class SelectTags < Imagekitio::Internal::Type::BaseModel
347
+ OrHash =
348
+ T.type_alias do
349
+ T.any(
350
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectTags,
351
+ Imagekitio::Internal::AnyHash
352
+ )
353
+ end
354
+
355
+ # The question or instruction for the AI to analyze the image.
356
+ sig { returns(String) }
357
+ attr_accessor :instruction
358
+
359
+ # Task type that analyzes the image and adds matching tags from a vocabulary.
360
+ sig { returns(Symbol) }
361
+ attr_accessor :type
362
+
363
+ # Maximum number of tags to select from the vocabulary.
364
+ sig { returns(T.nilable(Integer)) }
365
+ attr_reader :max_selections
366
+
367
+ sig { params(max_selections: Integer).void }
368
+ attr_writer :max_selections
369
+
370
+ # Minimum number of tags to select from the vocabulary.
371
+ sig { returns(T.nilable(Integer)) }
372
+ attr_reader :min_selections
373
+
374
+ sig { params(min_selections: Integer).void }
375
+ attr_writer :min_selections
376
+
377
+ # Array of possible tag values. Combined length of all strings must not exceed 500
378
+ # characters. Cannot contain the `%` character.
379
+ sig { returns(T.nilable(T::Array[String])) }
380
+ attr_reader :vocabulary
381
+
382
+ sig { params(vocabulary: T::Array[String]).void }
383
+ attr_writer :vocabulary
384
+
385
+ sig do
386
+ params(
387
+ instruction: String,
388
+ max_selections: Integer,
389
+ min_selections: Integer,
390
+ vocabulary: T::Array[String],
391
+ type: Symbol
392
+ ).returns(T.attached_class)
393
+ end
394
+ def self.new(
395
+ # The question or instruction for the AI to analyze the image.
396
+ instruction:,
397
+ # Maximum number of tags to select from the vocabulary.
398
+ max_selections: nil,
399
+ # Minimum number of tags to select from the vocabulary.
400
+ min_selections: nil,
401
+ # Array of possible tag values. Combined length of all strings must not exceed 500
402
+ # characters. Cannot contain the `%` character.
403
+ vocabulary: nil,
404
+ # Task type that analyzes the image and adds matching tags from a vocabulary.
405
+ type: :select_tags
406
+ )
407
+ end
408
+
409
+ sig do
410
+ override.returns(
411
+ {
412
+ instruction: String,
413
+ type: Symbol,
414
+ max_selections: Integer,
415
+ min_selections: Integer,
416
+ vocabulary: T::Array[String]
417
+ }
418
+ )
419
+ end
420
+ def to_hash
421
+ end
422
+ end
423
+
424
+ class SelectMetadata < Imagekitio::Internal::Type::BaseModel
425
+ OrHash =
426
+ T.type_alias do
427
+ T.any(
428
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata,
429
+ Imagekitio::Internal::AnyHash
430
+ )
431
+ end
432
+
433
+ # Name of the custom metadata field to set. The field must exist in your account.
434
+ sig { returns(String) }
435
+ attr_accessor :field
436
+
437
+ # The question or instruction for the AI to analyze the image.
438
+ sig { returns(String) }
439
+ attr_accessor :instruction
440
+
441
+ # Task type that analyzes the image and sets a custom metadata field value from a
442
+ # vocabulary.
443
+ sig { returns(Symbol) }
444
+ attr_accessor :type
445
+
446
+ # Maximum number of values to select from the vocabulary.
447
+ sig { returns(T.nilable(Integer)) }
448
+ attr_reader :max_selections
449
+
450
+ sig { params(max_selections: Integer).void }
451
+ attr_writer :max_selections
452
+
453
+ # Minimum number of values to select from the vocabulary.
454
+ sig { returns(T.nilable(Integer)) }
455
+ attr_reader :min_selections
456
+
457
+ sig { params(min_selections: Integer).void }
458
+ attr_writer :min_selections
459
+
460
+ # Array of possible values matching the custom metadata field type.
461
+ sig do
462
+ returns(
463
+ T.nilable(
464
+ T::Array[
465
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
466
+ ]
467
+ )
468
+ )
469
+ end
470
+ attr_reader :vocabulary
471
+
472
+ sig do
473
+ params(
474
+ vocabulary:
475
+ T::Array[
476
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
477
+ ]
478
+ ).void
479
+ end
480
+ attr_writer :vocabulary
481
+
482
+ sig do
483
+ params(
484
+ field: String,
485
+ instruction: String,
486
+ max_selections: Integer,
487
+ min_selections: Integer,
488
+ vocabulary:
489
+ T::Array[
490
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
491
+ ],
492
+ type: Symbol
493
+ ).returns(T.attached_class)
494
+ end
495
+ def self.new(
496
+ # Name of the custom metadata field to set. The field must exist in your account.
497
+ field:,
498
+ # The question or instruction for the AI to analyze the image.
499
+ instruction:,
500
+ # Maximum number of values to select from the vocabulary.
501
+ max_selections: nil,
502
+ # Minimum number of values to select from the vocabulary.
503
+ min_selections: nil,
504
+ # Array of possible values matching the custom metadata field type.
505
+ vocabulary: nil,
506
+ # Task type that analyzes the image and sets a custom metadata field value from a
507
+ # vocabulary.
508
+ type: :select_metadata
509
+ )
510
+ end
511
+
512
+ sig do
513
+ override.returns(
514
+ {
515
+ field: String,
516
+ instruction: String,
517
+ type: Symbol,
518
+ max_selections: Integer,
519
+ min_selections: Integer,
520
+ vocabulary:
521
+ T::Array[
522
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
523
+ ]
524
+ }
525
+ )
526
+ end
527
+ def to_hash
528
+ end
529
+
530
+ module Vocabulary
531
+ extend Imagekitio::Internal::Type::Union
532
+
533
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
534
+
535
+ sig do
536
+ override.returns(
537
+ T::Array[
538
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
539
+ ]
540
+ )
541
+ end
542
+ def self.variants
543
+ end
544
+ end
545
+ end
546
+
547
+ class YesNo < Imagekitio::Internal::Type::BaseModel
548
+ OrHash =
549
+ T.type_alias do
550
+ T.any(
551
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo,
552
+ Imagekitio::Internal::AnyHash
553
+ )
554
+ end
555
+
556
+ # The yes/no question for the AI to answer about the image.
557
+ sig { returns(String) }
558
+ attr_accessor :instruction
559
+
560
+ # Task type that asks a yes/no question and executes actions based on the answer.
561
+ sig { returns(Symbol) }
562
+ attr_accessor :type
563
+
564
+ # Actions to execute if the AI answers no.
565
+ sig do
566
+ returns(
567
+ T.nilable(
568
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo
569
+ )
570
+ )
571
+ end
572
+ attr_reader :on_no
573
+
574
+ sig do
575
+ params(
576
+ on_no:
577
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::OrHash
578
+ ).void
579
+ end
580
+ attr_writer :on_no
581
+
582
+ # Actions to execute if the AI cannot determine the answer.
583
+ sig do
584
+ returns(
585
+ T.nilable(
586
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown
587
+ )
588
+ )
589
+ end
590
+ attr_reader :on_unknown
591
+
592
+ sig do
593
+ params(
594
+ on_unknown:
595
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::OrHash
596
+ ).void
597
+ end
598
+ attr_writer :on_unknown
599
+
600
+ # Actions to execute if the AI answers yes.
601
+ sig do
602
+ returns(
603
+ T.nilable(
604
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes
605
+ )
606
+ )
607
+ end
608
+ attr_reader :on_yes
609
+
610
+ sig do
611
+ params(
612
+ on_yes:
613
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::OrHash
614
+ ).void
615
+ end
616
+ attr_writer :on_yes
617
+
618
+ sig do
619
+ params(
620
+ instruction: String,
621
+ on_no:
622
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::OrHash,
623
+ on_unknown:
624
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::OrHash,
625
+ on_yes:
626
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::OrHash,
627
+ type: Symbol
628
+ ).returns(T.attached_class)
629
+ end
630
+ def self.new(
631
+ # The yes/no question for the AI to answer about the image.
632
+ instruction:,
633
+ # Actions to execute if the AI answers no.
634
+ on_no: nil,
635
+ # Actions to execute if the AI cannot determine the answer.
636
+ on_unknown: nil,
637
+ # Actions to execute if the AI answers yes.
638
+ on_yes: nil,
639
+ # Task type that asks a yes/no question and executes actions based on the answer.
640
+ type: :yes_no
641
+ )
642
+ end
643
+
644
+ sig do
645
+ override.returns(
646
+ {
647
+ instruction: String,
648
+ type: Symbol,
649
+ on_no:
650
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo,
651
+ on_unknown:
652
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown,
653
+ on_yes:
654
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes
655
+ }
656
+ )
657
+ end
658
+ def to_hash
659
+ end
660
+
661
+ class OnNo < Imagekitio::Internal::Type::BaseModel
662
+ OrHash =
663
+ T.type_alias do
664
+ T.any(
665
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo,
666
+ Imagekitio::Internal::AnyHash
667
+ )
668
+ end
669
+
670
+ # Array of tag strings to add to the asset.
671
+ sig { returns(T.nilable(T::Array[String])) }
672
+ attr_reader :add_tags
673
+
674
+ sig { params(add_tags: T::Array[String]).void }
675
+ attr_writer :add_tags
676
+
677
+ # Array of tag strings to remove from the asset.
678
+ sig { returns(T.nilable(T::Array[String])) }
679
+ attr_reader :remove_tags
680
+
681
+ sig { params(remove_tags: T::Array[String]).void }
682
+ attr_writer :remove_tags
683
+
684
+ # Array of custom metadata field updates.
685
+ sig do
686
+ returns(
687
+ T.nilable(
688
+ T::Array[
689
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata
690
+ ]
691
+ )
692
+ )
693
+ end
694
+ attr_reader :set_metadata
695
+
696
+ sig do
697
+ params(
698
+ set_metadata:
699
+ T::Array[
700
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash
701
+ ]
702
+ ).void
703
+ end
704
+ attr_writer :set_metadata
705
+
706
+ # Array of custom metadata fields to remove.
707
+ sig do
708
+ returns(
709
+ T.nilable(
710
+ T::Array[
711
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata
712
+ ]
713
+ )
714
+ )
715
+ end
716
+ attr_reader :unset_metadata
717
+
718
+ sig do
719
+ params(
720
+ unset_metadata:
721
+ T::Array[
722
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash
723
+ ]
724
+ ).void
725
+ end
726
+ attr_writer :unset_metadata
727
+
728
+ # Actions to execute if the AI answers no.
729
+ sig do
730
+ params(
731
+ add_tags: T::Array[String],
732
+ remove_tags: T::Array[String],
733
+ set_metadata:
734
+ T::Array[
735
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash
736
+ ],
737
+ unset_metadata:
738
+ T::Array[
739
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash
740
+ ]
741
+ ).returns(T.attached_class)
742
+ end
743
+ def self.new(
744
+ # Array of tag strings to add to the asset.
745
+ add_tags: nil,
746
+ # Array of tag strings to remove from the asset.
747
+ remove_tags: nil,
748
+ # Array of custom metadata field updates.
749
+ set_metadata: nil,
750
+ # Array of custom metadata fields to remove.
751
+ unset_metadata: nil
752
+ )
753
+ end
754
+
755
+ sig do
756
+ override.returns(
757
+ {
758
+ add_tags: T::Array[String],
759
+ remove_tags: T::Array[String],
760
+ set_metadata:
761
+ T::Array[
762
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata
763
+ ],
764
+ unset_metadata:
765
+ T::Array[
766
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata
767
+ ]
768
+ }
769
+ )
770
+ end
771
+ def to_hash
772
+ end
773
+
774
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
775
+ OrHash =
776
+ T.type_alias do
777
+ T.any(
778
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata,
779
+ Imagekitio::Internal::AnyHash
780
+ )
781
+ end
782
+
783
+ # Name of the custom metadata field to set.
784
+ sig { returns(String) }
785
+ attr_accessor :field
786
+
787
+ # Value to set for the custom metadata field. The value type should match the
788
+ # custom metadata field type.
789
+ sig do
790
+ returns(
791
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
792
+ )
793
+ end
794
+ attr_accessor :value
795
+
796
+ sig do
797
+ params(
798
+ field: String,
799
+ value:
800
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
801
+ ).returns(T.attached_class)
802
+ end
803
+ def self.new(
804
+ # Name of the custom metadata field to set.
805
+ field:,
806
+ # Value to set for the custom metadata field. The value type should match the
807
+ # custom metadata field type.
808
+ value:
809
+ )
810
+ end
811
+
812
+ sig do
813
+ override.returns(
814
+ {
815
+ field: String,
816
+ value:
817
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
818
+ }
819
+ )
820
+ end
821
+ def to_hash
822
+ end
823
+
824
+ # Value to set for the custom metadata field. The value type should match the
825
+ # custom metadata field type.
826
+ module Value
827
+ extend Imagekitio::Internal::Type::Union
828
+
829
+ Variants =
830
+ T.type_alias do
831
+ T.any(
832
+ String,
833
+ Float,
834
+ T::Boolean,
835
+ T::Array[
836
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants
837
+ ]
838
+ )
839
+ end
840
+
841
+ module Mixed
842
+ extend Imagekitio::Internal::Type::Union
843
+
844
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
845
+
846
+ sig do
847
+ override.returns(
848
+ T::Array[
849
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants
850
+ ]
851
+ )
852
+ end
853
+ def self.variants
854
+ end
855
+ end
856
+
857
+ sig do
858
+ override.returns(
859
+ T::Array[
860
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
861
+ ]
862
+ )
863
+ end
864
+ def self.variants
865
+ end
866
+
867
+ MixedArray =
868
+ T.let(
869
+ Imagekitio::Internal::Type::ArrayOf[
870
+ union:
871
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed
872
+ ],
873
+ Imagekitio::Internal::Type::Converter
874
+ )
875
+ end
876
+ end
877
+
878
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
879
+ OrHash =
880
+ T.type_alias do
881
+ T.any(
882
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata,
883
+ Imagekitio::Internal::AnyHash
884
+ )
885
+ end
886
+
887
+ # Name of the custom metadata field to remove.
888
+ sig { returns(String) }
889
+ attr_accessor :field
890
+
891
+ sig { params(field: String).returns(T.attached_class) }
892
+ def self.new(
893
+ # Name of the custom metadata field to remove.
894
+ field:
895
+ )
896
+ end
897
+
898
+ sig { override.returns({ field: String }) }
899
+ def to_hash
900
+ end
901
+ end
902
+ end
903
+
904
+ class OnUnknown < Imagekitio::Internal::Type::BaseModel
905
+ OrHash =
906
+ T.type_alias do
907
+ T.any(
908
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown,
909
+ Imagekitio::Internal::AnyHash
910
+ )
911
+ end
912
+
913
+ # Array of tag strings to add to the asset.
914
+ sig { returns(T.nilable(T::Array[String])) }
915
+ attr_reader :add_tags
916
+
917
+ sig { params(add_tags: T::Array[String]).void }
918
+ attr_writer :add_tags
919
+
920
+ # Array of tag strings to remove from the asset.
921
+ sig { returns(T.nilable(T::Array[String])) }
922
+ attr_reader :remove_tags
923
+
924
+ sig { params(remove_tags: T::Array[String]).void }
925
+ attr_writer :remove_tags
926
+
927
+ # Array of custom metadata field updates.
928
+ sig do
929
+ returns(
930
+ T.nilable(
931
+ T::Array[
932
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata
933
+ ]
934
+ )
935
+ )
936
+ end
937
+ attr_reader :set_metadata
938
+
939
+ sig do
940
+ params(
941
+ set_metadata:
942
+ T::Array[
943
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash
944
+ ]
945
+ ).void
946
+ end
947
+ attr_writer :set_metadata
948
+
949
+ # Array of custom metadata fields to remove.
950
+ sig do
951
+ returns(
952
+ T.nilable(
953
+ T::Array[
954
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata
955
+ ]
956
+ )
957
+ )
958
+ end
959
+ attr_reader :unset_metadata
960
+
961
+ sig do
962
+ params(
963
+ unset_metadata:
964
+ T::Array[
965
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash
966
+ ]
967
+ ).void
968
+ end
969
+ attr_writer :unset_metadata
970
+
971
+ # Actions to execute if the AI cannot determine the answer.
972
+ sig do
973
+ params(
974
+ add_tags: T::Array[String],
975
+ remove_tags: T::Array[String],
976
+ set_metadata:
977
+ T::Array[
978
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash
979
+ ],
980
+ unset_metadata:
981
+ T::Array[
982
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash
983
+ ]
984
+ ).returns(T.attached_class)
985
+ end
986
+ def self.new(
987
+ # Array of tag strings to add to the asset.
988
+ add_tags: nil,
989
+ # Array of tag strings to remove from the asset.
990
+ remove_tags: nil,
991
+ # Array of custom metadata field updates.
992
+ set_metadata: nil,
993
+ # Array of custom metadata fields to remove.
994
+ unset_metadata: nil
995
+ )
996
+ end
997
+
998
+ sig do
999
+ override.returns(
1000
+ {
1001
+ add_tags: T::Array[String],
1002
+ remove_tags: T::Array[String],
1003
+ set_metadata:
1004
+ T::Array[
1005
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata
1006
+ ],
1007
+ unset_metadata:
1008
+ T::Array[
1009
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata
1010
+ ]
1011
+ }
1012
+ )
1013
+ end
1014
+ def to_hash
1015
+ end
1016
+
1017
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
1018
+ OrHash =
1019
+ T.type_alias do
1020
+ T.any(
1021
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata,
1022
+ Imagekitio::Internal::AnyHash
1023
+ )
1024
+ end
1025
+
1026
+ # Name of the custom metadata field to set.
1027
+ sig { returns(String) }
1028
+ attr_accessor :field
1029
+
1030
+ # Value to set for the custom metadata field. The value type should match the
1031
+ # custom metadata field type.
1032
+ sig do
1033
+ returns(
1034
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1035
+ )
1036
+ end
1037
+ attr_accessor :value
1038
+
1039
+ sig do
1040
+ params(
1041
+ field: String,
1042
+ value:
1043
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1044
+ ).returns(T.attached_class)
1045
+ end
1046
+ def self.new(
1047
+ # Name of the custom metadata field to set.
1048
+ field:,
1049
+ # Value to set for the custom metadata field. The value type should match the
1050
+ # custom metadata field type.
1051
+ value:
1052
+ )
1053
+ end
1054
+
1055
+ sig do
1056
+ override.returns(
1057
+ {
1058
+ field: String,
1059
+ value:
1060
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1061
+ }
1062
+ )
1063
+ end
1064
+ def to_hash
1065
+ end
1066
+
1067
+ # Value to set for the custom metadata field. The value type should match the
1068
+ # custom metadata field type.
1069
+ module Value
1070
+ extend Imagekitio::Internal::Type::Union
1071
+
1072
+ Variants =
1073
+ T.type_alias do
1074
+ T.any(
1075
+ String,
1076
+ Float,
1077
+ T::Boolean,
1078
+ T::Array[
1079
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants
1080
+ ]
1081
+ )
1082
+ end
1083
+
1084
+ module Mixed
1085
+ extend Imagekitio::Internal::Type::Union
1086
+
1087
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
1088
+
1089
+ sig do
1090
+ override.returns(
1091
+ T::Array[
1092
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants
1093
+ ]
1094
+ )
1095
+ end
1096
+ def self.variants
1097
+ end
1098
+ end
1099
+
1100
+ sig do
1101
+ override.returns(
1102
+ T::Array[
1103
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1104
+ ]
1105
+ )
1106
+ end
1107
+ def self.variants
1108
+ end
1109
+
1110
+ MixedArray =
1111
+ T.let(
1112
+ Imagekitio::Internal::Type::ArrayOf[
1113
+ union:
1114
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed
1115
+ ],
1116
+ Imagekitio::Internal::Type::Converter
1117
+ )
1118
+ end
1119
+ end
1120
+
1121
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
1122
+ OrHash =
1123
+ T.type_alias do
1124
+ T.any(
1125
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata,
1126
+ Imagekitio::Internal::AnyHash
1127
+ )
1128
+ end
1129
+
1130
+ # Name of the custom metadata field to remove.
1131
+ sig { returns(String) }
1132
+ attr_accessor :field
1133
+
1134
+ sig { params(field: String).returns(T.attached_class) }
1135
+ def self.new(
1136
+ # Name of the custom metadata field to remove.
1137
+ field:
1138
+ )
1139
+ end
1140
+
1141
+ sig { override.returns({ field: String }) }
1142
+ def to_hash
1143
+ end
1144
+ end
1145
+ end
1146
+
1147
+ class OnYes < Imagekitio::Internal::Type::BaseModel
1148
+ OrHash =
1149
+ T.type_alias do
1150
+ T.any(
1151
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes,
1152
+ Imagekitio::Internal::AnyHash
1153
+ )
1154
+ end
1155
+
1156
+ # Array of tag strings to add to the asset.
1157
+ sig { returns(T.nilable(T::Array[String])) }
1158
+ attr_reader :add_tags
1159
+
1160
+ sig { params(add_tags: T::Array[String]).void }
1161
+ attr_writer :add_tags
1162
+
1163
+ # Array of tag strings to remove from the asset.
1164
+ sig { returns(T.nilable(T::Array[String])) }
1165
+ attr_reader :remove_tags
1166
+
1167
+ sig { params(remove_tags: T::Array[String]).void }
1168
+ attr_writer :remove_tags
1169
+
1170
+ # Array of custom metadata field updates.
1171
+ sig do
1172
+ returns(
1173
+ T.nilable(
1174
+ T::Array[
1175
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata
1176
+ ]
1177
+ )
1178
+ )
1179
+ end
1180
+ attr_reader :set_metadata
1181
+
1182
+ sig do
1183
+ params(
1184
+ set_metadata:
1185
+ T::Array[
1186
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash
1187
+ ]
1188
+ ).void
1189
+ end
1190
+ attr_writer :set_metadata
1191
+
1192
+ # Array of custom metadata fields to remove.
1193
+ sig do
1194
+ returns(
1195
+ T.nilable(
1196
+ T::Array[
1197
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata
1198
+ ]
1199
+ )
1200
+ )
1201
+ end
1202
+ attr_reader :unset_metadata
1203
+
1204
+ sig do
1205
+ params(
1206
+ unset_metadata:
1207
+ T::Array[
1208
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash
1209
+ ]
1210
+ ).void
1211
+ end
1212
+ attr_writer :unset_metadata
1213
+
1214
+ # Actions to execute if the AI answers yes.
1215
+ sig do
1216
+ params(
1217
+ add_tags: T::Array[String],
1218
+ remove_tags: T::Array[String],
1219
+ set_metadata:
1220
+ T::Array[
1221
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash
1222
+ ],
1223
+ unset_metadata:
1224
+ T::Array[
1225
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash
1226
+ ]
1227
+ ).returns(T.attached_class)
1228
+ end
1229
+ def self.new(
1230
+ # Array of tag strings to add to the asset.
1231
+ add_tags: nil,
1232
+ # Array of tag strings to remove from the asset.
1233
+ remove_tags: nil,
1234
+ # Array of custom metadata field updates.
1235
+ set_metadata: nil,
1236
+ # Array of custom metadata fields to remove.
1237
+ unset_metadata: nil
1238
+ )
1239
+ end
1240
+
1241
+ sig do
1242
+ override.returns(
1243
+ {
1244
+ add_tags: T::Array[String],
1245
+ remove_tags: T::Array[String],
1246
+ set_metadata:
1247
+ T::Array[
1248
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata
1249
+ ],
1250
+ unset_metadata:
1251
+ T::Array[
1252
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata
1253
+ ]
1254
+ }
1255
+ )
1256
+ end
1257
+ def to_hash
1258
+ end
1259
+
1260
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
1261
+ OrHash =
1262
+ T.type_alias do
1263
+ T.any(
1264
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata,
1265
+ Imagekitio::Internal::AnyHash
1266
+ )
1267
+ end
1268
+
1269
+ # Name of the custom metadata field to set.
1270
+ sig { returns(String) }
1271
+ attr_accessor :field
1272
+
1273
+ # Value to set for the custom metadata field. The value type should match the
1274
+ # custom metadata field type.
1275
+ sig do
1276
+ returns(
1277
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1278
+ )
1279
+ end
1280
+ attr_accessor :value
1281
+
1282
+ sig do
1283
+ params(
1284
+ field: String,
1285
+ value:
1286
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1287
+ ).returns(T.attached_class)
1288
+ end
1289
+ def self.new(
1290
+ # Name of the custom metadata field to set.
1291
+ field:,
1292
+ # Value to set for the custom metadata field. The value type should match the
1293
+ # custom metadata field type.
1294
+ value:
1295
+ )
1296
+ end
1297
+
1298
+ sig do
1299
+ override.returns(
1300
+ {
1301
+ field: String,
1302
+ value:
1303
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1304
+ }
1305
+ )
1306
+ end
1307
+ def to_hash
1308
+ end
1309
+
1310
+ # Value to set for the custom metadata field. The value type should match the
1311
+ # custom metadata field type.
1312
+ module Value
1313
+ extend Imagekitio::Internal::Type::Union
1314
+
1315
+ Variants =
1316
+ T.type_alias do
1317
+ T.any(
1318
+ String,
1319
+ Float,
1320
+ T::Boolean,
1321
+ T::Array[
1322
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants
1323
+ ]
1324
+ )
1325
+ end
1326
+
1327
+ module Mixed
1328
+ extend Imagekitio::Internal::Type::Union
1329
+
1330
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
1331
+
1332
+ sig do
1333
+ override.returns(
1334
+ T::Array[
1335
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants
1336
+ ]
1337
+ )
1338
+ end
1339
+ def self.variants
1340
+ end
1341
+ end
1342
+
1343
+ sig do
1344
+ override.returns(
1345
+ T::Array[
1346
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1347
+ ]
1348
+ )
1349
+ end
1350
+ def self.variants
1351
+ end
1352
+
1353
+ MixedArray =
1354
+ T.let(
1355
+ Imagekitio::Internal::Type::ArrayOf[
1356
+ union:
1357
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed
1358
+ ],
1359
+ Imagekitio::Internal::Type::Converter
1360
+ )
1361
+ end
1362
+ end
1363
+
1364
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
1365
+ OrHash =
1366
+ T.type_alias do
1367
+ T.any(
1368
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata,
1369
+ Imagekitio::Internal::AnyHash
1370
+ )
1371
+ end
1372
+
1373
+ # Name of the custom metadata field to remove.
1374
+ sig { returns(String) }
1375
+ attr_accessor :field
1376
+
1377
+ sig { params(field: String).returns(T.attached_class) }
1378
+ def self.new(
1379
+ # Name of the custom metadata field to remove.
1380
+ field:
1381
+ )
1382
+ end
1383
+
1384
+ sig { override.returns({ field: String }) }
1385
+ def to_hash
1386
+ end
1387
+ end
1388
+ end
1389
+ end
1390
+
1391
+ sig do
1392
+ override.returns(
1393
+ T::Array[Imagekitio::ExtensionConfig::AITasks::Task::Variants]
1394
+ )
1395
+ end
1396
+ def self.variants
1397
+ end
1398
+ end
1399
+ end
1400
+
1401
+ sig { override.returns(T::Array[Imagekitio::ExtensionConfig::Variants]) }
1402
+ def self.variants
1403
+ end
1404
+ end
1405
+ end
1406
+ end