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
@@ -10,6 +10,8 @@ module Imagekitio
10
10
  T.any(
11
11
  Imagekitio::ExtensionItem::RemoveBg,
12
12
  Imagekitio::ExtensionItem::AIAutoDescription,
13
+ Imagekitio::ExtensionItem::AITasks,
14
+ Imagekitio::ExtensionItem::SavedExtension,
13
15
  Imagekitio::ExtensionItem::AutoTaggingExtension
14
16
  )
15
17
  end
@@ -260,6 +262,1166 @@ module Imagekitio
260
262
  end
261
263
  end
262
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. Combined length of all strings must not exceed 500
375
+ # characters. Cannot contain the `%` character.
376
+ sig { returns(T.nilable(T::Array[String])) }
377
+ attr_reader :vocabulary
378
+
379
+ sig { params(vocabulary: T::Array[String]).void }
380
+ attr_writer :vocabulary
381
+
382
+ sig do
383
+ params(
384
+ instruction: String,
385
+ max_selections: Integer,
386
+ min_selections: Integer,
387
+ vocabulary: T::Array[String],
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
+ # Maximum number of tags to select from the vocabulary.
395
+ max_selections: nil,
396
+ # Minimum number of tags to select from the vocabulary.
397
+ min_selections: nil,
398
+ # Array of possible tag values. Combined length of all strings must not exceed 500
399
+ # characters. Cannot contain the `%` character.
400
+ vocabulary: 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
+ max_selections: Integer,
412
+ min_selections: Integer,
413
+ vocabulary: T::Array[String]
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::ExtensionItem::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::ExtensionItem::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::ExtensionItem::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::ExtensionItem::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::ExtensionItem::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::ExtensionItem::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::ExtensionItem::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(Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo)
565
+ )
566
+ end
567
+ attr_reader :on_no
568
+
569
+ sig do
570
+ params(
571
+ on_no:
572
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::OrHash
573
+ ).void
574
+ end
575
+ attr_writer :on_no
576
+
577
+ # Actions to execute if the AI cannot determine the answer.
578
+ sig do
579
+ returns(
580
+ T.nilable(
581
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown
582
+ )
583
+ )
584
+ end
585
+ attr_reader :on_unknown
586
+
587
+ sig do
588
+ params(
589
+ on_unknown:
590
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::OrHash
591
+ ).void
592
+ end
593
+ attr_writer :on_unknown
594
+
595
+ # Actions to execute if the AI answers yes.
596
+ sig do
597
+ returns(
598
+ T.nilable(
599
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes
600
+ )
601
+ )
602
+ end
603
+ attr_reader :on_yes
604
+
605
+ sig do
606
+ params(
607
+ on_yes:
608
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::OrHash
609
+ ).void
610
+ end
611
+ attr_writer :on_yes
612
+
613
+ sig do
614
+ params(
615
+ instruction: String,
616
+ on_no:
617
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::OrHash,
618
+ on_unknown:
619
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::OrHash,
620
+ on_yes:
621
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::OrHash,
622
+ type: Symbol
623
+ ).returns(T.attached_class)
624
+ end
625
+ def self.new(
626
+ # The yes/no question for the AI to answer about the image.
627
+ instruction:,
628
+ # Actions to execute if the AI answers no.
629
+ on_no: nil,
630
+ # Actions to execute if the AI cannot determine the answer.
631
+ on_unknown: nil,
632
+ # Actions to execute if the AI answers yes.
633
+ on_yes: nil,
634
+ # Task type that asks a yes/no question and executes actions based on the answer.
635
+ type: :yes_no
636
+ )
637
+ end
638
+
639
+ sig do
640
+ override.returns(
641
+ {
642
+ instruction: String,
643
+ type: Symbol,
644
+ on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo,
645
+ on_unknown:
646
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown,
647
+ on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes
648
+ }
649
+ )
650
+ end
651
+ def to_hash
652
+ end
653
+
654
+ class OnNo < Imagekitio::Internal::Type::BaseModel
655
+ OrHash =
656
+ T.type_alias do
657
+ T.any(
658
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo,
659
+ Imagekitio::Internal::AnyHash
660
+ )
661
+ end
662
+
663
+ # Array of tag strings to add to the asset.
664
+ sig { returns(T.nilable(T::Array[String])) }
665
+ attr_reader :add_tags
666
+
667
+ sig { params(add_tags: T::Array[String]).void }
668
+ attr_writer :add_tags
669
+
670
+ # Array of tag strings to remove from the asset.
671
+ sig { returns(T.nilable(T::Array[String])) }
672
+ attr_reader :remove_tags
673
+
674
+ sig { params(remove_tags: T::Array[String]).void }
675
+ attr_writer :remove_tags
676
+
677
+ # Array of custom metadata field updates.
678
+ sig do
679
+ returns(
680
+ T.nilable(
681
+ T::Array[
682
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata
683
+ ]
684
+ )
685
+ )
686
+ end
687
+ attr_reader :set_metadata
688
+
689
+ sig do
690
+ params(
691
+ set_metadata:
692
+ T::Array[
693
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash
694
+ ]
695
+ ).void
696
+ end
697
+ attr_writer :set_metadata
698
+
699
+ # Array of custom metadata fields to remove.
700
+ sig do
701
+ returns(
702
+ T.nilable(
703
+ T::Array[
704
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata
705
+ ]
706
+ )
707
+ )
708
+ end
709
+ attr_reader :unset_metadata
710
+
711
+ sig do
712
+ params(
713
+ unset_metadata:
714
+ T::Array[
715
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash
716
+ ]
717
+ ).void
718
+ end
719
+ attr_writer :unset_metadata
720
+
721
+ # Actions to execute if the AI answers no.
722
+ sig do
723
+ params(
724
+ add_tags: T::Array[String],
725
+ remove_tags: T::Array[String],
726
+ set_metadata:
727
+ T::Array[
728
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash
729
+ ],
730
+ unset_metadata:
731
+ T::Array[
732
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash
733
+ ]
734
+ ).returns(T.attached_class)
735
+ end
736
+ def self.new(
737
+ # Array of tag strings to add to the asset.
738
+ add_tags: nil,
739
+ # Array of tag strings to remove from the asset.
740
+ remove_tags: nil,
741
+ # Array of custom metadata field updates.
742
+ set_metadata: nil,
743
+ # Array of custom metadata fields to remove.
744
+ unset_metadata: nil
745
+ )
746
+ end
747
+
748
+ sig do
749
+ override.returns(
750
+ {
751
+ add_tags: T::Array[String],
752
+ remove_tags: T::Array[String],
753
+ set_metadata:
754
+ T::Array[
755
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata
756
+ ],
757
+ unset_metadata:
758
+ T::Array[
759
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata
760
+ ]
761
+ }
762
+ )
763
+ end
764
+ def to_hash
765
+ end
766
+
767
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
768
+ OrHash =
769
+ T.type_alias do
770
+ T.any(
771
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata,
772
+ Imagekitio::Internal::AnyHash
773
+ )
774
+ end
775
+
776
+ # Name of the custom metadata field to set.
777
+ sig { returns(String) }
778
+ attr_accessor :field
779
+
780
+ # Value to set for the custom metadata field. The value type should match the
781
+ # custom metadata field type.
782
+ sig do
783
+ returns(
784
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
785
+ )
786
+ end
787
+ attr_accessor :value
788
+
789
+ sig do
790
+ params(
791
+ field: String,
792
+ value:
793
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
794
+ ).returns(T.attached_class)
795
+ end
796
+ def self.new(
797
+ # Name of the custom metadata field to set.
798
+ field:,
799
+ # Value to set for the custom metadata field. The value type should match the
800
+ # custom metadata field type.
801
+ value:
802
+ )
803
+ end
804
+
805
+ sig do
806
+ override.returns(
807
+ {
808
+ field: String,
809
+ value:
810
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
811
+ }
812
+ )
813
+ end
814
+ def to_hash
815
+ end
816
+
817
+ # Value to set for the custom metadata field. The value type should match the
818
+ # custom metadata field type.
819
+ module Value
820
+ extend Imagekitio::Internal::Type::Union
821
+
822
+ Variants =
823
+ T.type_alias do
824
+ T.any(
825
+ String,
826
+ Float,
827
+ T::Boolean,
828
+ T::Array[
829
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants
830
+ ]
831
+ )
832
+ end
833
+
834
+ module Mixed
835
+ extend Imagekitio::Internal::Type::Union
836
+
837
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
838
+
839
+ sig do
840
+ override.returns(
841
+ T::Array[
842
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants
843
+ ]
844
+ )
845
+ end
846
+ def self.variants
847
+ end
848
+ end
849
+
850
+ sig do
851
+ override.returns(
852
+ T::Array[
853
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants
854
+ ]
855
+ )
856
+ end
857
+ def self.variants
858
+ end
859
+
860
+ MixedArray =
861
+ T.let(
862
+ Imagekitio::Internal::Type::ArrayOf[
863
+ union:
864
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed
865
+ ],
866
+ Imagekitio::Internal::Type::Converter
867
+ )
868
+ end
869
+ end
870
+
871
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
872
+ OrHash =
873
+ T.type_alias do
874
+ T.any(
875
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata,
876
+ Imagekitio::Internal::AnyHash
877
+ )
878
+ end
879
+
880
+ # Name of the custom metadata field to remove.
881
+ sig { returns(String) }
882
+ attr_accessor :field
883
+
884
+ sig { params(field: String).returns(T.attached_class) }
885
+ def self.new(
886
+ # Name of the custom metadata field to remove.
887
+ field:
888
+ )
889
+ end
890
+
891
+ sig { override.returns({ field: String }) }
892
+ def to_hash
893
+ end
894
+ end
895
+ end
896
+
897
+ class OnUnknown < Imagekitio::Internal::Type::BaseModel
898
+ OrHash =
899
+ T.type_alias do
900
+ T.any(
901
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown,
902
+ Imagekitio::Internal::AnyHash
903
+ )
904
+ end
905
+
906
+ # Array of tag strings to add to the asset.
907
+ sig { returns(T.nilable(T::Array[String])) }
908
+ attr_reader :add_tags
909
+
910
+ sig { params(add_tags: T::Array[String]).void }
911
+ attr_writer :add_tags
912
+
913
+ # Array of tag strings to remove from the asset.
914
+ sig { returns(T.nilable(T::Array[String])) }
915
+ attr_reader :remove_tags
916
+
917
+ sig { params(remove_tags: T::Array[String]).void }
918
+ attr_writer :remove_tags
919
+
920
+ # Array of custom metadata field updates.
921
+ sig do
922
+ returns(
923
+ T.nilable(
924
+ T::Array[
925
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata
926
+ ]
927
+ )
928
+ )
929
+ end
930
+ attr_reader :set_metadata
931
+
932
+ sig do
933
+ params(
934
+ set_metadata:
935
+ T::Array[
936
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash
937
+ ]
938
+ ).void
939
+ end
940
+ attr_writer :set_metadata
941
+
942
+ # Array of custom metadata fields to remove.
943
+ sig do
944
+ returns(
945
+ T.nilable(
946
+ T::Array[
947
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata
948
+ ]
949
+ )
950
+ )
951
+ end
952
+ attr_reader :unset_metadata
953
+
954
+ sig do
955
+ params(
956
+ unset_metadata:
957
+ T::Array[
958
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash
959
+ ]
960
+ ).void
961
+ end
962
+ attr_writer :unset_metadata
963
+
964
+ # Actions to execute if the AI cannot determine the answer.
965
+ sig do
966
+ params(
967
+ add_tags: T::Array[String],
968
+ remove_tags: T::Array[String],
969
+ set_metadata:
970
+ T::Array[
971
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash
972
+ ],
973
+ unset_metadata:
974
+ T::Array[
975
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash
976
+ ]
977
+ ).returns(T.attached_class)
978
+ end
979
+ def self.new(
980
+ # Array of tag strings to add to the asset.
981
+ add_tags: nil,
982
+ # Array of tag strings to remove from the asset.
983
+ remove_tags: nil,
984
+ # Array of custom metadata field updates.
985
+ set_metadata: nil,
986
+ # Array of custom metadata fields to remove.
987
+ unset_metadata: nil
988
+ )
989
+ end
990
+
991
+ sig do
992
+ override.returns(
993
+ {
994
+ add_tags: T::Array[String],
995
+ remove_tags: T::Array[String],
996
+ set_metadata:
997
+ T::Array[
998
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata
999
+ ],
1000
+ unset_metadata:
1001
+ T::Array[
1002
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata
1003
+ ]
1004
+ }
1005
+ )
1006
+ end
1007
+ def to_hash
1008
+ end
1009
+
1010
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
1011
+ OrHash =
1012
+ T.type_alias do
1013
+ T.any(
1014
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata,
1015
+ Imagekitio::Internal::AnyHash
1016
+ )
1017
+ end
1018
+
1019
+ # Name of the custom metadata field to set.
1020
+ sig { returns(String) }
1021
+ attr_accessor :field
1022
+
1023
+ # Value to set for the custom metadata field. The value type should match the
1024
+ # custom metadata field type.
1025
+ sig do
1026
+ returns(
1027
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1028
+ )
1029
+ end
1030
+ attr_accessor :value
1031
+
1032
+ sig do
1033
+ params(
1034
+ field: String,
1035
+ value:
1036
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1037
+ ).returns(T.attached_class)
1038
+ end
1039
+ def self.new(
1040
+ # Name of the custom metadata field to set.
1041
+ field:,
1042
+ # Value to set for the custom metadata field. The value type should match the
1043
+ # custom metadata field type.
1044
+ value:
1045
+ )
1046
+ end
1047
+
1048
+ sig do
1049
+ override.returns(
1050
+ {
1051
+ field: String,
1052
+ value:
1053
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1054
+ }
1055
+ )
1056
+ end
1057
+ def to_hash
1058
+ end
1059
+
1060
+ # Value to set for the custom metadata field. The value type should match the
1061
+ # custom metadata field type.
1062
+ module Value
1063
+ extend Imagekitio::Internal::Type::Union
1064
+
1065
+ Variants =
1066
+ T.type_alias do
1067
+ T.any(
1068
+ String,
1069
+ Float,
1070
+ T::Boolean,
1071
+ T::Array[
1072
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants
1073
+ ]
1074
+ )
1075
+ end
1076
+
1077
+ module Mixed
1078
+ extend Imagekitio::Internal::Type::Union
1079
+
1080
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
1081
+
1082
+ sig do
1083
+ override.returns(
1084
+ T::Array[
1085
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants
1086
+ ]
1087
+ )
1088
+ end
1089
+ def self.variants
1090
+ end
1091
+ end
1092
+
1093
+ sig do
1094
+ override.returns(
1095
+ T::Array[
1096
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants
1097
+ ]
1098
+ )
1099
+ end
1100
+ def self.variants
1101
+ end
1102
+
1103
+ MixedArray =
1104
+ T.let(
1105
+ Imagekitio::Internal::Type::ArrayOf[
1106
+ union:
1107
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed
1108
+ ],
1109
+ Imagekitio::Internal::Type::Converter
1110
+ )
1111
+ end
1112
+ end
1113
+
1114
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
1115
+ OrHash =
1116
+ T.type_alias do
1117
+ T.any(
1118
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata,
1119
+ Imagekitio::Internal::AnyHash
1120
+ )
1121
+ end
1122
+
1123
+ # Name of the custom metadata field to remove.
1124
+ sig { returns(String) }
1125
+ attr_accessor :field
1126
+
1127
+ sig { params(field: String).returns(T.attached_class) }
1128
+ def self.new(
1129
+ # Name of the custom metadata field to remove.
1130
+ field:
1131
+ )
1132
+ end
1133
+
1134
+ sig { override.returns({ field: String }) }
1135
+ def to_hash
1136
+ end
1137
+ end
1138
+ end
1139
+
1140
+ class OnYes < Imagekitio::Internal::Type::BaseModel
1141
+ OrHash =
1142
+ T.type_alias do
1143
+ T.any(
1144
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes,
1145
+ Imagekitio::Internal::AnyHash
1146
+ )
1147
+ end
1148
+
1149
+ # Array of tag strings to add to the asset.
1150
+ sig { returns(T.nilable(T::Array[String])) }
1151
+ attr_reader :add_tags
1152
+
1153
+ sig { params(add_tags: T::Array[String]).void }
1154
+ attr_writer :add_tags
1155
+
1156
+ # Array of tag strings to remove from the asset.
1157
+ sig { returns(T.nilable(T::Array[String])) }
1158
+ attr_reader :remove_tags
1159
+
1160
+ sig { params(remove_tags: T::Array[String]).void }
1161
+ attr_writer :remove_tags
1162
+
1163
+ # Array of custom metadata field updates.
1164
+ sig do
1165
+ returns(
1166
+ T.nilable(
1167
+ T::Array[
1168
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata
1169
+ ]
1170
+ )
1171
+ )
1172
+ end
1173
+ attr_reader :set_metadata
1174
+
1175
+ sig do
1176
+ params(
1177
+ set_metadata:
1178
+ T::Array[
1179
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash
1180
+ ]
1181
+ ).void
1182
+ end
1183
+ attr_writer :set_metadata
1184
+
1185
+ # Array of custom metadata fields to remove.
1186
+ sig do
1187
+ returns(
1188
+ T.nilable(
1189
+ T::Array[
1190
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata
1191
+ ]
1192
+ )
1193
+ )
1194
+ end
1195
+ attr_reader :unset_metadata
1196
+
1197
+ sig do
1198
+ params(
1199
+ unset_metadata:
1200
+ T::Array[
1201
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash
1202
+ ]
1203
+ ).void
1204
+ end
1205
+ attr_writer :unset_metadata
1206
+
1207
+ # Actions to execute if the AI answers yes.
1208
+ sig do
1209
+ params(
1210
+ add_tags: T::Array[String],
1211
+ remove_tags: T::Array[String],
1212
+ set_metadata:
1213
+ T::Array[
1214
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash
1215
+ ],
1216
+ unset_metadata:
1217
+ T::Array[
1218
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash
1219
+ ]
1220
+ ).returns(T.attached_class)
1221
+ end
1222
+ def self.new(
1223
+ # Array of tag strings to add to the asset.
1224
+ add_tags: nil,
1225
+ # Array of tag strings to remove from the asset.
1226
+ remove_tags: nil,
1227
+ # Array of custom metadata field updates.
1228
+ set_metadata: nil,
1229
+ # Array of custom metadata fields to remove.
1230
+ unset_metadata: nil
1231
+ )
1232
+ end
1233
+
1234
+ sig do
1235
+ override.returns(
1236
+ {
1237
+ add_tags: T::Array[String],
1238
+ remove_tags: T::Array[String],
1239
+ set_metadata:
1240
+ T::Array[
1241
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata
1242
+ ],
1243
+ unset_metadata:
1244
+ T::Array[
1245
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata
1246
+ ]
1247
+ }
1248
+ )
1249
+ end
1250
+ def to_hash
1251
+ end
1252
+
1253
+ class SetMetadata < Imagekitio::Internal::Type::BaseModel
1254
+ OrHash =
1255
+ T.type_alias do
1256
+ T.any(
1257
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata,
1258
+ Imagekitio::Internal::AnyHash
1259
+ )
1260
+ end
1261
+
1262
+ # Name of the custom metadata field to set.
1263
+ sig { returns(String) }
1264
+ attr_accessor :field
1265
+
1266
+ # Value to set for the custom metadata field. The value type should match the
1267
+ # custom metadata field type.
1268
+ sig do
1269
+ returns(
1270
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1271
+ )
1272
+ end
1273
+ attr_accessor :value
1274
+
1275
+ sig do
1276
+ params(
1277
+ field: String,
1278
+ value:
1279
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1280
+ ).returns(T.attached_class)
1281
+ end
1282
+ def self.new(
1283
+ # Name of the custom metadata field to set.
1284
+ field:,
1285
+ # Value to set for the custom metadata field. The value type should match the
1286
+ # custom metadata field type.
1287
+ value:
1288
+ )
1289
+ end
1290
+
1291
+ sig do
1292
+ override.returns(
1293
+ {
1294
+ field: String,
1295
+ value:
1296
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1297
+ }
1298
+ )
1299
+ end
1300
+ def to_hash
1301
+ end
1302
+
1303
+ # Value to set for the custom metadata field. The value type should match the
1304
+ # custom metadata field type.
1305
+ module Value
1306
+ extend Imagekitio::Internal::Type::Union
1307
+
1308
+ Variants =
1309
+ T.type_alias do
1310
+ T.any(
1311
+ String,
1312
+ Float,
1313
+ T::Boolean,
1314
+ T::Array[
1315
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants
1316
+ ]
1317
+ )
1318
+ end
1319
+
1320
+ module Mixed
1321
+ extend Imagekitio::Internal::Type::Union
1322
+
1323
+ Variants = T.type_alias { T.any(String, Float, T::Boolean) }
1324
+
1325
+ sig do
1326
+ override.returns(
1327
+ T::Array[
1328
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants
1329
+ ]
1330
+ )
1331
+ end
1332
+ def self.variants
1333
+ end
1334
+ end
1335
+
1336
+ sig do
1337
+ override.returns(
1338
+ T::Array[
1339
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants
1340
+ ]
1341
+ )
1342
+ end
1343
+ def self.variants
1344
+ end
1345
+
1346
+ MixedArray =
1347
+ T.let(
1348
+ Imagekitio::Internal::Type::ArrayOf[
1349
+ union:
1350
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed
1351
+ ],
1352
+ Imagekitio::Internal::Type::Converter
1353
+ )
1354
+ end
1355
+ end
1356
+
1357
+ class UnsetMetadata < Imagekitio::Internal::Type::BaseModel
1358
+ OrHash =
1359
+ T.type_alias do
1360
+ T.any(
1361
+ Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata,
1362
+ Imagekitio::Internal::AnyHash
1363
+ )
1364
+ end
1365
+
1366
+ # Name of the custom metadata field to remove.
1367
+ sig { returns(String) }
1368
+ attr_accessor :field
1369
+
1370
+ sig { params(field: String).returns(T.attached_class) }
1371
+ def self.new(
1372
+ # Name of the custom metadata field to remove.
1373
+ field:
1374
+ )
1375
+ end
1376
+
1377
+ sig { override.returns({ field: String }) }
1378
+ def to_hash
1379
+ end
1380
+ end
1381
+ end
1382
+ end
1383
+
1384
+ sig do
1385
+ override.returns(
1386
+ T::Array[Imagekitio::ExtensionItem::AITasks::Task::Variants]
1387
+ )
1388
+ end
1389
+ def self.variants
1390
+ end
1391
+ end
1392
+ end
1393
+
1394
+ class SavedExtension < Imagekitio::Internal::Type::BaseModel
1395
+ OrHash =
1396
+ T.type_alias do
1397
+ T.any(
1398
+ Imagekitio::ExtensionItem::SavedExtension,
1399
+ Imagekitio::Internal::AnyHash
1400
+ )
1401
+ end
1402
+
1403
+ # The unique ID of the saved extension to apply.
1404
+ sig { returns(String) }
1405
+ attr_accessor :id
1406
+
1407
+ # Indicates this is a reference to a saved extension.
1408
+ sig { returns(Symbol) }
1409
+ attr_accessor :name
1410
+
1411
+ sig { params(id: String, name: Symbol).returns(T.attached_class) }
1412
+ def self.new(
1413
+ # The unique ID of the saved extension to apply.
1414
+ id:,
1415
+ # Indicates this is a reference to a saved extension.
1416
+ name: :"saved-extension"
1417
+ )
1418
+ end
1419
+
1420
+ sig { override.returns({ id: String, name: Symbol }) }
1421
+ def to_hash
1422
+ end
1423
+ end
1424
+
263
1425
  sig { override.returns(T::Array[Imagekitio::ExtensionItem::Variants]) }
264
1426
  def self.variants
265
1427
  end