imagekitio 4.0.0 → 4.1.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -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 +1403 -0
  55. data/rbi/imagekitio/models/extensions.rbi +1159 -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 +604 -0
  86. data/sig/imagekitio/models/extensions.rbs +489 -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,1403 @@
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
+ # Array of possible tag values. Combined length of all strings must not exceed 500
364
+ # characters. Cannot contain the `%` character.
365
+ sig { returns(T::Array[String]) }
366
+ attr_accessor :vocabulary
367
+
368
+ # Maximum number of tags to select from the vocabulary.
369
+ sig { returns(T.nilable(Integer)) }
370
+ attr_reader :max_selections
371
+
372
+ sig { params(max_selections: Integer).void }
373
+ attr_writer :max_selections
374
+
375
+ # Minimum number of tags to select from the vocabulary.
376
+ sig { returns(T.nilable(Integer)) }
377
+ attr_reader :min_selections
378
+
379
+ sig { params(min_selections: Integer).void }
380
+ attr_writer :min_selections
381
+
382
+ sig do
383
+ params(
384
+ instruction: String,
385
+ vocabulary: T::Array[String],
386
+ max_selections: Integer,
387
+ min_selections: Integer,
388
+ type: Symbol
389
+ ).returns(T.attached_class)
390
+ end
391
+ def self.new(
392
+ # The question or instruction for the AI to analyze the image.
393
+ instruction:,
394
+ # Array of possible tag values. Combined length of all strings must not exceed 500
395
+ # characters. Cannot contain the `%` character.
396
+ vocabulary:,
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
+ # Task type that analyzes the image and adds matching tags from a vocabulary.
402
+ type: :select_tags
403
+ )
404
+ end
405
+
406
+ sig do
407
+ override.returns(
408
+ {
409
+ instruction: String,
410
+ type: Symbol,
411
+ vocabulary: T::Array[String],
412
+ max_selections: Integer,
413
+ min_selections: Integer
414
+ }
415
+ )
416
+ end
417
+ def to_hash
418
+ end
419
+ end
420
+
421
+ class SelectMetadata < Imagekitio::Internal::Type::BaseModel
422
+ OrHash =
423
+ T.type_alias do
424
+ T.any(
425
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata,
426
+ Imagekitio::Internal::AnyHash
427
+ )
428
+ end
429
+
430
+ # Name of the custom metadata field to set. The field must exist in your account.
431
+ sig { returns(String) }
432
+ attr_accessor :field
433
+
434
+ # The question or instruction for the AI to analyze the image.
435
+ sig { returns(String) }
436
+ attr_accessor :instruction
437
+
438
+ # Task type that analyzes the image and sets a custom metadata field value from a
439
+ # vocabulary.
440
+ sig { returns(Symbol) }
441
+ attr_accessor :type
442
+
443
+ # Maximum number of values to select from the vocabulary.
444
+ sig { returns(T.nilable(Integer)) }
445
+ attr_reader :max_selections
446
+
447
+ sig { params(max_selections: Integer).void }
448
+ attr_writer :max_selections
449
+
450
+ # Minimum number of values to select from the vocabulary.
451
+ sig { returns(T.nilable(Integer)) }
452
+ attr_reader :min_selections
453
+
454
+ sig { params(min_selections: Integer).void }
455
+ attr_writer :min_selections
456
+
457
+ # Array of possible values matching the custom metadata field type.
458
+ sig do
459
+ returns(
460
+ T.nilable(
461
+ T::Array[
462
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
463
+ ]
464
+ )
465
+ )
466
+ end
467
+ attr_reader :vocabulary
468
+
469
+ sig do
470
+ params(
471
+ vocabulary:
472
+ T::Array[
473
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
474
+ ]
475
+ ).void
476
+ end
477
+ attr_writer :vocabulary
478
+
479
+ sig do
480
+ params(
481
+ field: String,
482
+ instruction: String,
483
+ max_selections: Integer,
484
+ min_selections: Integer,
485
+ vocabulary:
486
+ T::Array[
487
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
488
+ ],
489
+ type: Symbol
490
+ ).returns(T.attached_class)
491
+ end
492
+ def self.new(
493
+ # Name of the custom metadata field to set. The field must exist in your account.
494
+ field:,
495
+ # The question or instruction for the AI to analyze the image.
496
+ instruction:,
497
+ # Maximum number of values to select from the vocabulary.
498
+ max_selections: nil,
499
+ # Minimum number of values to select from the vocabulary.
500
+ min_selections: nil,
501
+ # Array of possible values matching the custom metadata field type.
502
+ vocabulary: nil,
503
+ # Task type that analyzes the image and sets a custom metadata field value from a
504
+ # vocabulary.
505
+ type: :select_metadata
506
+ )
507
+ end
508
+
509
+ sig do
510
+ override.returns(
511
+ {
512
+ field: String,
513
+ instruction: String,
514
+ type: Symbol,
515
+ max_selections: Integer,
516
+ min_selections: Integer,
517
+ vocabulary:
518
+ T::Array[
519
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
520
+ ]
521
+ }
522
+ )
523
+ end
524
+ def to_hash
525
+ end
526
+
527
+ module Vocabulary
528
+ extend Imagekitio::Internal::Type::Union
529
+
530
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
531
+
532
+ sig do
533
+ override.returns(
534
+ T::Array[
535
+ Imagekitio::ExtensionConfig::AITasks::Task::SelectMetadata::Vocabulary::Variants
536
+ ]
537
+ )
538
+ end
539
+ def self.variants
540
+ end
541
+ end
542
+ end
543
+
544
+ class YesNo < Imagekitio::Internal::Type::BaseModel
545
+ OrHash =
546
+ T.type_alias do
547
+ T.any(
548
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo,
549
+ Imagekitio::Internal::AnyHash
550
+ )
551
+ end
552
+
553
+ # The yes/no question for the AI to answer about the image.
554
+ sig { returns(String) }
555
+ attr_accessor :instruction
556
+
557
+ # Task type that asks a yes/no question and executes actions based on the answer.
558
+ sig { returns(Symbol) }
559
+ attr_accessor :type
560
+
561
+ # Actions to execute if the AI answers no.
562
+ sig do
563
+ returns(
564
+ T.nilable(
565
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo
566
+ )
567
+ )
568
+ end
569
+ attr_reader :on_no
570
+
571
+ sig do
572
+ params(
573
+ on_no:
574
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::OrHash
575
+ ).void
576
+ end
577
+ attr_writer :on_no
578
+
579
+ # Actions to execute if the AI cannot determine the answer.
580
+ sig do
581
+ returns(
582
+ T.nilable(
583
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown
584
+ )
585
+ )
586
+ end
587
+ attr_reader :on_unknown
588
+
589
+ sig do
590
+ params(
591
+ on_unknown:
592
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::OrHash
593
+ ).void
594
+ end
595
+ attr_writer :on_unknown
596
+
597
+ # Actions to execute if the AI answers yes.
598
+ sig do
599
+ returns(
600
+ T.nilable(
601
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes
602
+ )
603
+ )
604
+ end
605
+ attr_reader :on_yes
606
+
607
+ sig do
608
+ params(
609
+ on_yes:
610
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::OrHash
611
+ ).void
612
+ end
613
+ attr_writer :on_yes
614
+
615
+ sig do
616
+ params(
617
+ instruction: String,
618
+ on_no:
619
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::OrHash,
620
+ on_unknown:
621
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::OrHash,
622
+ on_yes:
623
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::OrHash,
624
+ type: Symbol
625
+ ).returns(T.attached_class)
626
+ end
627
+ def self.new(
628
+ # The yes/no question for the AI to answer about the image.
629
+ instruction:,
630
+ # Actions to execute if the AI answers no.
631
+ on_no: nil,
632
+ # Actions to execute if the AI cannot determine the answer.
633
+ on_unknown: nil,
634
+ # Actions to execute if the AI answers yes.
635
+ on_yes: nil,
636
+ # Task type that asks a yes/no question and executes actions based on the answer.
637
+ type: :yes_no
638
+ )
639
+ end
640
+
641
+ sig do
642
+ override.returns(
643
+ {
644
+ instruction: String,
645
+ type: Symbol,
646
+ on_no:
647
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo,
648
+ on_unknown:
649
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown,
650
+ on_yes:
651
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes
652
+ }
653
+ )
654
+ end
655
+ def to_hash
656
+ end
657
+
658
+ class OnNo < Imagekitio::Internal::Type::BaseModel
659
+ OrHash =
660
+ T.type_alias do
661
+ T.any(
662
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo,
663
+ Imagekitio::Internal::AnyHash
664
+ )
665
+ end
666
+
667
+ # Array of tag strings to add to the asset.
668
+ sig { returns(T.nilable(T::Array[String])) }
669
+ attr_reader :add_tags
670
+
671
+ sig { params(add_tags: T::Array[String]).void }
672
+ attr_writer :add_tags
673
+
674
+ # Array of tag strings to remove from the asset.
675
+ sig { returns(T.nilable(T::Array[String])) }
676
+ attr_reader :remove_tags
677
+
678
+ sig { params(remove_tags: T::Array[String]).void }
679
+ attr_writer :remove_tags
680
+
681
+ # Array of custom metadata field updates.
682
+ sig do
683
+ returns(
684
+ T.nilable(
685
+ T::Array[
686
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata
687
+ ]
688
+ )
689
+ )
690
+ end
691
+ attr_reader :set_metadata
692
+
693
+ sig do
694
+ params(
695
+ set_metadata:
696
+ T::Array[
697
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash
698
+ ]
699
+ ).void
700
+ end
701
+ attr_writer :set_metadata
702
+
703
+ # Array of custom metadata fields to remove.
704
+ sig do
705
+ returns(
706
+ T.nilable(
707
+ T::Array[
708
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata
709
+ ]
710
+ )
711
+ )
712
+ end
713
+ attr_reader :unset_metadata
714
+
715
+ sig do
716
+ params(
717
+ unset_metadata:
718
+ T::Array[
719
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash
720
+ ]
721
+ ).void
722
+ end
723
+ attr_writer :unset_metadata
724
+
725
+ # Actions to execute if the AI answers no.
726
+ sig do
727
+ params(
728
+ add_tags: T::Array[String],
729
+ remove_tags: T::Array[String],
730
+ set_metadata:
731
+ T::Array[
732
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash
733
+ ],
734
+ unset_metadata:
735
+ T::Array[
736
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash
737
+ ]
738
+ ).returns(T.attached_class)
739
+ end
740
+ def self.new(
741
+ # Array of tag strings to add to the asset.
742
+ add_tags: nil,
743
+ # Array of tag strings to remove from the asset.
744
+ remove_tags: nil,
745
+ # Array of custom metadata field updates.
746
+ set_metadata: nil,
747
+ # Array of custom metadata fields to remove.
748
+ unset_metadata: nil
749
+ )
750
+ end
751
+
752
+ sig do
753
+ override.returns(
754
+ {
755
+ add_tags: T::Array[String],
756
+ remove_tags: T::Array[String],
757
+ set_metadata:
758
+ T::Array[
759
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata
760
+ ],
761
+ unset_metadata:
762
+ T::Array[
763
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata
764
+ ]
765
+ }
766
+ )
767
+ end
768
+ def to_hash
769
+ end
770
+
771
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
772
+ OrHash =
773
+ T.type_alias do
774
+ T.any(
775
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata,
776
+ Imagekitio::Internal::AnyHash
777
+ )
778
+ end
779
+
780
+ # Name of the custom metadata field to set.
781
+ sig { returns(String) }
782
+ attr_accessor :field
783
+
784
+ # Value to set for the custom metadata field. The value type should match the
785
+ # custom metadata field type.
786
+ sig do
787
+ returns(
788
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
789
+ )
790
+ end
791
+ attr_accessor :value
792
+
793
+ sig do
794
+ params(
795
+ field: String,
796
+ value:
797
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
798
+ ).returns(T.attached_class)
799
+ end
800
+ def self.new(
801
+ # Name of the custom metadata field to set.
802
+ field:,
803
+ # Value to set for the custom metadata field. The value type should match the
804
+ # custom metadata field type.
805
+ value:
806
+ )
807
+ end
808
+
809
+ sig do
810
+ override.returns(
811
+ {
812
+ field: String,
813
+ value:
814
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
815
+ }
816
+ )
817
+ end
818
+ def to_hash
819
+ end
820
+
821
+ # Value to set for the custom metadata field. The value type should match the
822
+ # custom metadata field type.
823
+ module Value
824
+ extend Imagekitio::Internal::Type::Union
825
+
826
+ Variants =
827
+ T.type_alias do
828
+ T.any(
829
+ String,
830
+ Float,
831
+ T::Boolean,
832
+ T::Array[
833
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants
834
+ ]
835
+ )
836
+ end
837
+
838
+ module Mixed
839
+ extend Imagekitio::Internal::Type::Union
840
+
841
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
842
+
843
+ sig do
844
+ override.returns(
845
+ T::Array[
846
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants
847
+ ]
848
+ )
849
+ end
850
+ def self.variants
851
+ end
852
+ end
853
+
854
+ sig do
855
+ override.returns(
856
+ T::Array[
857
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
858
+ ]
859
+ )
860
+ end
861
+ def self.variants
862
+ end
863
+
864
+ MixedArray =
865
+ T.let(
866
+ Imagekitio::Internal::Type::ArrayOf[
867
+ union:
868
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed
869
+ ],
870
+ Imagekitio::Internal::Type::Converter
871
+ )
872
+ end
873
+ end
874
+
875
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
876
+ OrHash =
877
+ T.type_alias do
878
+ T.any(
879
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnNo::UnsetMetadata,
880
+ Imagekitio::Internal::AnyHash
881
+ )
882
+ end
883
+
884
+ # Name of the custom metadata field to remove.
885
+ sig { returns(String) }
886
+ attr_accessor :field
887
+
888
+ sig { params(field: String).returns(T.attached_class) }
889
+ def self.new(
890
+ # Name of the custom metadata field to remove.
891
+ field:
892
+ )
893
+ end
894
+
895
+ sig { override.returns({ field: String }) }
896
+ def to_hash
897
+ end
898
+ end
899
+ end
900
+
901
+ class OnUnknown < Imagekitio::Internal::Type::BaseModel
902
+ OrHash =
903
+ T.type_alias do
904
+ T.any(
905
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown,
906
+ Imagekitio::Internal::AnyHash
907
+ )
908
+ end
909
+
910
+ # Array of tag strings to add to the asset.
911
+ sig { returns(T.nilable(T::Array[String])) }
912
+ attr_reader :add_tags
913
+
914
+ sig { params(add_tags: T::Array[String]).void }
915
+ attr_writer :add_tags
916
+
917
+ # Array of tag strings to remove from the asset.
918
+ sig { returns(T.nilable(T::Array[String])) }
919
+ attr_reader :remove_tags
920
+
921
+ sig { params(remove_tags: T::Array[String]).void }
922
+ attr_writer :remove_tags
923
+
924
+ # Array of custom metadata field updates.
925
+ sig do
926
+ returns(
927
+ T.nilable(
928
+ T::Array[
929
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata
930
+ ]
931
+ )
932
+ )
933
+ end
934
+ attr_reader :set_metadata
935
+
936
+ sig do
937
+ params(
938
+ set_metadata:
939
+ T::Array[
940
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash
941
+ ]
942
+ ).void
943
+ end
944
+ attr_writer :set_metadata
945
+
946
+ # Array of custom metadata fields to remove.
947
+ sig do
948
+ returns(
949
+ T.nilable(
950
+ T::Array[
951
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata
952
+ ]
953
+ )
954
+ )
955
+ end
956
+ attr_reader :unset_metadata
957
+
958
+ sig do
959
+ params(
960
+ unset_metadata:
961
+ T::Array[
962
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash
963
+ ]
964
+ ).void
965
+ end
966
+ attr_writer :unset_metadata
967
+
968
+ # Actions to execute if the AI cannot determine the answer.
969
+ sig do
970
+ params(
971
+ add_tags: T::Array[String],
972
+ remove_tags: T::Array[String],
973
+ set_metadata:
974
+ T::Array[
975
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash
976
+ ],
977
+ unset_metadata:
978
+ T::Array[
979
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash
980
+ ]
981
+ ).returns(T.attached_class)
982
+ end
983
+ def self.new(
984
+ # Array of tag strings to add to the asset.
985
+ add_tags: nil,
986
+ # Array of tag strings to remove from the asset.
987
+ remove_tags: nil,
988
+ # Array of custom metadata field updates.
989
+ set_metadata: nil,
990
+ # Array of custom metadata fields to remove.
991
+ unset_metadata: nil
992
+ )
993
+ end
994
+
995
+ sig do
996
+ override.returns(
997
+ {
998
+ add_tags: T::Array[String],
999
+ remove_tags: T::Array[String],
1000
+ set_metadata:
1001
+ T::Array[
1002
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata
1003
+ ],
1004
+ unset_metadata:
1005
+ T::Array[
1006
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata
1007
+ ]
1008
+ }
1009
+ )
1010
+ end
1011
+ def to_hash
1012
+ end
1013
+
1014
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
1015
+ OrHash =
1016
+ T.type_alias do
1017
+ T.any(
1018
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata,
1019
+ Imagekitio::Internal::AnyHash
1020
+ )
1021
+ end
1022
+
1023
+ # Name of the custom metadata field to set.
1024
+ sig { returns(String) }
1025
+ attr_accessor :field
1026
+
1027
+ # Value to set for the custom metadata field. The value type should match the
1028
+ # custom metadata field type.
1029
+ sig do
1030
+ returns(
1031
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1032
+ )
1033
+ end
1034
+ attr_accessor :value
1035
+
1036
+ sig do
1037
+ params(
1038
+ field: String,
1039
+ value:
1040
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1041
+ ).returns(T.attached_class)
1042
+ end
1043
+ def self.new(
1044
+ # Name of the custom metadata field to set.
1045
+ field:,
1046
+ # Value to set for the custom metadata field. The value type should match the
1047
+ # custom metadata field type.
1048
+ value:
1049
+ )
1050
+ end
1051
+
1052
+ sig do
1053
+ override.returns(
1054
+ {
1055
+ field: String,
1056
+ value:
1057
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1058
+ }
1059
+ )
1060
+ end
1061
+ def to_hash
1062
+ end
1063
+
1064
+ # Value to set for the custom metadata field. The value type should match the
1065
+ # custom metadata field type.
1066
+ module Value
1067
+ extend Imagekitio::Internal::Type::Union
1068
+
1069
+ Variants =
1070
+ T.type_alias do
1071
+ T.any(
1072
+ String,
1073
+ Float,
1074
+ T::Boolean,
1075
+ T::Array[
1076
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants
1077
+ ]
1078
+ )
1079
+ end
1080
+
1081
+ module Mixed
1082
+ extend Imagekitio::Internal::Type::Union
1083
+
1084
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
1085
+
1086
+ sig do
1087
+ override.returns(
1088
+ T::Array[
1089
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants
1090
+ ]
1091
+ )
1092
+ end
1093
+ def self.variants
1094
+ end
1095
+ end
1096
+
1097
+ sig do
1098
+ override.returns(
1099
+ T::Array[
1100
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1101
+ ]
1102
+ )
1103
+ end
1104
+ def self.variants
1105
+ end
1106
+
1107
+ MixedArray =
1108
+ T.let(
1109
+ Imagekitio::Internal::Type::ArrayOf[
1110
+ union:
1111
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed
1112
+ ],
1113
+ Imagekitio::Internal::Type::Converter
1114
+ )
1115
+ end
1116
+ end
1117
+
1118
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
1119
+ OrHash =
1120
+ T.type_alias do
1121
+ T.any(
1122
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnUnknown::UnsetMetadata,
1123
+ Imagekitio::Internal::AnyHash
1124
+ )
1125
+ end
1126
+
1127
+ # Name of the custom metadata field to remove.
1128
+ sig { returns(String) }
1129
+ attr_accessor :field
1130
+
1131
+ sig { params(field: String).returns(T.attached_class) }
1132
+ def self.new(
1133
+ # Name of the custom metadata field to remove.
1134
+ field:
1135
+ )
1136
+ end
1137
+
1138
+ sig { override.returns({ field: String }) }
1139
+ def to_hash
1140
+ end
1141
+ end
1142
+ end
1143
+
1144
+ class OnYes < Imagekitio::Internal::Type::BaseModel
1145
+ OrHash =
1146
+ T.type_alias do
1147
+ T.any(
1148
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes,
1149
+ Imagekitio::Internal::AnyHash
1150
+ )
1151
+ end
1152
+
1153
+ # Array of tag strings to add to the asset.
1154
+ sig { returns(T.nilable(T::Array[String])) }
1155
+ attr_reader :add_tags
1156
+
1157
+ sig { params(add_tags: T::Array[String]).void }
1158
+ attr_writer :add_tags
1159
+
1160
+ # Array of tag strings to remove from the asset.
1161
+ sig { returns(T.nilable(T::Array[String])) }
1162
+ attr_reader :remove_tags
1163
+
1164
+ sig { params(remove_tags: T::Array[String]).void }
1165
+ attr_writer :remove_tags
1166
+
1167
+ # Array of custom metadata field updates.
1168
+ sig do
1169
+ returns(
1170
+ T.nilable(
1171
+ T::Array[
1172
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata
1173
+ ]
1174
+ )
1175
+ )
1176
+ end
1177
+ attr_reader :set_metadata
1178
+
1179
+ sig do
1180
+ params(
1181
+ set_metadata:
1182
+ T::Array[
1183
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash
1184
+ ]
1185
+ ).void
1186
+ end
1187
+ attr_writer :set_metadata
1188
+
1189
+ # Array of custom metadata fields to remove.
1190
+ sig do
1191
+ returns(
1192
+ T.nilable(
1193
+ T::Array[
1194
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata
1195
+ ]
1196
+ )
1197
+ )
1198
+ end
1199
+ attr_reader :unset_metadata
1200
+
1201
+ sig do
1202
+ params(
1203
+ unset_metadata:
1204
+ T::Array[
1205
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash
1206
+ ]
1207
+ ).void
1208
+ end
1209
+ attr_writer :unset_metadata
1210
+
1211
+ # Actions to execute if the AI answers yes.
1212
+ sig do
1213
+ params(
1214
+ add_tags: T::Array[String],
1215
+ remove_tags: T::Array[String],
1216
+ set_metadata:
1217
+ T::Array[
1218
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash
1219
+ ],
1220
+ unset_metadata:
1221
+ T::Array[
1222
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash
1223
+ ]
1224
+ ).returns(T.attached_class)
1225
+ end
1226
+ def self.new(
1227
+ # Array of tag strings to add to the asset.
1228
+ add_tags: nil,
1229
+ # Array of tag strings to remove from the asset.
1230
+ remove_tags: nil,
1231
+ # Array of custom metadata field updates.
1232
+ set_metadata: nil,
1233
+ # Array of custom metadata fields to remove.
1234
+ unset_metadata: nil
1235
+ )
1236
+ end
1237
+
1238
+ sig do
1239
+ override.returns(
1240
+ {
1241
+ add_tags: T::Array[String],
1242
+ remove_tags: T::Array[String],
1243
+ set_metadata:
1244
+ T::Array[
1245
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata
1246
+ ],
1247
+ unset_metadata:
1248
+ T::Array[
1249
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata
1250
+ ]
1251
+ }
1252
+ )
1253
+ end
1254
+ def to_hash
1255
+ end
1256
+
1257
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
1258
+ OrHash =
1259
+ T.type_alias do
1260
+ T.any(
1261
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata,
1262
+ Imagekitio::Internal::AnyHash
1263
+ )
1264
+ end
1265
+
1266
+ # Name of the custom metadata field to set.
1267
+ sig { returns(String) }
1268
+ attr_accessor :field
1269
+
1270
+ # Value to set for the custom metadata field. The value type should match the
1271
+ # custom metadata field type.
1272
+ sig do
1273
+ returns(
1274
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1275
+ )
1276
+ end
1277
+ attr_accessor :value
1278
+
1279
+ sig do
1280
+ params(
1281
+ field: String,
1282
+ value:
1283
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1284
+ ).returns(T.attached_class)
1285
+ end
1286
+ def self.new(
1287
+ # Name of the custom metadata field to set.
1288
+ field:,
1289
+ # Value to set for the custom metadata field. The value type should match the
1290
+ # custom metadata field type.
1291
+ value:
1292
+ )
1293
+ end
1294
+
1295
+ sig do
1296
+ override.returns(
1297
+ {
1298
+ field: String,
1299
+ value:
1300
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1301
+ }
1302
+ )
1303
+ end
1304
+ def to_hash
1305
+ end
1306
+
1307
+ # Value to set for the custom metadata field. The value type should match the
1308
+ # custom metadata field type.
1309
+ module Value
1310
+ extend Imagekitio::Internal::Type::Union
1311
+
1312
+ Variants =
1313
+ T.type_alias do
1314
+ T.any(
1315
+ String,
1316
+ Float,
1317
+ T::Boolean,
1318
+ T::Array[
1319
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants
1320
+ ]
1321
+ )
1322
+ end
1323
+
1324
+ module Mixed
1325
+ extend Imagekitio::Internal::Type::Union
1326
+
1327
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
1328
+
1329
+ sig do
1330
+ override.returns(
1331
+ T::Array[
1332
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants
1333
+ ]
1334
+ )
1335
+ end
1336
+ def self.variants
1337
+ end
1338
+ end
1339
+
1340
+ sig do
1341
+ override.returns(
1342
+ T::Array[
1343
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1344
+ ]
1345
+ )
1346
+ end
1347
+ def self.variants
1348
+ end
1349
+
1350
+ MixedArray =
1351
+ T.let(
1352
+ Imagekitio::Internal::Type::ArrayOf[
1353
+ union:
1354
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed
1355
+ ],
1356
+ Imagekitio::Internal::Type::Converter
1357
+ )
1358
+ end
1359
+ end
1360
+
1361
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
1362
+ OrHash =
1363
+ T.type_alias do
1364
+ T.any(
1365
+ Imagekitio::ExtensionConfig::AITasks::Task::YesNo::OnYes::UnsetMetadata,
1366
+ Imagekitio::Internal::AnyHash
1367
+ )
1368
+ end
1369
+
1370
+ # Name of the custom metadata field to remove.
1371
+ sig { returns(String) }
1372
+ attr_accessor :field
1373
+
1374
+ sig { params(field: String).returns(T.attached_class) }
1375
+ def self.new(
1376
+ # Name of the custom metadata field to remove.
1377
+ field:
1378
+ )
1379
+ end
1380
+
1381
+ sig { override.returns({ field: String }) }
1382
+ def to_hash
1383
+ end
1384
+ end
1385
+ end
1386
+ end
1387
+
1388
+ sig do
1389
+ override.returns(
1390
+ T::Array[Imagekitio::ExtensionConfig::AITasks::Task::Variants]
1391
+ )
1392
+ end
1393
+ def self.variants
1394
+ end
1395
+ end
1396
+ end
1397
+
1398
+ sig { override.returns(T::Array[Imagekitio::ExtensionConfig::Variants]) }
1399
+ def self.variants
1400
+ end
1401
+ end
1402
+ end
1403
+ end