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