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