diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 934f2cc0..396d9f01 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "4.4.0" + ".": "4.4.1" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 1ee5069c..a1b609ac 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 47 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-70c42eda2bee929830b2537f758400a58dded1f1ef5686a286e2469c35a041a0.yml -openapi_spec_hash: cdaeed824e91657b45092765cf55eb42 -config_hash: 83967503e501e4199b4042d0d0f2b615 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/imagekit-inc%2Fimagekit-c7f578172392bde58bbb72be2a25b9e917529cd07550358c645ce155debf2418.yml +openapi_spec_hash: f0d797a17b1e8e81707517700cd44b13 +config_hash: 94f48fd13b7d41b8b6a203a3a8cee9ed diff --git a/CHANGELOG.md b/CHANGELOG.md index 542c03de..63354d30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 4.4.1 (2026-04-24) + +Full Changelog: [v4.4.0...v4.4.1](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.4.0...v4.4.1) + +### Features + +* **api:** manual updates ([7b8cad3](https://github.com/imagekit-developer/imagekit-ruby/commit/7b8cad330f21f2e8f94fc6fbee3a70fe87bc30a1)) +* **api:** manual updates ([f462715](https://github.com/imagekit-developer/imagekit-ruby/commit/f462715e564b25253986276423572442c1d20d29)) + + +### Chores + +* configure new SDK language ([6e8aa01](https://github.com/imagekit-developer/imagekit-ruby/commit/6e8aa014bbf00f69237d9a787de2c03f27b19c56)) +* **internal:** more robust bootstrap script ([3192433](https://github.com/imagekit-developer/imagekit-ruby/commit/31924332fb8e956f8dc2c2c72c0285122197522f)) + ## 4.4.0 (2026-04-13) Full Changelog: [v4.3.0...v4.4.0](https://github.com/imagekit-developer/imagekit-ruby/compare/v4.3.0...v4.4.0) diff --git a/Gemfile.lock b/Gemfile.lock index fe1dd7d7..d8e6b574 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - imagekitio (4.4.0) + imagekitio (4.4.1) cgi connection_pool standardwebhooks diff --git a/README.md b/README.md index abf93479..8c8e0bae 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "imagekitio", "~> 4.4.0" +gem "imagekitio", "~> 4.4.1" ``` diff --git a/lib/imagekitio.rb b/lib/imagekitio.rb index 9dfc5b8e..f7888778 100644 --- a/lib/imagekitio.rb +++ b/lib/imagekitio.rb @@ -95,6 +95,7 @@ require_relative "imagekitio/models/custom_metadata_field_update_params" require_relative "imagekitio/models/embedded_metadata" require_relative "imagekitio/models/extension_config" +require_relative "imagekitio/models/extension_item" require_relative "imagekitio/models/extensions" require_relative "imagekitio/models/file_copy_params" require_relative "imagekitio/models/file_copy_response" diff --git a/lib/imagekitio/models/extension_item.rb b/lib/imagekitio/models/extension_item.rb new file mode 100644 index 00000000..dcb93bbd --- /dev/null +++ b/lib/imagekitio/models/extension_item.rb @@ -0,0 +1,696 @@ +# frozen_string_literal: true + +module Imagekitio + module Models + module ExtensionItem + extend Imagekitio::Internal::Type::Union + + discriminator :name + + variant :"remove-bg", -> { Imagekitio::ExtensionItem::RemoveBg } + + variant :"ai-auto-description", -> { Imagekitio::ExtensionItem::AIAutoDescription } + + variant :"ai-tasks", -> { Imagekitio::ExtensionItem::AITasks } + + variant :"saved-extension", -> { Imagekitio::ExtensionItem::SavedExtension } + + variant -> { Imagekitio::ExtensionItem::AutoTaggingExtension } + + class RemoveBg < Imagekitio::Internal::Type::BaseModel + # @!attribute name + # Specifies the background removal extension. + # + # @return [Symbol, :"remove-bg"] + required :name, const: :"remove-bg" + + # @!attribute options + # + # @return [Imagekitio::Models::ExtensionItem::RemoveBg::Options, nil] + optional :options, -> { Imagekitio::ExtensionItem::RemoveBg::Options } + + # @!method initialize(options: nil, name: :"remove-bg") + # @param options [Imagekitio::Models::ExtensionItem::RemoveBg::Options] + # + # @param name [Symbol, :"remove-bg"] Specifies the background removal extension. + + # @see Imagekitio::Models::ExtensionItem::RemoveBg#options + class Options < Imagekitio::Internal::Type::BaseModel + # @!attribute add_shadow + # Whether to add an artificial shadow to the result. Default is false. Note: + # Adding shadows is currently only supported for car photos. + # + # @return [Boolean, nil] + optional :add_shadow, Imagekitio::Internal::Type::Boolean + + # @!attribute bg_color + # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or + # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be + # empty. + # + # @return [String, nil] + optional :bg_color, String + + # @!attribute bg_image_url + # Sets a background image from a URL. If this parameter is set, `bg_color` must be + # empty. + # + # @return [String, nil] + optional :bg_image_url, String + + # @!attribute semitransparency + # Allows semi-transparent regions in the result. Default is true. Note: + # Semitransparency is currently only supported for car windows. + # + # @return [Boolean, nil] + optional :semitransparency, Imagekitio::Internal::Type::Boolean + + # @!method initialize(add_shadow: nil, bg_color: nil, bg_image_url: nil, semitransparency: nil) + # Some parameter documentations has been truncated, see + # {Imagekitio::Models::ExtensionItem::RemoveBg::Options} for more details. + # + # @param add_shadow [Boolean] Whether to add an artificial shadow to the result. Default is false. Note: Addin + # + # @param bg_color [String] Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or col + # + # @param bg_image_url [String] Sets a background image from a URL. If this parameter is set, `bg_color` must be + # + # @param semitransparency [Boolean] Allows semi-transparent regions in the result. Default is true. Note: Semitransp + end + end + + class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel + # @!attribute max_tags + # Maximum number of tags to attach to the asset. + # + # @return [Integer] + required :max_tags, Integer, api_name: :maxTags + + # @!attribute min_confidence + # Minimum confidence level for tags to be considered valid. + # + # @return [Integer] + required :min_confidence, Integer, api_name: :minConfidence + + # @!attribute name + # Specifies the auto-tagging extension used. + # + # @return [Symbol, Imagekitio::Models::ExtensionItem::AutoTaggingExtension::Name] + required :name, enum: -> { Imagekitio::ExtensionItem::AutoTaggingExtension::Name } + + # @!method initialize(max_tags:, min_confidence:, name:) + # @param max_tags [Integer] Maximum number of tags to attach to the asset. + # + # @param min_confidence [Integer] Minimum confidence level for tags to be considered valid. + # + # @param name [Symbol, Imagekitio::Models::ExtensionItem::AutoTaggingExtension::Name] Specifies the auto-tagging extension used. + + # Specifies the auto-tagging extension used. + # + # @see Imagekitio::Models::ExtensionItem::AutoTaggingExtension#name + module Name + extend Imagekitio::Internal::Type::Enum + + GOOGLE_AUTO_TAGGING = :"google-auto-tagging" + AWS_AUTO_TAGGING = :"aws-auto-tagging" + + # @!method self.values + # @return [Array] + end + end + + class AIAutoDescription < Imagekitio::Internal::Type::BaseModel + # @!attribute name + # Specifies the auto description extension. + # + # @return [Symbol, :"ai-auto-description"] + required :name, const: :"ai-auto-description" + + # @!method initialize(name: :"ai-auto-description") + # @param name [Symbol, :"ai-auto-description"] Specifies the auto description extension. + end + + class AITasks < Imagekitio::Internal::Type::BaseModel + # @!attribute name + # Specifies the AI tasks extension for automated image analysis using AI models. + # + # @return [Symbol, :"ai-tasks"] + required :name, const: :"ai-tasks" + + # @!attribute tasks + # Array of task objects defining AI operations to perform on the asset. + # + # @return [Array] + required :tasks, + -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem::AITasks::Task] } + + # @!method initialize(tasks:, name: :"ai-tasks") + # @param tasks [Array] Array of task objects defining AI operations to perform on the asset. + # + # @param name [Symbol, :"ai-tasks"] Specifies the AI tasks extension for automated image analysis using AI models. + + module Task + extend Imagekitio::Internal::Type::Union + + discriminator :type + + variant :select_tags, -> { Imagekitio::ExtensionItem::AITasks::Task::SelectTags } + + variant :select_metadata, -> { Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata } + + variant :yes_no, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo } + + class SelectTags < Imagekitio::Internal::Type::BaseModel + # @!attribute instruction + # The question or instruction for the AI to analyze the image. + # + # @return [String] + required :instruction, String + + # @!attribute type + # Task type that analyzes the image and adds matching tags from a vocabulary. + # + # @return [Symbol, :select_tags] + required :type, const: :select_tags + + # @!attribute max_selections + # Maximum number of tags to select from the vocabulary. + # + # @return [Integer, nil] + optional :max_selections, Integer + + # @!attribute min_selections + # Minimum number of tags to select from the vocabulary. + # + # @return [Integer, nil] + optional :min_selections, Integer + + # @!attribute vocabulary + # Array of possible tag values. The combined length of all strings must not exceed + # 500 characters, and values cannot include the `%` character. When providing + # large vocabularies (more than 30 items), the AI may not follow the list + # strictly. + # + # @return [Array, nil] + optional :vocabulary, Imagekitio::Internal::Type::ArrayOf[String] + + # @!method initialize(instruction:, max_selections: nil, min_selections: nil, vocabulary: nil, type: :select_tags) + # Some parameter documentations has been truncated, see + # {Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags} for more details. + # + # @param instruction [String] The question or instruction for the AI to analyze the image. + # + # @param max_selections [Integer] Maximum number of tags to select from the vocabulary. + # + # @param min_selections [Integer] Minimum number of tags to select from the vocabulary. + # + # @param vocabulary [Array] Array of possible tag values. The combined length of all strings must not exceed + # + # @param type [Symbol, :select_tags] Task type that analyzes the image and adds matching tags from a vocabulary. + end + + class SelectMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to set. The field must exist in your account. + # + # @return [String] + required :field, String + + # @!attribute instruction + # The question or instruction for the AI to analyze the image. + # + # @return [String] + required :instruction, String + + # @!attribute type + # Task type that analyzes the image and sets a custom metadata field value from a + # vocabulary. + # + # @return [Symbol, :select_metadata] + required :type, const: :select_metadata + + # @!attribute max_selections + # Maximum number of values to select from the vocabulary. + # + # @return [Integer, nil] + optional :max_selections, Integer + + # @!attribute min_selections + # Minimum number of values to select from the vocabulary. + # + # @return [Integer, nil] + optional :min_selections, Integer + + # @!attribute vocabulary + # An array of possible values matching the custom metadata field type. If not + # provided for SingleSelect or MultiSelect field types, all values from the custom + # metadata field definition will be used. When providing large vocabularies (above + # 30 items), the AI may not strictly adhere to the list. + # + # @return [Array, nil] + optional :vocabulary, + -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary] } + + # @!method initialize(field:, instruction:, max_selections: nil, min_selections: nil, vocabulary: nil, type: :select_metadata) + # Some parameter documentations has been truncated, see + # {Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata} for more + # details. + # + # @param field [String] Name of the custom metadata field to set. The field must exist in your account. + # + # @param instruction [String] The question or instruction for the AI to analyze the image. + # + # @param max_selections [Integer] Maximum number of values to select from the vocabulary. + # + # @param min_selections [Integer] Minimum number of values to select from the vocabulary. + # + # @param vocabulary [Array] An array of possible values matching the custom metadata field type. If not prov + # + # @param type [Symbol, :select_metadata] Task type that analyzes the image and sets a custom metadata field value from a + + module Vocabulary + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + # @!method self.variants + # @return [Array(String, Float, Boolean)] + end + end + + class YesNo < Imagekitio::Internal::Type::BaseModel + # @!attribute instruction + # The yes/no question for the AI to answer about the image. + # + # @return [String] + required :instruction, String + + # @!attribute type + # Task type that asks a yes/no question and executes actions based on the answer. + # + # @return [Symbol, :yes_no] + required :type, const: :yes_no + + # @!attribute on_no + # Actions to execute if the AI answers no. + # + # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo, nil] + optional :on_no, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo } + + # @!attribute on_unknown + # Actions to execute if the AI cannot determine the answer. + # + # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown, nil] + optional :on_unknown, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown } + + # @!attribute on_yes + # Actions to execute if the AI answers yes. + # + # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes, nil] + optional :on_yes, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes } + + # @!method initialize(instruction:, on_no: nil, on_unknown: nil, on_yes: nil, type: :yes_no) + # @param instruction [String] The yes/no question for the AI to answer about the image. + # + # @param on_no [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo] Actions to execute if the AI answers no. + # + # @param on_unknown [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown] Actions to execute if the AI cannot determine the answer. + # + # @param on_yes [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes] Actions to execute if the AI answers yes. + # + # @param type [Symbol, :yes_no] Task type that asks a yes/no question and executes actions based on the answer. + + # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_no + class OnNo < Imagekitio::Internal::Type::BaseModel + # @!attribute add_tags + # Array of tag strings to add to the asset. + # + # @return [Array, nil] + optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String] + + # @!attribute remove_tags + # Array of tag strings to remove from the asset. + # + # @return [Array, nil] + optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String] + + # @!attribute set_metadata + # Array of custom metadata field updates. + # + # @return [Array, nil] + optional :set_metadata, + -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] } + + # @!attribute unset_metadata + # Array of custom metadata fields to remove. + # + # @return [Array, nil] + optional :unset_metadata, + -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] } + + # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil) + # Actions to execute if the AI answers no. + # + # @param add_tags [Array] Array of tag strings to add to the asset. + # + # @param remove_tags [Array] Array of tag strings to remove from the asset. + # + # @param set_metadata [Array] Array of custom metadata field updates. + # + # @param unset_metadata [Array] Array of custom metadata fields to remove. + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to set. + # + # @return [String] + required :field, String + + # @!attribute value + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + # + # @return [String, Float, Boolean, Array] + required :value, union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value } + + # @!method initialize(field:, value:) + # Some parameter documentations has been truncated, see + # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata} for + # more details. + # + # @param field [String] Name of the custom metadata field to set. + # + # @param value [String, Float, Boolean, Array] Value to set for the custom metadata field. The value type should match the cust + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + # + # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata#value + module Value + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::MixedArray } + + module Mixed + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + # @!method self.variants + # @return [Array(String, Float, Boolean)] + end + + # @!method self.variants + # @return [Array(String, Float, Boolean, Array)] + + # @type [Imagekitio::Internal::Type::Converter] + MixedArray = + Imagekitio::Internal::Type::ArrayOf[union: -> { + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed + }] + end + end + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to remove. + # + # @return [String] + required :field, String + + # @!method initialize(field:) + # @param field [String] Name of the custom metadata field to remove. + end + end + + # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_unknown + class OnUnknown < Imagekitio::Internal::Type::BaseModel + # @!attribute add_tags + # Array of tag strings to add to the asset. + # + # @return [Array, nil] + optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String] + + # @!attribute remove_tags + # Array of tag strings to remove from the asset. + # + # @return [Array, nil] + optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String] + + # @!attribute set_metadata + # Array of custom metadata field updates. + # + # @return [Array, nil] + optional :set_metadata, + -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] } + + # @!attribute unset_metadata + # Array of custom metadata fields to remove. + # + # @return [Array, nil] + optional :unset_metadata, + -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] } + + # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil) + # Actions to execute if the AI cannot determine the answer. + # + # @param add_tags [Array] Array of tag strings to add to the asset. + # + # @param remove_tags [Array] Array of tag strings to remove from the asset. + # + # @param set_metadata [Array] Array of custom metadata field updates. + # + # @param unset_metadata [Array] Array of custom metadata fields to remove. + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to set. + # + # @return [String] + required :field, String + + # @!attribute value + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + # + # @return [String, Float, Boolean, Array] + required :value, + union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value } + + # @!method initialize(field:, value:) + # Some parameter documentations has been truncated, see + # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata} + # for more details. + # + # @param field [String] Name of the custom metadata field to set. + # + # @param value [String, Float, Boolean, Array] Value to set for the custom metadata field. The value type should match the cust + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + # + # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata#value + module Value + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::MixedArray } + + module Mixed + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + # @!method self.variants + # @return [Array(String, Float, Boolean)] + end + + # @!method self.variants + # @return [Array(String, Float, Boolean, Array)] + + # @type [Imagekitio::Internal::Type::Converter] + MixedArray = + Imagekitio::Internal::Type::ArrayOf[union: -> { + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed + }] + end + end + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to remove. + # + # @return [String] + required :field, String + + # @!method initialize(field:) + # @param field [String] Name of the custom metadata field to remove. + end + end + + # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_yes + class OnYes < Imagekitio::Internal::Type::BaseModel + # @!attribute add_tags + # Array of tag strings to add to the asset. + # + # @return [Array, nil] + optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String] + + # @!attribute remove_tags + # Array of tag strings to remove from the asset. + # + # @return [Array, nil] + optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String] + + # @!attribute set_metadata + # Array of custom metadata field updates. + # + # @return [Array, nil] + optional :set_metadata, + -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] } + + # @!attribute unset_metadata + # Array of custom metadata fields to remove. + # + # @return [Array, nil] + optional :unset_metadata, + -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] } + + # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil) + # Actions to execute if the AI answers yes. + # + # @param add_tags [Array] Array of tag strings to add to the asset. + # + # @param remove_tags [Array] Array of tag strings to remove from the asset. + # + # @param set_metadata [Array] Array of custom metadata field updates. + # + # @param unset_metadata [Array] Array of custom metadata fields to remove. + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to set. + # + # @return [String] + required :field, String + + # @!attribute value + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + # + # @return [String, Float, Boolean, Array] + required :value, union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value } + + # @!method initialize(field:, value:) + # Some parameter documentations has been truncated, see + # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata} + # for more details. + # + # @param field [String] Name of the custom metadata field to set. + # + # @param value [String, Float, Boolean, Array] Value to set for the custom metadata field. The value type should match the cust + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + # + # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata#value + module Value + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::MixedArray } + + module Mixed + extend Imagekitio::Internal::Type::Union + + variant String + + variant Float + + variant Imagekitio::Internal::Type::Boolean + + # @!method self.variants + # @return [Array(String, Float, Boolean)] + end + + # @!method self.variants + # @return [Array(String, Float, Boolean, Array)] + + # @type [Imagekitio::Internal::Type::Converter] + MixedArray = + Imagekitio::Internal::Type::ArrayOf[union: -> { + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed + }] + end + end + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + # @!attribute field + # Name of the custom metadata field to remove. + # + # @return [String] + required :field, String + + # @!method initialize(field:) + # @param field [String] Name of the custom metadata field to remove. + end + end + end + + # @!method self.variants + # @return [Array(Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags, Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata, Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo)] + end + end + + class SavedExtension < Imagekitio::Internal::Type::BaseModel + # @!attribute id + # The unique ID of the saved extension to apply. + # + # @return [String] + required :id, String + + # @!attribute name + # Indicates this is a reference to a saved extension. + # + # @return [Symbol, :"saved-extension"] + required :name, const: :"saved-extension" + + # @!method initialize(id:, name: :"saved-extension") + # @param id [String] The unique ID of the saved extension to apply. + # + # @param name [Symbol, :"saved-extension"] Indicates this is a reference to a saved extension. + end + + # @!method self.variants + # @return [Array(Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension)] + end + end +end diff --git a/lib/imagekitio/models/extensions.rb b/lib/imagekitio/models/extensions.rb index 3de6e8c9..497675ee 100644 --- a/lib/imagekitio/models/extensions.rb +++ b/lib/imagekitio/models/extensions.rb @@ -2,697 +2,6 @@ module Imagekitio module Models - module ExtensionItem - extend Imagekitio::Internal::Type::Union - - discriminator :name - - variant :"remove-bg", -> { Imagekitio::ExtensionItem::RemoveBg } - - variant :"ai-auto-description", -> { Imagekitio::ExtensionItem::AIAutoDescription } - - variant :"ai-tasks", -> { Imagekitio::ExtensionItem::AITasks } - - variant :"saved-extension", -> { Imagekitio::ExtensionItem::SavedExtension } - - variant -> { Imagekitio::ExtensionItem::AutoTaggingExtension } - - class RemoveBg < Imagekitio::Internal::Type::BaseModel - # @!attribute name - # Specifies the background removal extension. - # - # @return [Symbol, :"remove-bg"] - required :name, const: :"remove-bg" - - # @!attribute options - # - # @return [Imagekitio::Models::ExtensionItem::RemoveBg::Options, nil] - optional :options, -> { Imagekitio::ExtensionItem::RemoveBg::Options } - - # @!method initialize(options: nil, name: :"remove-bg") - # @param options [Imagekitio::Models::ExtensionItem::RemoveBg::Options] - # - # @param name [Symbol, :"remove-bg"] Specifies the background removal extension. - - # @see Imagekitio::Models::ExtensionItem::RemoveBg#options - class Options < Imagekitio::Internal::Type::BaseModel - # @!attribute add_shadow - # Whether to add an artificial shadow to the result. Default is false. Note: - # Adding shadows is currently only supported for car photos. - # - # @return [Boolean, nil] - optional :add_shadow, Imagekitio::Internal::Type::Boolean - - # @!attribute bg_color - # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or - # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be - # empty. - # - # @return [String, nil] - optional :bg_color, String - - # @!attribute bg_image_url - # Sets a background image from a URL. If this parameter is set, `bg_color` must be - # empty. - # - # @return [String, nil] - optional :bg_image_url, String - - # @!attribute semitransparency - # Allows semi-transparent regions in the result. Default is true. Note: - # Semitransparency is currently only supported for car windows. - # - # @return [Boolean, nil] - optional :semitransparency, Imagekitio::Internal::Type::Boolean - - # @!method initialize(add_shadow: nil, bg_color: nil, bg_image_url: nil, semitransparency: nil) - # Some parameter documentations has been truncated, see - # {Imagekitio::Models::ExtensionItem::RemoveBg::Options} for more details. - # - # @param add_shadow [Boolean] Whether to add an artificial shadow to the result. Default is false. Note: Addin - # - # @param bg_color [String] Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or col - # - # @param bg_image_url [String] Sets a background image from a URL. If this parameter is set, `bg_color` must be - # - # @param semitransparency [Boolean] Allows semi-transparent regions in the result. Default is true. Note: Semitransp - end - end - - class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel - # @!attribute max_tags - # Maximum number of tags to attach to the asset. - # - # @return [Integer] - required :max_tags, Integer, api_name: :maxTags - - # @!attribute min_confidence - # Minimum confidence level for tags to be considered valid. - # - # @return [Integer] - required :min_confidence, Integer, api_name: :minConfidence - - # @!attribute name - # Specifies the auto-tagging extension used. - # - # @return [Symbol, Imagekitio::Models::ExtensionItem::AutoTaggingExtension::Name] - required :name, enum: -> { Imagekitio::ExtensionItem::AutoTaggingExtension::Name } - - # @!method initialize(max_tags:, min_confidence:, name:) - # @param max_tags [Integer] Maximum number of tags to attach to the asset. - # - # @param min_confidence [Integer] Minimum confidence level for tags to be considered valid. - # - # @param name [Symbol, Imagekitio::Models::ExtensionItem::AutoTaggingExtension::Name] Specifies the auto-tagging extension used. - - # Specifies the auto-tagging extension used. - # - # @see Imagekitio::Models::ExtensionItem::AutoTaggingExtension#name - module Name - extend Imagekitio::Internal::Type::Enum - - GOOGLE_AUTO_TAGGING = :"google-auto-tagging" - AWS_AUTO_TAGGING = :"aws-auto-tagging" - - # @!method self.values - # @return [Array] - end - end - - class AIAutoDescription < Imagekitio::Internal::Type::BaseModel - # @!attribute name - # Specifies the auto description extension. - # - # @return [Symbol, :"ai-auto-description"] - required :name, const: :"ai-auto-description" - - # @!method initialize(name: :"ai-auto-description") - # @param name [Symbol, :"ai-auto-description"] Specifies the auto description extension. - end - - class AITasks < Imagekitio::Internal::Type::BaseModel - # @!attribute name - # Specifies the AI tasks extension for automated image analysis using AI models. - # - # @return [Symbol, :"ai-tasks"] - required :name, const: :"ai-tasks" - - # @!attribute tasks - # Array of task objects defining AI operations to perform on the asset. - # - # @return [Array] - required :tasks, - -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem::AITasks::Task] } - - # @!method initialize(tasks:, name: :"ai-tasks") - # @param tasks [Array] Array of task objects defining AI operations to perform on the asset. - # - # @param name [Symbol, :"ai-tasks"] Specifies the AI tasks extension for automated image analysis using AI models. - - module Task - extend Imagekitio::Internal::Type::Union - - discriminator :type - - variant :select_tags, -> { Imagekitio::ExtensionItem::AITasks::Task::SelectTags } - - variant :select_metadata, -> { Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata } - - variant :yes_no, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo } - - class SelectTags < Imagekitio::Internal::Type::BaseModel - # @!attribute instruction - # The question or instruction for the AI to analyze the image. - # - # @return [String] - required :instruction, String - - # @!attribute type - # Task type that analyzes the image and adds matching tags from a vocabulary. - # - # @return [Symbol, :select_tags] - required :type, const: :select_tags - - # @!attribute max_selections - # Maximum number of tags to select from the vocabulary. - # - # @return [Integer, nil] - optional :max_selections, Integer - - # @!attribute min_selections - # Minimum number of tags to select from the vocabulary. - # - # @return [Integer, nil] - optional :min_selections, Integer - - # @!attribute vocabulary - # Array of possible tag values. The combined length of all strings must not exceed - # 500 characters, and values cannot include the `%` character. When providing - # large vocabularies (more than 30 items), the AI may not follow the list - # strictly. - # - # @return [Array, nil] - optional :vocabulary, Imagekitio::Internal::Type::ArrayOf[String] - - # @!method initialize(instruction:, max_selections: nil, min_selections: nil, vocabulary: nil, type: :select_tags) - # Some parameter documentations has been truncated, see - # {Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags} for more details. - # - # @param instruction [String] The question or instruction for the AI to analyze the image. - # - # @param max_selections [Integer] Maximum number of tags to select from the vocabulary. - # - # @param min_selections [Integer] Minimum number of tags to select from the vocabulary. - # - # @param vocabulary [Array] Array of possible tag values. The combined length of all strings must not exceed - # - # @param type [Symbol, :select_tags] Task type that analyzes the image and adds matching tags from a vocabulary. - end - - class SelectMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to set. The field must exist in your account. - # - # @return [String] - required :field, String - - # @!attribute instruction - # The question or instruction for the AI to analyze the image. - # - # @return [String] - required :instruction, String - - # @!attribute type - # Task type that analyzes the image and sets a custom metadata field value from a - # vocabulary. - # - # @return [Symbol, :select_metadata] - required :type, const: :select_metadata - - # @!attribute max_selections - # Maximum number of values to select from the vocabulary. - # - # @return [Integer, nil] - optional :max_selections, Integer - - # @!attribute min_selections - # Minimum number of values to select from the vocabulary. - # - # @return [Integer, nil] - optional :min_selections, Integer - - # @!attribute vocabulary - # An array of possible values matching the custom metadata field type. If not - # provided for SingleSelect or MultiSelect field types, all values from the custom - # metadata field definition will be used. When providing large vocabularies (above - # 30 items), the AI may not strictly adhere to the list. - # - # @return [Array, nil] - optional :vocabulary, - -> { Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary] } - - # @!method initialize(field:, instruction:, max_selections: nil, min_selections: nil, vocabulary: nil, type: :select_metadata) - # Some parameter documentations has been truncated, see - # {Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata} for more - # details. - # - # @param field [String] Name of the custom metadata field to set. The field must exist in your account. - # - # @param instruction [String] The question or instruction for the AI to analyze the image. - # - # @param max_selections [Integer] Maximum number of values to select from the vocabulary. - # - # @param min_selections [Integer] Minimum number of values to select from the vocabulary. - # - # @param vocabulary [Array] An array of possible values matching the custom metadata field type. If not prov - # - # @param type [Symbol, :select_metadata] Task type that analyzes the image and sets a custom metadata field value from a - - module Vocabulary - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - # @!method self.variants - # @return [Array(String, Float, Boolean)] - end - end - - class YesNo < Imagekitio::Internal::Type::BaseModel - # @!attribute instruction - # The yes/no question for the AI to answer about the image. - # - # @return [String] - required :instruction, String - - # @!attribute type - # Task type that asks a yes/no question and executes actions based on the answer. - # - # @return [Symbol, :yes_no] - required :type, const: :yes_no - - # @!attribute on_no - # Actions to execute if the AI answers no. - # - # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo, nil] - optional :on_no, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo } - - # @!attribute on_unknown - # Actions to execute if the AI cannot determine the answer. - # - # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown, nil] - optional :on_unknown, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown } - - # @!attribute on_yes - # Actions to execute if the AI answers yes. - # - # @return [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes, nil] - optional :on_yes, -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes } - - # @!method initialize(instruction:, on_no: nil, on_unknown: nil, on_yes: nil, type: :yes_no) - # @param instruction [String] The yes/no question for the AI to answer about the image. - # - # @param on_no [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo] Actions to execute if the AI answers no. - # - # @param on_unknown [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown] Actions to execute if the AI cannot determine the answer. - # - # @param on_yes [Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes] Actions to execute if the AI answers yes. - # - # @param type [Symbol, :yes_no] Task type that asks a yes/no question and executes actions based on the answer. - - # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_no - class OnNo < Imagekitio::Internal::Type::BaseModel - # @!attribute add_tags - # Array of tag strings to add to the asset. - # - # @return [Array, nil] - optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String] - - # @!attribute remove_tags - # Array of tag strings to remove from the asset. - # - # @return [Array, nil] - optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String] - - # @!attribute set_metadata - # Array of custom metadata field updates. - # - # @return [Array, nil] - optional :set_metadata, - -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] } - - # @!attribute unset_metadata - # Array of custom metadata fields to remove. - # - # @return [Array, nil] - optional :unset_metadata, - -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] } - - # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil) - # Actions to execute if the AI answers no. - # - # @param add_tags [Array] Array of tag strings to add to the asset. - # - # @param remove_tags [Array] Array of tag strings to remove from the asset. - # - # @param set_metadata [Array] Array of custom metadata field updates. - # - # @param unset_metadata [Array] Array of custom metadata fields to remove. - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to set. - # - # @return [String] - required :field, String - - # @!attribute value - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - # - # @return [String, Float, Boolean, Array] - required :value, union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value } - - # @!method initialize(field:, value:) - # Some parameter documentations has been truncated, see - # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata} for - # more details. - # - # @param field [String] Name of the custom metadata field to set. - # - # @param value [String, Float, Boolean, Array] Value to set for the custom metadata field. The value type should match the cust - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - # - # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata#value - module Value - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::MixedArray } - - module Mixed - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - # @!method self.variants - # @return [Array(String, Float, Boolean)] - end - - # @!method self.variants - # @return [Array(String, Float, Boolean, Array)] - - # @type [Imagekitio::Internal::Type::Converter] - MixedArray = - Imagekitio::Internal::Type::ArrayOf[union: -> { - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed - }] - end - end - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to remove. - # - # @return [String] - required :field, String - - # @!method initialize(field:) - # @param field [String] Name of the custom metadata field to remove. - end - end - - # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_unknown - class OnUnknown < Imagekitio::Internal::Type::BaseModel - # @!attribute add_tags - # Array of tag strings to add to the asset. - # - # @return [Array, nil] - optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String] - - # @!attribute remove_tags - # Array of tag strings to remove from the asset. - # - # @return [Array, nil] - optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String] - - # @!attribute set_metadata - # Array of custom metadata field updates. - # - # @return [Array, nil] - optional :set_metadata, - -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] } - - # @!attribute unset_metadata - # Array of custom metadata fields to remove. - # - # @return [Array, nil] - optional :unset_metadata, - -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] } - - # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil) - # Actions to execute if the AI cannot determine the answer. - # - # @param add_tags [Array] Array of tag strings to add to the asset. - # - # @param remove_tags [Array] Array of tag strings to remove from the asset. - # - # @param set_metadata [Array] Array of custom metadata field updates. - # - # @param unset_metadata [Array] Array of custom metadata fields to remove. - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to set. - # - # @return [String] - required :field, String - - # @!attribute value - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - # - # @return [String, Float, Boolean, Array] - required :value, - union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value } - - # @!method initialize(field:, value:) - # Some parameter documentations has been truncated, see - # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata} - # for more details. - # - # @param field [String] Name of the custom metadata field to set. - # - # @param value [String, Float, Boolean, Array] Value to set for the custom metadata field. The value type should match the cust - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - # - # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata#value - module Value - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::MixedArray } - - module Mixed - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - # @!method self.variants - # @return [Array(String, Float, Boolean)] - end - - # @!method self.variants - # @return [Array(String, Float, Boolean, Array)] - - # @type [Imagekitio::Internal::Type::Converter] - MixedArray = - Imagekitio::Internal::Type::ArrayOf[union: -> { - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed - }] - end - end - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to remove. - # - # @return [String] - required :field, String - - # @!method initialize(field:) - # @param field [String] Name of the custom metadata field to remove. - end - end - - # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo#on_yes - class OnYes < Imagekitio::Internal::Type::BaseModel - # @!attribute add_tags - # Array of tag strings to add to the asset. - # - # @return [Array, nil] - optional :add_tags, Imagekitio::Internal::Type::ArrayOf[String] - - # @!attribute remove_tags - # Array of tag strings to remove from the asset. - # - # @return [Array, nil] - optional :remove_tags, Imagekitio::Internal::Type::ArrayOf[String] - - # @!attribute set_metadata - # Array of custom metadata field updates. - # - # @return [Array, nil] - optional :set_metadata, - -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] } - - # @!attribute unset_metadata - # Array of custom metadata fields to remove. - # - # @return [Array, nil] - optional :unset_metadata, - -> { Imagekitio::Internal::Type::ArrayOf[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] } - - # @!method initialize(add_tags: nil, remove_tags: nil, set_metadata: nil, unset_metadata: nil) - # Actions to execute if the AI answers yes. - # - # @param add_tags [Array] Array of tag strings to add to the asset. - # - # @param remove_tags [Array] Array of tag strings to remove from the asset. - # - # @param set_metadata [Array] Array of custom metadata field updates. - # - # @param unset_metadata [Array] Array of custom metadata fields to remove. - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to set. - # - # @return [String] - required :field, String - - # @!attribute value - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - # - # @return [String, Float, Boolean, Array] - required :value, union: -> { Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value } - - # @!method initialize(field:, value:) - # Some parameter documentations has been truncated, see - # {Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata} - # for more details. - # - # @param field [String] Name of the custom metadata field to set. - # - # @param value [String, Float, Boolean, Array] Value to set for the custom metadata field. The value type should match the cust - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - # - # @see Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata#value - module Value - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - variant -> { Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::MixedArray } - - module Mixed - extend Imagekitio::Internal::Type::Union - - variant String - - variant Float - - variant Imagekitio::Internal::Type::Boolean - - # @!method self.variants - # @return [Array(String, Float, Boolean)] - end - - # @!method self.variants - # @return [Array(String, Float, Boolean, Array)] - - # @type [Imagekitio::Internal::Type::Converter] - MixedArray = - Imagekitio::Internal::Type::ArrayOf[union: -> { - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed - }] - end - end - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - # @!attribute field - # Name of the custom metadata field to remove. - # - # @return [String] - required :field, String - - # @!method initialize(field:) - # @param field [String] Name of the custom metadata field to remove. - end - end - end - - # @!method self.variants - # @return [Array(Imagekitio::Models::ExtensionItem::AITasks::Task::SelectTags, Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata, Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo)] - end - end - - class SavedExtension < Imagekitio::Internal::Type::BaseModel - # @!attribute id - # The unique ID of the saved extension to apply. - # - # @return [String] - required :id, String - - # @!attribute name - # Indicates this is a reference to a saved extension. - # - # @return [Symbol, :"saved-extension"] - required :name, const: :"saved-extension" - - # @!method initialize(id:, name: :"saved-extension") - # @param id [String] The unique ID of the saved extension to apply. - # - # @param name [Symbol, :"saved-extension"] Indicates this is a reference to a saved extension. - end - - # @!method self.variants - # @return [Array(Imagekitio::Models::ExtensionItem::RemoveBg, Imagekitio::Models::ExtensionItem::AIAutoDescription, Imagekitio::Models::ExtensionItem::AITasks, Imagekitio::Models::ExtensionItem::SavedExtension, Imagekitio::Models::ExtensionItem::AutoTaggingExtension)] - end - # @type [Imagekitio::Internal::Type::Converter] Extensions = Imagekitio::Internal::Type::ArrayOf[union: -> { Imagekitio::ExtensionItem }] end diff --git a/lib/imagekitio/version.rb b/lib/imagekitio/version.rb index cb9c766c..4f6f3001 100644 --- a/lib/imagekitio/version.rb +++ b/lib/imagekitio/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Imagekitio - VERSION = "4.4.0" + VERSION = "4.4.1" end diff --git a/rbi/imagekitio/models/extension_item.rbi b/rbi/imagekitio/models/extension_item.rbi new file mode 100644 index 00000000..86867447 --- /dev/null +++ b/rbi/imagekitio/models/extension_item.rbi @@ -0,0 +1,1440 @@ +# typed: strong + +module Imagekitio + module Models + module ExtensionItem + extend Imagekitio::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::RemoveBg, + Imagekitio::ExtensionItem::AIAutoDescription, + Imagekitio::ExtensionItem::AITasks, + Imagekitio::ExtensionItem::SavedExtension, + Imagekitio::ExtensionItem::AutoTaggingExtension + ) + end + + class RemoveBg < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::RemoveBg, + Imagekitio::Internal::AnyHash + ) + end + + # Specifies the background removal extension. + sig { returns(Symbol) } + attr_accessor :name + + sig { returns(T.nilable(Imagekitio::ExtensionItem::RemoveBg::Options)) } + attr_reader :options + + sig do + params( + options: Imagekitio::ExtensionItem::RemoveBg::Options::OrHash + ).void + end + attr_writer :options + + sig do + params( + options: Imagekitio::ExtensionItem::RemoveBg::Options::OrHash, + name: Symbol + ).returns(T.attached_class) + end + def self.new( + options: nil, + # Specifies the background removal extension. + name: :"remove-bg" + ) + end + + sig do + override.returns( + { + name: Symbol, + options: Imagekitio::ExtensionItem::RemoveBg::Options + } + ) + end + def to_hash + end + + class Options < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::RemoveBg::Options, + Imagekitio::Internal::AnyHash + ) + end + + # Whether to add an artificial shadow to the result. Default is false. Note: + # Adding shadows is currently only supported for car photos. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :add_shadow + + sig { params(add_shadow: T::Boolean).void } + attr_writer :add_shadow + + # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or + # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be + # empty. + sig { returns(T.nilable(String)) } + attr_reader :bg_color + + sig { params(bg_color: String).void } + attr_writer :bg_color + + # Sets a background image from a URL. If this parameter is set, `bg_color` must be + # empty. + sig { returns(T.nilable(String)) } + attr_reader :bg_image_url + + sig { params(bg_image_url: String).void } + attr_writer :bg_image_url + + # Allows semi-transparent regions in the result. Default is true. Note: + # Semitransparency is currently only supported for car windows. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :semitransparency + + sig { params(semitransparency: T::Boolean).void } + attr_writer :semitransparency + + sig do + params( + add_shadow: T::Boolean, + bg_color: String, + bg_image_url: String, + semitransparency: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Whether to add an artificial shadow to the result. Default is false. Note: + # Adding shadows is currently only supported for car photos. + add_shadow: nil, + # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or + # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be + # empty. + bg_color: nil, + # Sets a background image from a URL. If this parameter is set, `bg_color` must be + # empty. + bg_image_url: nil, + # Allows semi-transparent regions in the result. Default is true. Note: + # Semitransparency is currently only supported for car windows. + semitransparency: nil + ) + end + + sig do + override.returns( + { + add_shadow: T::Boolean, + bg_color: String, + bg_image_url: String, + semitransparency: T::Boolean + } + ) + end + def to_hash + end + end + end + + class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AutoTaggingExtension, + Imagekitio::Internal::AnyHash + ) + end + + # Maximum number of tags to attach to the asset. + sig { returns(Integer) } + attr_accessor :max_tags + + # Minimum confidence level for tags to be considered valid. + sig { returns(Integer) } + attr_accessor :min_confidence + + # Specifies the auto-tagging extension used. + sig do + returns( + Imagekitio::ExtensionItem::AutoTaggingExtension::Name::OrSymbol + ) + end + attr_accessor :name + + sig do + params( + max_tags: Integer, + min_confidence: Integer, + name: + Imagekitio::ExtensionItem::AutoTaggingExtension::Name::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # Maximum number of tags to attach to the asset. + max_tags:, + # Minimum confidence level for tags to be considered valid. + min_confidence:, + # Specifies the auto-tagging extension used. + name: + ) + end + + sig do + override.returns( + { + max_tags: Integer, + min_confidence: Integer, + name: + Imagekitio::ExtensionItem::AutoTaggingExtension::Name::OrSymbol + } + ) + end + def to_hash + end + + # Specifies the auto-tagging extension used. + module Name + extend Imagekitio::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Imagekitio::ExtensionItem::AutoTaggingExtension::Name + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GOOGLE_AUTO_TAGGING = + T.let( + :"google-auto-tagging", + Imagekitio::ExtensionItem::AutoTaggingExtension::Name::TaggedSymbol + ) + AWS_AUTO_TAGGING = + T.let( + :"aws-auto-tagging", + Imagekitio::ExtensionItem::AutoTaggingExtension::Name::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AutoTaggingExtension::Name::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + class AIAutoDescription < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AIAutoDescription, + Imagekitio::Internal::AnyHash + ) + end + + # Specifies the auto description extension. + sig { returns(Symbol) } + attr_accessor :name + + sig { params(name: Symbol).returns(T.attached_class) } + def self.new( + # Specifies the auto description extension. + name: :"ai-auto-description" + ) + end + + sig { override.returns({ name: Symbol }) } + def to_hash + end + end + + class AITasks < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks, + Imagekitio::Internal::AnyHash + ) + end + + # Specifies the AI tasks extension for automated image analysis using AI models. + sig { returns(Symbol) } + attr_accessor :name + + # Array of task objects defining AI operations to perform on the asset. + sig do + returns( + T::Array[ + T.any( + Imagekitio::ExtensionItem::AITasks::Task::SelectTags, + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, + Imagekitio::ExtensionItem::AITasks::Task::YesNo + ) + ] + ) + end + attr_accessor :tasks + + sig do + params( + tasks: + T::Array[ + T.any( + Imagekitio::ExtensionItem::AITasks::Task::SelectTags::OrHash, + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::OrHash, + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OrHash + ) + ], + name: Symbol + ).returns(T.attached_class) + end + def self.new( + # Array of task objects defining AI operations to perform on the asset. + tasks:, + # Specifies the AI tasks extension for automated image analysis using AI models. + name: :"ai-tasks" + ) + end + + sig do + override.returns( + { + name: Symbol, + tasks: + T::Array[ + T.any( + Imagekitio::ExtensionItem::AITasks::Task::SelectTags, + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, + Imagekitio::ExtensionItem::AITasks::Task::YesNo + ) + ] + } + ) + end + def to_hash + end + + module Task + extend Imagekitio::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::SelectTags, + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, + Imagekitio::ExtensionItem::AITasks::Task::YesNo + ) + end + + class SelectTags < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::SelectTags, + Imagekitio::Internal::AnyHash + ) + end + + # The question or instruction for the AI to analyze the image. + sig { returns(String) } + attr_accessor :instruction + + # Task type that analyzes the image and adds matching tags from a vocabulary. + sig { returns(Symbol) } + attr_accessor :type + + # Maximum number of tags to select from the vocabulary. + sig { returns(T.nilable(Integer)) } + attr_reader :max_selections + + sig { params(max_selections: Integer).void } + attr_writer :max_selections + + # Minimum number of tags to select from the vocabulary. + sig { returns(T.nilable(Integer)) } + attr_reader :min_selections + + sig { params(min_selections: Integer).void } + attr_writer :min_selections + + # Array of possible tag values. The combined length of all strings must not exceed + # 500 characters, and values cannot include the `%` character. When providing + # large vocabularies (more than 30 items), the AI may not follow the list + # strictly. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :vocabulary + + sig { params(vocabulary: T::Array[String]).void } + attr_writer :vocabulary + + sig do + params( + instruction: String, + max_selections: Integer, + min_selections: Integer, + vocabulary: T::Array[String], + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # The question or instruction for the AI to analyze the image. + instruction:, + # Maximum number of tags to select from the vocabulary. + max_selections: nil, + # Minimum number of tags to select from the vocabulary. + min_selections: nil, + # Array of possible tag values. The combined length of all strings must not exceed + # 500 characters, and values cannot include the `%` character. When providing + # large vocabularies (more than 30 items), the AI may not follow the list + # strictly. + vocabulary: nil, + # Task type that analyzes the image and adds matching tags from a vocabulary. + type: :select_tags + ) + end + + sig do + override.returns( + { + instruction: String, + type: Symbol, + max_selections: Integer, + min_selections: Integer, + vocabulary: T::Array[String] + } + ) + end + def to_hash + end + end + + class SelectMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to set. The field must exist in your account. + sig { returns(String) } + attr_accessor :field + + # The question or instruction for the AI to analyze the image. + sig { returns(String) } + attr_accessor :instruction + + # Task type that analyzes the image and sets a custom metadata field value from a + # vocabulary. + sig { returns(Symbol) } + attr_accessor :type + + # Maximum number of values to select from the vocabulary. + sig { returns(T.nilable(Integer)) } + attr_reader :max_selections + + sig { params(max_selections: Integer).void } + attr_writer :max_selections + + # Minimum number of values to select from the vocabulary. + sig { returns(T.nilable(Integer)) } + attr_reader :min_selections + + sig { params(min_selections: Integer).void } + attr_writer :min_selections + + # An array of possible values matching the custom metadata field type. If not + # provided for SingleSelect or MultiSelect field types, all values from the custom + # metadata field definition will be used. When providing large vocabularies (above + # 30 items), the AI may not strictly adhere to the list. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants + ] + ) + ) + end + attr_reader :vocabulary + + sig do + params( + vocabulary: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants + ] + ).void + end + attr_writer :vocabulary + + sig do + params( + field: String, + instruction: String, + max_selections: Integer, + min_selections: Integer, + vocabulary: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants + ], + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Name of the custom metadata field to set. The field must exist in your account. + field:, + # The question or instruction for the AI to analyze the image. + instruction:, + # Maximum number of values to select from the vocabulary. + max_selections: nil, + # Minimum number of values to select from the vocabulary. + min_selections: nil, + # An array of possible values matching the custom metadata field type. If not + # provided for SingleSelect or MultiSelect field types, all values from the custom + # metadata field definition will be used. When providing large vocabularies (above + # 30 items), the AI may not strictly adhere to the list. + vocabulary: nil, + # Task type that analyzes the image and sets a custom metadata field value from a + # vocabulary. + type: :select_metadata + ) + end + + sig do + override.returns( + { + field: String, + instruction: String, + type: Symbol, + max_selections: Integer, + min_selections: Integer, + vocabulary: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants + ] + } + ) + end + def to_hash + end + + module Vocabulary + extend Imagekitio::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Float, T::Boolean) } + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants + ] + ) + end + def self.variants + end + end + end + + class YesNo < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo, + Imagekitio::Internal::AnyHash + ) + end + + # The yes/no question for the AI to answer about the image. + sig { returns(String) } + attr_accessor :instruction + + # Task type that asks a yes/no question and executes actions based on the answer. + sig { returns(Symbol) } + attr_accessor :type + + # Actions to execute if the AI answers no. + sig do + returns( + T.nilable(Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo) + ) + end + attr_reader :on_no + + sig do + params( + on_no: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::OrHash + ).void + end + attr_writer :on_no + + # Actions to execute if the AI cannot determine the answer. + sig do + returns( + T.nilable( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown + ) + ) + end + attr_reader :on_unknown + + sig do + params( + on_unknown: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::OrHash + ).void + end + attr_writer :on_unknown + + # Actions to execute if the AI answers yes. + sig do + returns( + T.nilable( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes + ) + ) + end + attr_reader :on_yes + + sig do + params( + on_yes: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::OrHash + ).void + end + attr_writer :on_yes + + sig do + params( + instruction: String, + on_no: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::OrHash, + on_unknown: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::OrHash, + on_yes: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # The yes/no question for the AI to answer about the image. + instruction:, + # Actions to execute if the AI answers no. + on_no: nil, + # Actions to execute if the AI cannot determine the answer. + on_unknown: nil, + # Actions to execute if the AI answers yes. + on_yes: nil, + # Task type that asks a yes/no question and executes actions based on the answer. + type: :yes_no + ) + end + + sig do + override.returns( + { + instruction: String, + type: Symbol, + on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, + on_unknown: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, + on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes + } + ) + end + def to_hash + end + + class OnNo < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, + Imagekitio::Internal::AnyHash + ) + end + + # Array of tag strings to add to the asset. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :add_tags + + sig { params(add_tags: T::Array[String]).void } + attr_writer :add_tags + + # Array of tag strings to remove from the asset. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :remove_tags + + sig { params(remove_tags: T::Array[String]).void } + attr_writer :remove_tags + + # Array of custom metadata field updates. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata + ] + ) + ) + end + attr_reader :set_metadata + + sig do + params( + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash + ] + ).void + end + attr_writer :set_metadata + + # Array of custom metadata fields to remove. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata + ] + ) + ) + end + attr_reader :unset_metadata + + sig do + params( + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash + ] + ).void + end + attr_writer :unset_metadata + + # Actions to execute if the AI answers no. + sig do + params( + add_tags: T::Array[String], + remove_tags: T::Array[String], + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash + ], + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash + ] + ).returns(T.attached_class) + end + def self.new( + # Array of tag strings to add to the asset. + add_tags: nil, + # Array of tag strings to remove from the asset. + remove_tags: nil, + # Array of custom metadata field updates. + set_metadata: nil, + # Array of custom metadata fields to remove. + unset_metadata: nil + ) + end + + sig do + override.returns( + { + add_tags: T::Array[String], + remove_tags: T::Array[String], + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata + ], + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata + ] + } + ) + end + def to_hash + end + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to set. + sig { returns(String) } + attr_accessor :field + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + sig do + returns( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants + ) + end + attr_accessor :value + + sig do + params( + field: String, + value: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants + ).returns(T.attached_class) + end + def self.new( + # Name of the custom metadata field to set. + field:, + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + value: + ) + end + + sig do + override.returns( + { + field: String, + value: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants + } + ) + end + def to_hash + end + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + module Value + extend Imagekitio::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Float, + T::Boolean, + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants + ] + ) + end + + module Mixed + extend Imagekitio::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Float, T::Boolean) } + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants + ] + ) + end + def self.variants + end + + MixedArray = + T.let( + Imagekitio::Internal::Type::ArrayOf[ + union: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed + ], + Imagekitio::Internal::Type::Converter + ) + end + end + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to remove. + sig { returns(String) } + attr_accessor :field + + sig { params(field: String).returns(T.attached_class) } + def self.new( + # Name of the custom metadata field to remove. + field: + ) + end + + sig { override.returns({ field: String }) } + def to_hash + end + end + end + + class OnUnknown < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, + Imagekitio::Internal::AnyHash + ) + end + + # Array of tag strings to add to the asset. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :add_tags + + sig { params(add_tags: T::Array[String]).void } + attr_writer :add_tags + + # Array of tag strings to remove from the asset. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :remove_tags + + sig { params(remove_tags: T::Array[String]).void } + attr_writer :remove_tags + + # Array of custom metadata field updates. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata + ] + ) + ) + end + attr_reader :set_metadata + + sig do + params( + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash + ] + ).void + end + attr_writer :set_metadata + + # Array of custom metadata fields to remove. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata + ] + ) + ) + end + attr_reader :unset_metadata + + sig do + params( + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash + ] + ).void + end + attr_writer :unset_metadata + + # Actions to execute if the AI cannot determine the answer. + sig do + params( + add_tags: T::Array[String], + remove_tags: T::Array[String], + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash + ], + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash + ] + ).returns(T.attached_class) + end + def self.new( + # Array of tag strings to add to the asset. + add_tags: nil, + # Array of tag strings to remove from the asset. + remove_tags: nil, + # Array of custom metadata field updates. + set_metadata: nil, + # Array of custom metadata fields to remove. + unset_metadata: nil + ) + end + + sig do + override.returns( + { + add_tags: T::Array[String], + remove_tags: T::Array[String], + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata + ], + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata + ] + } + ) + end + def to_hash + end + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to set. + sig { returns(String) } + attr_accessor :field + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + sig do + returns( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants + ) + end + attr_accessor :value + + sig do + params( + field: String, + value: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants + ).returns(T.attached_class) + end + def self.new( + # Name of the custom metadata field to set. + field:, + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + value: + ) + end + + sig do + override.returns( + { + field: String, + value: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants + } + ) + end + def to_hash + end + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + module Value + extend Imagekitio::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Float, + T::Boolean, + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants + ] + ) + end + + module Mixed + extend Imagekitio::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Float, T::Boolean) } + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants + ] + ) + end + def self.variants + end + + MixedArray = + T.let( + Imagekitio::Internal::Type::ArrayOf[ + union: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed + ], + Imagekitio::Internal::Type::Converter + ) + end + end + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to remove. + sig { returns(String) } + attr_accessor :field + + sig { params(field: String).returns(T.attached_class) } + def self.new( + # Name of the custom metadata field to remove. + field: + ) + end + + sig { override.returns({ field: String }) } + def to_hash + end + end + end + + class OnYes < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes, + Imagekitio::Internal::AnyHash + ) + end + + # Array of tag strings to add to the asset. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :add_tags + + sig { params(add_tags: T::Array[String]).void } + attr_writer :add_tags + + # Array of tag strings to remove from the asset. + sig { returns(T.nilable(T::Array[String])) } + attr_reader :remove_tags + + sig { params(remove_tags: T::Array[String]).void } + attr_writer :remove_tags + + # Array of custom metadata field updates. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata + ] + ) + ) + end + attr_reader :set_metadata + + sig do + params( + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash + ] + ).void + end + attr_writer :set_metadata + + # Array of custom metadata fields to remove. + sig do + returns( + T.nilable( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata + ] + ) + ) + end + attr_reader :unset_metadata + + sig do + params( + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash + ] + ).void + end + attr_writer :unset_metadata + + # Actions to execute if the AI answers yes. + sig do + params( + add_tags: T::Array[String], + remove_tags: T::Array[String], + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash + ], + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash + ] + ).returns(T.attached_class) + end + def self.new( + # Array of tag strings to add to the asset. + add_tags: nil, + # Array of tag strings to remove from the asset. + remove_tags: nil, + # Array of custom metadata field updates. + set_metadata: nil, + # Array of custom metadata fields to remove. + unset_metadata: nil + ) + end + + sig do + override.returns( + { + add_tags: T::Array[String], + remove_tags: T::Array[String], + set_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata + ], + unset_metadata: + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata + ] + } + ) + end + def to_hash + end + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to set. + sig { returns(String) } + attr_accessor :field + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + sig do + returns( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants + ) + end + attr_accessor :value + + sig do + params( + field: String, + value: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants + ).returns(T.attached_class) + end + def self.new( + # Name of the custom metadata field to set. + field:, + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + value: + ) + end + + sig do + override.returns( + { + field: String, + value: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants + } + ) + end + def to_hash + end + + # Value to set for the custom metadata field. The value type should match the + # custom metadata field type. + module Value + extend Imagekitio::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Float, + T::Boolean, + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants + ] + ) + end + + module Mixed + extend Imagekitio::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Float, T::Boolean) } + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants + ] + ) + end + def self.variants + end + + MixedArray = + T.let( + Imagekitio::Internal::Type::ArrayOf[ + union: + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed + ], + Imagekitio::Internal::Type::Converter + ) + end + end + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata, + Imagekitio::Internal::AnyHash + ) + end + + # Name of the custom metadata field to remove. + sig { returns(String) } + attr_accessor :field + + sig { params(field: String).returns(T.attached_class) } + def self.new( + # Name of the custom metadata field to remove. + field: + ) + end + + sig { override.returns({ field: String }) } + def to_hash + end + end + end + end + + sig do + override.returns( + T::Array[Imagekitio::ExtensionItem::AITasks::Task::Variants] + ) + end + def self.variants + end + end + end + + class SavedExtension < Imagekitio::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Imagekitio::ExtensionItem::SavedExtension, + Imagekitio::Internal::AnyHash + ) + end + + # The unique ID of the saved extension to apply. + sig { returns(String) } + attr_accessor :id + + # Indicates this is a reference to a saved extension. + sig { returns(Symbol) } + attr_accessor :name + + sig { params(id: String, name: Symbol).returns(T.attached_class) } + def self.new( + # The unique ID of the saved extension to apply. + id:, + # Indicates this is a reference to a saved extension. + name: :"saved-extension" + ) + end + + sig { override.returns({ id: String, name: Symbol }) } + def to_hash + end + end + + sig { override.returns(T::Array[Imagekitio::ExtensionItem::Variants]) } + def self.variants + end + end + end +end diff --git a/rbi/imagekitio/models/extensions.rbi b/rbi/imagekitio/models/extensions.rbi index c9e0afc1..f340cb76 100644 --- a/rbi/imagekitio/models/extensions.rbi +++ b/rbi/imagekitio/models/extensions.rbi @@ -2,1441 +2,6 @@ module Imagekitio module Models - module ExtensionItem - extend Imagekitio::Internal::Type::Union - - Variants = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::RemoveBg, - Imagekitio::ExtensionItem::AIAutoDescription, - Imagekitio::ExtensionItem::AITasks, - Imagekitio::ExtensionItem::SavedExtension, - Imagekitio::ExtensionItem::AutoTaggingExtension - ) - end - - class RemoveBg < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::RemoveBg, - Imagekitio::Internal::AnyHash - ) - end - - # Specifies the background removal extension. - sig { returns(Symbol) } - attr_accessor :name - - sig { returns(T.nilable(Imagekitio::ExtensionItem::RemoveBg::Options)) } - attr_reader :options - - sig do - params( - options: Imagekitio::ExtensionItem::RemoveBg::Options::OrHash - ).void - end - attr_writer :options - - sig do - params( - options: Imagekitio::ExtensionItem::RemoveBg::Options::OrHash, - name: Symbol - ).returns(T.attached_class) - end - def self.new( - options: nil, - # Specifies the background removal extension. - name: :"remove-bg" - ) - end - - sig do - override.returns( - { - name: Symbol, - options: Imagekitio::ExtensionItem::RemoveBg::Options - } - ) - end - def to_hash - end - - class Options < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::RemoveBg::Options, - Imagekitio::Internal::AnyHash - ) - end - - # Whether to add an artificial shadow to the result. Default is false. Note: - # Adding shadows is currently only supported for car photos. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :add_shadow - - sig { params(add_shadow: T::Boolean).void } - attr_writer :add_shadow - - # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or - # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be - # empty. - sig { returns(T.nilable(String)) } - attr_reader :bg_color - - sig { params(bg_color: String).void } - attr_writer :bg_color - - # Sets a background image from a URL. If this parameter is set, `bg_color` must be - # empty. - sig { returns(T.nilable(String)) } - attr_reader :bg_image_url - - sig { params(bg_image_url: String).void } - attr_writer :bg_image_url - - # Allows semi-transparent regions in the result. Default is true. Note: - # Semitransparency is currently only supported for car windows. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :semitransparency - - sig { params(semitransparency: T::Boolean).void } - attr_writer :semitransparency - - sig do - params( - add_shadow: T::Boolean, - bg_color: String, - bg_image_url: String, - semitransparency: T::Boolean - ).returns(T.attached_class) - end - def self.new( - # Whether to add an artificial shadow to the result. Default is false. Note: - # Adding shadows is currently only supported for car photos. - add_shadow: nil, - # Specifies a solid color background using hex code (e.g., "81d4fa", "fff") or - # color name (e.g., "green"). If this parameter is set, `bg_image_url` must be - # empty. - bg_color: nil, - # Sets a background image from a URL. If this parameter is set, `bg_color` must be - # empty. - bg_image_url: nil, - # Allows semi-transparent regions in the result. Default is true. Note: - # Semitransparency is currently only supported for car windows. - semitransparency: nil - ) - end - - sig do - override.returns( - { - add_shadow: T::Boolean, - bg_color: String, - bg_image_url: String, - semitransparency: T::Boolean - } - ) - end - def to_hash - end - end - end - - class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AutoTaggingExtension, - Imagekitio::Internal::AnyHash - ) - end - - # Maximum number of tags to attach to the asset. - sig { returns(Integer) } - attr_accessor :max_tags - - # Minimum confidence level for tags to be considered valid. - sig { returns(Integer) } - attr_accessor :min_confidence - - # Specifies the auto-tagging extension used. - sig do - returns( - Imagekitio::ExtensionItem::AutoTaggingExtension::Name::OrSymbol - ) - end - attr_accessor :name - - sig do - params( - max_tags: Integer, - min_confidence: Integer, - name: - Imagekitio::ExtensionItem::AutoTaggingExtension::Name::OrSymbol - ).returns(T.attached_class) - end - def self.new( - # Maximum number of tags to attach to the asset. - max_tags:, - # Minimum confidence level for tags to be considered valid. - min_confidence:, - # Specifies the auto-tagging extension used. - name: - ) - end - - sig do - override.returns( - { - max_tags: Integer, - min_confidence: Integer, - name: - Imagekitio::ExtensionItem::AutoTaggingExtension::Name::OrSymbol - } - ) - end - def to_hash - end - - # Specifies the auto-tagging extension used. - module Name - extend Imagekitio::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Imagekitio::ExtensionItem::AutoTaggingExtension::Name - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - GOOGLE_AUTO_TAGGING = - T.let( - :"google-auto-tagging", - Imagekitio::ExtensionItem::AutoTaggingExtension::Name::TaggedSymbol - ) - AWS_AUTO_TAGGING = - T.let( - :"aws-auto-tagging", - Imagekitio::ExtensionItem::AutoTaggingExtension::Name::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AutoTaggingExtension::Name::TaggedSymbol - ] - ) - end - def self.values - end - end - end - - class AIAutoDescription < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AIAutoDescription, - Imagekitio::Internal::AnyHash - ) - end - - # Specifies the auto description extension. - sig { returns(Symbol) } - attr_accessor :name - - sig { params(name: Symbol).returns(T.attached_class) } - def self.new( - # Specifies the auto description extension. - name: :"ai-auto-description" - ) - end - - sig { override.returns({ name: Symbol }) } - def to_hash - end - end - - class AITasks < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks, - Imagekitio::Internal::AnyHash - ) - end - - # Specifies the AI tasks extension for automated image analysis using AI models. - sig { returns(Symbol) } - attr_accessor :name - - # Array of task objects defining AI operations to perform on the asset. - sig do - returns( - T::Array[ - T.any( - Imagekitio::ExtensionItem::AITasks::Task::SelectTags, - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, - Imagekitio::ExtensionItem::AITasks::Task::YesNo - ) - ] - ) - end - attr_accessor :tasks - - sig do - params( - tasks: - T::Array[ - T.any( - Imagekitio::ExtensionItem::AITasks::Task::SelectTags::OrHash, - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::OrHash, - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OrHash - ) - ], - name: Symbol - ).returns(T.attached_class) - end - def self.new( - # Array of task objects defining AI operations to perform on the asset. - tasks:, - # Specifies the AI tasks extension for automated image analysis using AI models. - name: :"ai-tasks" - ) - end - - sig do - override.returns( - { - name: Symbol, - tasks: - T::Array[ - T.any( - Imagekitio::ExtensionItem::AITasks::Task::SelectTags, - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, - Imagekitio::ExtensionItem::AITasks::Task::YesNo - ) - ] - } - ) - end - def to_hash - end - - module Task - extend Imagekitio::Internal::Type::Union - - Variants = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::SelectTags, - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, - Imagekitio::ExtensionItem::AITasks::Task::YesNo - ) - end - - class SelectTags < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::SelectTags, - Imagekitio::Internal::AnyHash - ) - end - - # The question or instruction for the AI to analyze the image. - sig { returns(String) } - attr_accessor :instruction - - # Task type that analyzes the image and adds matching tags from a vocabulary. - sig { returns(Symbol) } - attr_accessor :type - - # Maximum number of tags to select from the vocabulary. - sig { returns(T.nilable(Integer)) } - attr_reader :max_selections - - sig { params(max_selections: Integer).void } - attr_writer :max_selections - - # Minimum number of tags to select from the vocabulary. - sig { returns(T.nilable(Integer)) } - attr_reader :min_selections - - sig { params(min_selections: Integer).void } - attr_writer :min_selections - - # Array of possible tag values. The combined length of all strings must not exceed - # 500 characters, and values cannot include the `%` character. When providing - # large vocabularies (more than 30 items), the AI may not follow the list - # strictly. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :vocabulary - - sig { params(vocabulary: T::Array[String]).void } - attr_writer :vocabulary - - sig do - params( - instruction: String, - max_selections: Integer, - min_selections: Integer, - vocabulary: T::Array[String], - type: Symbol - ).returns(T.attached_class) - end - def self.new( - # The question or instruction for the AI to analyze the image. - instruction:, - # Maximum number of tags to select from the vocabulary. - max_selections: nil, - # Minimum number of tags to select from the vocabulary. - min_selections: nil, - # Array of possible tag values. The combined length of all strings must not exceed - # 500 characters, and values cannot include the `%` character. When providing - # large vocabularies (more than 30 items), the AI may not follow the list - # strictly. - vocabulary: nil, - # Task type that analyzes the image and adds matching tags from a vocabulary. - type: :select_tags - ) - end - - sig do - override.returns( - { - instruction: String, - type: Symbol, - max_selections: Integer, - min_selections: Integer, - vocabulary: T::Array[String] - } - ) - end - def to_hash - end - end - - class SelectMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to set. The field must exist in your account. - sig { returns(String) } - attr_accessor :field - - # The question or instruction for the AI to analyze the image. - sig { returns(String) } - attr_accessor :instruction - - # Task type that analyzes the image and sets a custom metadata field value from a - # vocabulary. - sig { returns(Symbol) } - attr_accessor :type - - # Maximum number of values to select from the vocabulary. - sig { returns(T.nilable(Integer)) } - attr_reader :max_selections - - sig { params(max_selections: Integer).void } - attr_writer :max_selections - - # Minimum number of values to select from the vocabulary. - sig { returns(T.nilable(Integer)) } - attr_reader :min_selections - - sig { params(min_selections: Integer).void } - attr_writer :min_selections - - # An array of possible values matching the custom metadata field type. If not - # provided for SingleSelect or MultiSelect field types, all values from the custom - # metadata field definition will be used. When providing large vocabularies (above - # 30 items), the AI may not strictly adhere to the list. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants - ] - ) - ) - end - attr_reader :vocabulary - - sig do - params( - vocabulary: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants - ] - ).void - end - attr_writer :vocabulary - - sig do - params( - field: String, - instruction: String, - max_selections: Integer, - min_selections: Integer, - vocabulary: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants - ], - type: Symbol - ).returns(T.attached_class) - end - def self.new( - # Name of the custom metadata field to set. The field must exist in your account. - field:, - # The question or instruction for the AI to analyze the image. - instruction:, - # Maximum number of values to select from the vocabulary. - max_selections: nil, - # Minimum number of values to select from the vocabulary. - min_selections: nil, - # An array of possible values matching the custom metadata field type. If not - # provided for SingleSelect or MultiSelect field types, all values from the custom - # metadata field definition will be used. When providing large vocabularies (above - # 30 items), the AI may not strictly adhere to the list. - vocabulary: nil, - # Task type that analyzes the image and sets a custom metadata field value from a - # vocabulary. - type: :select_metadata - ) - end - - sig do - override.returns( - { - field: String, - instruction: String, - type: Symbol, - max_selections: Integer, - min_selections: Integer, - vocabulary: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants - ] - } - ) - end - def to_hash - end - - module Vocabulary - extend Imagekitio::Internal::Type::Union - - Variants = T.type_alias { T.any(String, Float, T::Boolean) } - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata::Vocabulary::Variants - ] - ) - end - def self.variants - end - end - end - - class YesNo < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo, - Imagekitio::Internal::AnyHash - ) - end - - # The yes/no question for the AI to answer about the image. - sig { returns(String) } - attr_accessor :instruction - - # Task type that asks a yes/no question and executes actions based on the answer. - sig { returns(Symbol) } - attr_accessor :type - - # Actions to execute if the AI answers no. - sig do - returns( - T.nilable(Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo) - ) - end - attr_reader :on_no - - sig do - params( - on_no: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::OrHash - ).void - end - attr_writer :on_no - - # Actions to execute if the AI cannot determine the answer. - sig do - returns( - T.nilable( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown - ) - ) - end - attr_reader :on_unknown - - sig do - params( - on_unknown: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::OrHash - ).void - end - attr_writer :on_unknown - - # Actions to execute if the AI answers yes. - sig do - returns( - T.nilable( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes - ) - ) - end - attr_reader :on_yes - - sig do - params( - on_yes: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::OrHash - ).void - end - attr_writer :on_yes - - sig do - params( - instruction: String, - on_no: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::OrHash, - on_unknown: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::OrHash, - on_yes: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::OrHash, - type: Symbol - ).returns(T.attached_class) - end - def self.new( - # The yes/no question for the AI to answer about the image. - instruction:, - # Actions to execute if the AI answers no. - on_no: nil, - # Actions to execute if the AI cannot determine the answer. - on_unknown: nil, - # Actions to execute if the AI answers yes. - on_yes: nil, - # Task type that asks a yes/no question and executes actions based on the answer. - type: :yes_no - ) - end - - sig do - override.returns( - { - instruction: String, - type: Symbol, - on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, - on_unknown: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, - on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes - } - ) - end - def to_hash - end - - class OnNo < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, - Imagekitio::Internal::AnyHash - ) - end - - # Array of tag strings to add to the asset. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :add_tags - - sig { params(add_tags: T::Array[String]).void } - attr_writer :add_tags - - # Array of tag strings to remove from the asset. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :remove_tags - - sig { params(remove_tags: T::Array[String]).void } - attr_writer :remove_tags - - # Array of custom metadata field updates. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata - ] - ) - ) - end - attr_reader :set_metadata - - sig do - params( - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash - ] - ).void - end - attr_writer :set_metadata - - # Array of custom metadata fields to remove. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata - ] - ) - ) - end - attr_reader :unset_metadata - - sig do - params( - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash - ] - ).void - end - attr_writer :unset_metadata - - # Actions to execute if the AI answers no. - sig do - params( - add_tags: T::Array[String], - remove_tags: T::Array[String], - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::OrHash - ], - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata::OrHash - ] - ).returns(T.attached_class) - end - def self.new( - # Array of tag strings to add to the asset. - add_tags: nil, - # Array of tag strings to remove from the asset. - remove_tags: nil, - # Array of custom metadata field updates. - set_metadata: nil, - # Array of custom metadata fields to remove. - unset_metadata: nil - ) - end - - sig do - override.returns( - { - add_tags: T::Array[String], - remove_tags: T::Array[String], - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata - ], - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata - ] - } - ) - end - def to_hash - end - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to set. - sig { returns(String) } - attr_accessor :field - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - sig do - returns( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants - ) - end - attr_accessor :value - - sig do - params( - field: String, - value: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants - ).returns(T.attached_class) - end - def self.new( - # Name of the custom metadata field to set. - field:, - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - value: - ) - end - - sig do - override.returns( - { - field: String, - value: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants - } - ) - end - def to_hash - end - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - module Value - extend Imagekitio::Internal::Type::Union - - Variants = - T.type_alias do - T.any( - String, - Float, - T::Boolean, - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants - ] - ) - end - - module Mixed - extend Imagekitio::Internal::Type::Union - - Variants = T.type_alias { T.any(String, Float, T::Boolean) } - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed::Variants - ] - ) - end - def self.variants - end - end - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Variants - ] - ) - end - def self.variants - end - - MixedArray = - T.let( - Imagekitio::Internal::Type::ArrayOf[ - union: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::Mixed - ], - Imagekitio::Internal::Type::Converter - ) - end - end - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to remove. - sig { returns(String) } - attr_accessor :field - - sig { params(field: String).returns(T.attached_class) } - def self.new( - # Name of the custom metadata field to remove. - field: - ) - end - - sig { override.returns({ field: String }) } - def to_hash - end - end - end - - class OnUnknown < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, - Imagekitio::Internal::AnyHash - ) - end - - # Array of tag strings to add to the asset. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :add_tags - - sig { params(add_tags: T::Array[String]).void } - attr_writer :add_tags - - # Array of tag strings to remove from the asset. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :remove_tags - - sig { params(remove_tags: T::Array[String]).void } - attr_writer :remove_tags - - # Array of custom metadata field updates. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata - ] - ) - ) - end - attr_reader :set_metadata - - sig do - params( - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash - ] - ).void - end - attr_writer :set_metadata - - # Array of custom metadata fields to remove. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata - ] - ) - ) - end - attr_reader :unset_metadata - - sig do - params( - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash - ] - ).void - end - attr_writer :unset_metadata - - # Actions to execute if the AI cannot determine the answer. - sig do - params( - add_tags: T::Array[String], - remove_tags: T::Array[String], - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::OrHash - ], - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata::OrHash - ] - ).returns(T.attached_class) - end - def self.new( - # Array of tag strings to add to the asset. - add_tags: nil, - # Array of tag strings to remove from the asset. - remove_tags: nil, - # Array of custom metadata field updates. - set_metadata: nil, - # Array of custom metadata fields to remove. - unset_metadata: nil - ) - end - - sig do - override.returns( - { - add_tags: T::Array[String], - remove_tags: T::Array[String], - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata - ], - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata - ] - } - ) - end - def to_hash - end - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to set. - sig { returns(String) } - attr_accessor :field - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - sig do - returns( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants - ) - end - attr_accessor :value - - sig do - params( - field: String, - value: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants - ).returns(T.attached_class) - end - def self.new( - # Name of the custom metadata field to set. - field:, - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - value: - ) - end - - sig do - override.returns( - { - field: String, - value: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants - } - ) - end - def to_hash - end - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - module Value - extend Imagekitio::Internal::Type::Union - - Variants = - T.type_alias do - T.any( - String, - Float, - T::Boolean, - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants - ] - ) - end - - module Mixed - extend Imagekitio::Internal::Type::Union - - Variants = T.type_alias { T.any(String, Float, T::Boolean) } - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed::Variants - ] - ) - end - def self.variants - end - end - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Variants - ] - ) - end - def self.variants - end - - MixedArray = - T.let( - Imagekitio::Internal::Type::ArrayOf[ - union: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::Mixed - ], - Imagekitio::Internal::Type::Converter - ) - end - end - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to remove. - sig { returns(String) } - attr_accessor :field - - sig { params(field: String).returns(T.attached_class) } - def self.new( - # Name of the custom metadata field to remove. - field: - ) - end - - sig { override.returns({ field: String }) } - def to_hash - end - end - end - - class OnYes < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes, - Imagekitio::Internal::AnyHash - ) - end - - # Array of tag strings to add to the asset. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :add_tags - - sig { params(add_tags: T::Array[String]).void } - attr_writer :add_tags - - # Array of tag strings to remove from the asset. - sig { returns(T.nilable(T::Array[String])) } - attr_reader :remove_tags - - sig { params(remove_tags: T::Array[String]).void } - attr_writer :remove_tags - - # Array of custom metadata field updates. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata - ] - ) - ) - end - attr_reader :set_metadata - - sig do - params( - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash - ] - ).void - end - attr_writer :set_metadata - - # Array of custom metadata fields to remove. - sig do - returns( - T.nilable( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata - ] - ) - ) - end - attr_reader :unset_metadata - - sig do - params( - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash - ] - ).void - end - attr_writer :unset_metadata - - # Actions to execute if the AI answers yes. - sig do - params( - add_tags: T::Array[String], - remove_tags: T::Array[String], - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::OrHash - ], - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata::OrHash - ] - ).returns(T.attached_class) - end - def self.new( - # Array of tag strings to add to the asset. - add_tags: nil, - # Array of tag strings to remove from the asset. - remove_tags: nil, - # Array of custom metadata field updates. - set_metadata: nil, - # Array of custom metadata fields to remove. - unset_metadata: nil - ) - end - - sig do - override.returns( - { - add_tags: T::Array[String], - remove_tags: T::Array[String], - set_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata - ], - unset_metadata: - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata - ] - } - ) - end - def to_hash - end - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to set. - sig { returns(String) } - attr_accessor :field - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - sig do - returns( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants - ) - end - attr_accessor :value - - sig do - params( - field: String, - value: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants - ).returns(T.attached_class) - end - def self.new( - # Name of the custom metadata field to set. - field:, - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - value: - ) - end - - sig do - override.returns( - { - field: String, - value: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants - } - ) - end - def to_hash - end - - # Value to set for the custom metadata field. The value type should match the - # custom metadata field type. - module Value - extend Imagekitio::Internal::Type::Union - - Variants = - T.type_alias do - T.any( - String, - Float, - T::Boolean, - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants - ] - ) - end - - module Mixed - extend Imagekitio::Internal::Type::Union - - Variants = T.type_alias { T.any(String, Float, T::Boolean) } - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed::Variants - ] - ) - end - def self.variants - end - end - - sig do - override.returns( - T::Array[ - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Variants - ] - ) - end - def self.variants - end - - MixedArray = - T.let( - Imagekitio::Internal::Type::ArrayOf[ - union: - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::Mixed - ], - Imagekitio::Internal::Type::Converter - ) - end - end - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata, - Imagekitio::Internal::AnyHash - ) - end - - # Name of the custom metadata field to remove. - sig { returns(String) } - attr_accessor :field - - sig { params(field: String).returns(T.attached_class) } - def self.new( - # Name of the custom metadata field to remove. - field: - ) - end - - sig { override.returns({ field: String }) } - def to_hash - end - end - end - end - - sig do - override.returns( - T::Array[Imagekitio::ExtensionItem::AITasks::Task::Variants] - ) - end - def self.variants - end - end - end - - class SavedExtension < Imagekitio::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Imagekitio::ExtensionItem::SavedExtension, - Imagekitio::Internal::AnyHash - ) - end - - # The unique ID of the saved extension to apply. - sig { returns(String) } - attr_accessor :id - - # Indicates this is a reference to a saved extension. - sig { returns(Symbol) } - attr_accessor :name - - sig { params(id: String, name: Symbol).returns(T.attached_class) } - def self.new( - # The unique ID of the saved extension to apply. - id:, - # Indicates this is a reference to a saved extension. - name: :"saved-extension" - ) - end - - sig { override.returns({ id: String, name: Symbol }) } - def to_hash - end - end - - sig { override.returns(T::Array[Imagekitio::ExtensionItem::Variants]) } - def self.variants - end - end - Extensions = T.let( Imagekitio::Internal::Type::ArrayOf[union: Imagekitio::ExtensionItem], diff --git a/scripts/bootstrap b/scripts/bootstrap index 34878642..a5e1b80a 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -4,7 +4,7 @@ set -e cd -- "$(dirname -- "$0")/.." -if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then +if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "${SKIP_BREW:-}" != "1" ] && [ -t 0 ]; then brew bundle check >/dev/null 2>&1 || { echo -n "==> Install Homebrew dependencies? (y/N): " read -r response diff --git a/sig/imagekitio/models.rbs b/sig/imagekitio/models.rbs index 865f1c55..c63f18f8 100644 --- a/sig/imagekitio/models.rbs +++ b/sig/imagekitio/models.rbs @@ -27,10 +27,10 @@ module Imagekitio EmbeddedMetadata: Imagekitio::Internal::Type::Converter - type extension_item = Imagekitio::Models::extension_item - module ExtensionConfig = Imagekitio::Models::ExtensionConfig + module ExtensionItem = Imagekitio::Models::ExtensionItem + Extensions: Imagekitio::Internal::Type::Converter class File = Imagekitio::Models::File diff --git a/sig/imagekitio/models/extension_item.rbs b/sig/imagekitio/models/extension_item.rbs new file mode 100644 index 00000000..b3d63f19 --- /dev/null +++ b/sig/imagekitio/models/extension_item.rbs @@ -0,0 +1,619 @@ +module Imagekitio + module Models + type extension_item = + Imagekitio::ExtensionItem::RemoveBg + | Imagekitio::ExtensionItem::AIAutoDescription + | Imagekitio::ExtensionItem::AITasks + | Imagekitio::ExtensionItem::SavedExtension + | Imagekitio::ExtensionItem::AutoTaggingExtension + + module ExtensionItem + extend Imagekitio::Internal::Type::Union + + type remove_bg = + { + name: :"remove-bg", + options: Imagekitio::ExtensionItem::RemoveBg::Options + } + + class RemoveBg < Imagekitio::Internal::Type::BaseModel + attr_accessor name: :"remove-bg" + + attr_reader options: Imagekitio::ExtensionItem::RemoveBg::Options? + + def options=: ( + Imagekitio::ExtensionItem::RemoveBg::Options + ) -> Imagekitio::ExtensionItem::RemoveBg::Options + + def initialize: ( + ?options: Imagekitio::ExtensionItem::RemoveBg::Options, + ?name: :"remove-bg" + ) -> void + + def to_hash: -> { + name: :"remove-bg", + options: Imagekitio::ExtensionItem::RemoveBg::Options + } + + type options = + { + add_shadow: bool, + bg_color: String, + bg_image_url: String, + semitransparency: bool + } + + class Options < Imagekitio::Internal::Type::BaseModel + attr_reader add_shadow: bool? + + def add_shadow=: (bool) -> bool + + attr_reader bg_color: String? + + def bg_color=: (String) -> String + + attr_reader bg_image_url: String? + + def bg_image_url=: (String) -> String + + attr_reader semitransparency: bool? + + def semitransparency=: (bool) -> bool + + def initialize: ( + ?add_shadow: bool, + ?bg_color: String, + ?bg_image_url: String, + ?semitransparency: bool + ) -> void + + def to_hash: -> { + add_shadow: bool, + bg_color: String, + bg_image_url: String, + semitransparency: bool + } + end + end + + type auto_tagging_extension = + { + max_tags: Integer, + min_confidence: Integer, + name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ + } + + class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel + attr_accessor max_tags: Integer + + attr_accessor min_confidence: Integer + + attr_accessor name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ + + def initialize: ( + max_tags: Integer, + min_confidence: Integer, + name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ + ) -> void + + def to_hash: -> { + max_tags: Integer, + min_confidence: Integer, + name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ + } + + type name_ = :"google-auto-tagging" | :"aws-auto-tagging" + + module Name + extend Imagekitio::Internal::Type::Enum + + GOOGLE_AUTO_TAGGING: :"google-auto-tagging" + AWS_AUTO_TAGGING: :"aws-auto-tagging" + + def self?.values: -> ::Array[Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_] + end + end + + type ai_auto_description = { name: :"ai-auto-description" } + + class AIAutoDescription < Imagekitio::Internal::Type::BaseModel + attr_accessor name: :"ai-auto-description" + + def initialize: (?name: :"ai-auto-description") -> void + + def to_hash: -> { name: :"ai-auto-description" } + end + + type ai_tasks = + { + name: :"ai-tasks", + tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] + } + + class AITasks < Imagekitio::Internal::Type::BaseModel + attr_accessor name: :"ai-tasks" + + attr_accessor tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] + + def initialize: ( + tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task], + ?name: :"ai-tasks" + ) -> void + + def to_hash: -> { + name: :"ai-tasks", + tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] + } + + type task = + Imagekitio::ExtensionItem::AITasks::Task::SelectTags + | Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata + | Imagekitio::ExtensionItem::AITasks::Task::YesNo + + module Task + extend Imagekitio::Internal::Type::Union + + type select_tags = + { + instruction: String, + type: :select_tags, + max_selections: Integer, + min_selections: Integer, + vocabulary: ::Array[String] + } + + class SelectTags < Imagekitio::Internal::Type::BaseModel + attr_accessor instruction: String + + attr_accessor type: :select_tags + + attr_reader max_selections: Integer? + + def max_selections=: (Integer) -> Integer + + attr_reader min_selections: Integer? + + def min_selections=: (Integer) -> Integer + + attr_reader vocabulary: ::Array[String]? + + def vocabulary=: (::Array[String]) -> ::Array[String] + + def initialize: ( + instruction: String, + ?max_selections: Integer, + ?min_selections: Integer, + ?vocabulary: ::Array[String], + ?type: :select_tags + ) -> void + + def to_hash: -> { + instruction: String, + type: :select_tags, + max_selections: Integer, + min_selections: Integer, + vocabulary: ::Array[String] + } + end + + type select_metadata = + { + field: String, + instruction: String, + type: :select_metadata, + max_selections: Integer, + min_selections: Integer, + vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] + } + + class SelectMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + attr_accessor instruction: String + + attr_accessor type: :select_metadata + + attr_reader max_selections: Integer? + + def max_selections=: (Integer) -> Integer + + attr_reader min_selections: Integer? + + def min_selections=: (Integer) -> Integer + + attr_reader vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary]? + + def vocabulary=: ( + ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] + ) -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] + + def initialize: ( + field: String, + instruction: String, + ?max_selections: Integer, + ?min_selections: Integer, + ?vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary], + ?type: :select_metadata + ) -> void + + def to_hash: -> { + field: String, + instruction: String, + type: :select_metadata, + max_selections: Integer, + min_selections: Integer, + vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] + } + + type vocabulary = String | Float | bool + + module Vocabulary + extend Imagekitio::Internal::Type::Union + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] + end + end + + type yes_no = + { + instruction: String, + type: :yes_no, + on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, + on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, + on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes + } + + class YesNo < Imagekitio::Internal::Type::BaseModel + attr_accessor instruction: String + + attr_accessor type: :yes_no + + attr_reader on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo? + + def on_no=: ( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo + ) -> Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo + + attr_reader on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown? + + def on_unknown=: ( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown + ) -> Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown + + attr_reader on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes? + + def on_yes=: ( + Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes + ) -> Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes + + def initialize: ( + instruction: String, + ?on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, + ?on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, + ?on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes, + ?type: :yes_no + ) -> void + + def to_hash: -> { + instruction: String, + type: :yes_no, + on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, + on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, + on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes + } + + type on_no = + { + add_tags: ::Array[String], + remove_tags: ::Array[String], + set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata], + unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] + } + + class OnNo < Imagekitio::Internal::Type::BaseModel + attr_reader add_tags: ::Array[String]? + + def add_tags=: (::Array[String]) -> ::Array[String] + + attr_reader remove_tags: ::Array[String]? + + def remove_tags=: (::Array[String]) -> ::Array[String] + + attr_reader set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata]? + + def set_metadata=: ( + ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] + ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] + + attr_reader unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata]? + + def unset_metadata=: ( + ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] + ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] + + def initialize: ( + ?add_tags: ::Array[String], + ?remove_tags: ::Array[String], + ?set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata], + ?unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] + ) -> void + + def to_hash: -> { + add_tags: ::Array[String], + remove_tags: ::Array[String], + set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata], + unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] + } + + type set_metadata = + { + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value + } + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + attr_accessor value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value + + def initialize: ( + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value + ) -> void + + def to_hash: -> { + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value + } + + type value = + String + | Float + | bool + | ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::mixed] + + module Value + extend Imagekitio::Internal::Type::Union + + type mixed = String | Float | bool + + module Mixed + extend Imagekitio::Internal::Type::Union + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::mixed] + end + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value] + + MixedArray: Imagekitio::Internal::Type::Converter + end + end + + type unset_metadata = { field: String } + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + def initialize: (field: String) -> void + + def to_hash: -> { field: String } + end + end + + type on_unknown = + { + add_tags: ::Array[String], + remove_tags: ::Array[String], + set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata], + unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] + } + + class OnUnknown < Imagekitio::Internal::Type::BaseModel + attr_reader add_tags: ::Array[String]? + + def add_tags=: (::Array[String]) -> ::Array[String] + + attr_reader remove_tags: ::Array[String]? + + def remove_tags=: (::Array[String]) -> ::Array[String] + + attr_reader set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata]? + + def set_metadata=: ( + ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] + ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] + + attr_reader unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata]? + + def unset_metadata=: ( + ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] + ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] + + def initialize: ( + ?add_tags: ::Array[String], + ?remove_tags: ::Array[String], + ?set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata], + ?unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] + ) -> void + + def to_hash: -> { + add_tags: ::Array[String], + remove_tags: ::Array[String], + set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata], + unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] + } + + type set_metadata = + { + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value + } + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + attr_accessor value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value + + def initialize: ( + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value + ) -> void + + def to_hash: -> { + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value + } + + type value = + String + | Float + | bool + | ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::mixed] + + module Value + extend Imagekitio::Internal::Type::Union + + type mixed = String | Float | bool + + module Mixed + extend Imagekitio::Internal::Type::Union + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::mixed] + end + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value] + + MixedArray: Imagekitio::Internal::Type::Converter + end + end + + type unset_metadata = { field: String } + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + def initialize: (field: String) -> void + + def to_hash: -> { field: String } + end + end + + type on_yes = + { + add_tags: ::Array[String], + remove_tags: ::Array[String], + set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata], + unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] + } + + class OnYes < Imagekitio::Internal::Type::BaseModel + attr_reader add_tags: ::Array[String]? + + def add_tags=: (::Array[String]) -> ::Array[String] + + attr_reader remove_tags: ::Array[String]? + + def remove_tags=: (::Array[String]) -> ::Array[String] + + attr_reader set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata]? + + def set_metadata=: ( + ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] + ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] + + attr_reader unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata]? + + def unset_metadata=: ( + ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] + ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] + + def initialize: ( + ?add_tags: ::Array[String], + ?remove_tags: ::Array[String], + ?set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata], + ?unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] + ) -> void + + def to_hash: -> { + add_tags: ::Array[String], + remove_tags: ::Array[String], + set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata], + unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] + } + + type set_metadata = + { + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value + } + + class SetMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + attr_accessor value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value + + def initialize: ( + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value + ) -> void + + def to_hash: -> { + field: String, + value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value + } + + type value = + String + | Float + | bool + | ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::mixed] + + module Value + extend Imagekitio::Internal::Type::Union + + type mixed = String | Float | bool + + module Mixed + extend Imagekitio::Internal::Type::Union + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::mixed] + end + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value] + + MixedArray: Imagekitio::Internal::Type::Converter + end + end + + type unset_metadata = { field: String } + + class UnsetMetadata < Imagekitio::Internal::Type::BaseModel + attr_accessor field: String + + def initialize: (field: String) -> void + + def to_hash: -> { field: String } + end + end + end + + def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] + end + end + + type saved_extension = { id: String, name: :"saved-extension" } + + class SavedExtension < Imagekitio::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor name: :"saved-extension" + + def initialize: (id: String, ?name: :"saved-extension") -> void + + def to_hash: -> { id: String, name: :"saved-extension" } + end + + def self?.variants: -> ::Array[Imagekitio::Models::extension_item] + end + end +end diff --git a/sig/imagekitio/models/extensions.rbs b/sig/imagekitio/models/extensions.rbs index 2d382c31..b505b6dc 100644 --- a/sig/imagekitio/models/extensions.rbs +++ b/sig/imagekitio/models/extensions.rbs @@ -1,621 +1,5 @@ module Imagekitio module Models - type extension_item = - ExtensionItem::RemoveBg - | ExtensionItem::AIAutoDescription - | ExtensionItem::AITasks - | ExtensionItem::SavedExtension - | ExtensionItem::AutoTaggingExtension - - module ExtensionItem - extend Imagekitio::Internal::Type::Union - - type remove_bg = - { - name: :"remove-bg", - options: RemoveBg::Options - } - - class RemoveBg < Imagekitio::Internal::Type::BaseModel - attr_accessor name: :"remove-bg" - - attr_reader options: RemoveBg::Options? - - def options=: ( - RemoveBg::Options - ) -> RemoveBg::Options - - def initialize: ( - ?options: RemoveBg::Options, - ?name: :"remove-bg" - ) -> void - - def to_hash: -> { - name: :"remove-bg", - options: RemoveBg::Options - } - - type options = - { - add_shadow: bool, - bg_color: String, - bg_image_url: String, - semitransparency: bool - } - - class Options < Imagekitio::Internal::Type::BaseModel - attr_reader add_shadow: bool? - - def add_shadow=: (bool) -> bool - - attr_reader bg_color: String? - - def bg_color=: (String) -> String - - attr_reader bg_image_url: String? - - def bg_image_url=: (String) -> String - - attr_reader semitransparency: bool? - - def semitransparency=: (bool) -> bool - - def initialize: ( - ?add_shadow: bool, - ?bg_color: String, - ?bg_image_url: String, - ?semitransparency: bool - ) -> void - - def to_hash: -> { - add_shadow: bool, - bg_color: String, - bg_image_url: String, - semitransparency: bool - } - end - end - - type auto_tagging_extension = - { - max_tags: Integer, - min_confidence: Integer, - name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ - } - - class AutoTaggingExtension < Imagekitio::Internal::Type::BaseModel - attr_accessor max_tags: Integer - - attr_accessor min_confidence: Integer - - attr_accessor name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ - - def initialize: ( - max_tags: Integer, - min_confidence: Integer, - name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ - ) -> void - - def to_hash: -> { - max_tags: Integer, - min_confidence: Integer, - name: Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_ - } - - type name_ = :"google-auto-tagging" | :"aws-auto-tagging" - - module Name - extend Imagekitio::Internal::Type::Enum - - GOOGLE_AUTO_TAGGING: :"google-auto-tagging" - AWS_AUTO_TAGGING: :"aws-auto-tagging" - - def self?.values: -> ::Array[Imagekitio::Models::ExtensionItem::AutoTaggingExtension::name_] - end - end - - type ai_auto_description = { name: :"ai-auto-description" } - - class AIAutoDescription < Imagekitio::Internal::Type::BaseModel - attr_accessor name: :"ai-auto-description" - - def initialize: (?name: :"ai-auto-description") -> void - - def to_hash: -> { name: :"ai-auto-description" } - end - - type ai_tasks = - { - name: :"ai-tasks", - tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] - } - - class AITasks < Imagekitio::Internal::Type::BaseModel - attr_accessor name: :"ai-tasks" - - attr_accessor tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] - - def initialize: ( - tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task], - ?name: :"ai-tasks" - ) -> void - - def to_hash: -> { - name: :"ai-tasks", - tasks: ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] - } - - type task = - Imagekitio::ExtensionItem::AITasks::Task::SelectTags - | Imagekitio::ExtensionItem::AITasks::Task::SelectMetadata - | Imagekitio::ExtensionItem::AITasks::Task::YesNo - - module Task - extend Imagekitio::Internal::Type::Union - - type select_tags = - { - instruction: String, - type: :select_tags, - max_selections: Integer, - min_selections: Integer, - vocabulary: ::Array[String] - } - - class SelectTags < Imagekitio::Internal::Type::BaseModel - attr_accessor instruction: String - - attr_accessor type: :select_tags - - attr_reader max_selections: Integer? - - def max_selections=: (Integer) -> Integer - - attr_reader min_selections: Integer? - - def min_selections=: (Integer) -> Integer - - attr_reader vocabulary: ::Array[String]? - - def vocabulary=: (::Array[String]) -> ::Array[String] - - def initialize: ( - instruction: String, - ?max_selections: Integer, - ?min_selections: Integer, - ?vocabulary: ::Array[String], - ?type: :select_tags - ) -> void - - def to_hash: -> { - instruction: String, - type: :select_tags, - max_selections: Integer, - min_selections: Integer, - vocabulary: ::Array[String] - } - end - - type select_metadata = - { - field: String, - instruction: String, - type: :select_metadata, - max_selections: Integer, - min_selections: Integer, - vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] - } - - class SelectMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - attr_accessor instruction: String - - attr_accessor type: :select_metadata - - attr_reader max_selections: Integer? - - def max_selections=: (Integer) -> Integer - - attr_reader min_selections: Integer? - - def min_selections=: (Integer) -> Integer - - attr_reader vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary]? - - def vocabulary=: ( - ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] - ) -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] - - def initialize: ( - field: String, - instruction: String, - ?max_selections: Integer, - ?min_selections: Integer, - ?vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary], - ?type: :select_metadata - ) -> void - - def to_hash: -> { - field: String, - instruction: String, - type: :select_metadata, - max_selections: Integer, - min_selections: Integer, - vocabulary: ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] - } - - type vocabulary = String | Float | bool - - module Vocabulary - extend Imagekitio::Internal::Type::Union - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::SelectMetadata::vocabulary] - end - end - - type yes_no = - { - instruction: String, - type: :yes_no, - on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, - on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, - on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes - } - - class YesNo < Imagekitio::Internal::Type::BaseModel - attr_accessor instruction: String - - attr_accessor type: :yes_no - - attr_reader on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo? - - def on_no=: ( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo - ) -> Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo - - attr_reader on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown? - - def on_unknown=: ( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown - ) -> Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown - - attr_reader on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes? - - def on_yes=: ( - Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes - ) -> Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes - - def initialize: ( - instruction: String, - ?on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, - ?on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, - ?on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes, - ?type: :yes_no - ) -> void - - def to_hash: -> { - instruction: String, - type: :yes_no, - on_no: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo, - on_unknown: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown, - on_yes: Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes - } - - type on_no = - { - add_tags: ::Array[String], - remove_tags: ::Array[String], - set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata], - unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] - } - - class OnNo < Imagekitio::Internal::Type::BaseModel - attr_reader add_tags: ::Array[String]? - - def add_tags=: (::Array[String]) -> ::Array[String] - - attr_reader remove_tags: ::Array[String]? - - def remove_tags=: (::Array[String]) -> ::Array[String] - - attr_reader set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata]? - - def set_metadata=: ( - ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] - ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata] - - attr_reader unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata]? - - def unset_metadata=: ( - ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] - ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] - - def initialize: ( - ?add_tags: ::Array[String], - ?remove_tags: ::Array[String], - ?set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata], - ?unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] - ) -> void - - def to_hash: -> { - add_tags: ::Array[String], - remove_tags: ::Array[String], - set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata], - unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnNo::UnsetMetadata] - } - - type set_metadata = - { - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value - } - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - attr_accessor value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value - - def initialize: ( - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value - ) -> void - - def to_hash: -> { - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value - } - - type value = - String - | Float - | bool - | ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::mixed] - - module Value - extend Imagekitio::Internal::Type::Union - - type mixed = String | Float | bool - - module Mixed - extend Imagekitio::Internal::Type::Union - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::Value::mixed] - end - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnNo::SetMetadata::value] - - MixedArray: Imagekitio::Internal::Type::Converter - end - end - - type unset_metadata = { field: String } - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - def initialize: (field: String) -> void - - def to_hash: -> { field: String } - end - end - - type on_unknown = - { - add_tags: ::Array[String], - remove_tags: ::Array[String], - set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata], - unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] - } - - class OnUnknown < Imagekitio::Internal::Type::BaseModel - attr_reader add_tags: ::Array[String]? - - def add_tags=: (::Array[String]) -> ::Array[String] - - attr_reader remove_tags: ::Array[String]? - - def remove_tags=: (::Array[String]) -> ::Array[String] - - attr_reader set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata]? - - def set_metadata=: ( - ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] - ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata] - - attr_reader unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata]? - - def unset_metadata=: ( - ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] - ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] - - def initialize: ( - ?add_tags: ::Array[String], - ?remove_tags: ::Array[String], - ?set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata], - ?unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] - ) -> void - - def to_hash: -> { - add_tags: ::Array[String], - remove_tags: ::Array[String], - set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata], - unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnUnknown::UnsetMetadata] - } - - type set_metadata = - { - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value - } - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - attr_accessor value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value - - def initialize: ( - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value - ) -> void - - def to_hash: -> { - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value - } - - type value = - String - | Float - | bool - | ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::mixed] - - module Value - extend Imagekitio::Internal::Type::Union - - type mixed = String | Float | bool - - module Mixed - extend Imagekitio::Internal::Type::Union - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::Value::mixed] - end - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnUnknown::SetMetadata::value] - - MixedArray: Imagekitio::Internal::Type::Converter - end - end - - type unset_metadata = { field: String } - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - def initialize: (field: String) -> void - - def to_hash: -> { field: String } - end - end - - type on_yes = - { - add_tags: ::Array[String], - remove_tags: ::Array[String], - set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata], - unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] - } - - class OnYes < Imagekitio::Internal::Type::BaseModel - attr_reader add_tags: ::Array[String]? - - def add_tags=: (::Array[String]) -> ::Array[String] - - attr_reader remove_tags: ::Array[String]? - - def remove_tags=: (::Array[String]) -> ::Array[String] - - attr_reader set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata]? - - def set_metadata=: ( - ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] - ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata] - - attr_reader unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata]? - - def unset_metadata=: ( - ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] - ) -> ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] - - def initialize: ( - ?add_tags: ::Array[String], - ?remove_tags: ::Array[String], - ?set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata], - ?unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] - ) -> void - - def to_hash: -> { - add_tags: ::Array[String], - remove_tags: ::Array[String], - set_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata], - unset_metadata: ::Array[Imagekitio::ExtensionItem::AITasks::Task::YesNo::OnYes::UnsetMetadata] - } - - type set_metadata = - { - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value - } - - class SetMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - attr_accessor value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value - - def initialize: ( - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value - ) -> void - - def to_hash: -> { - field: String, - value: Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value - } - - type value = - String - | Float - | bool - | ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::mixed] - - module Value - extend Imagekitio::Internal::Type::Union - - type mixed = String | Float | bool - - module Mixed - extend Imagekitio::Internal::Type::Union - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::Value::mixed] - end - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::Task::YesNo::OnYes::SetMetadata::value] - - MixedArray: Imagekitio::Internal::Type::Converter - end - end - - type unset_metadata = { field: String } - - class UnsetMetadata < Imagekitio::Internal::Type::BaseModel - attr_accessor field: String - - def initialize: (field: String) -> void - - def to_hash: -> { field: String } - end - end - end - - def self?.variants: -> ::Array[Imagekitio::Models::ExtensionItem::AITasks::task] - end - end - - type saved_extension = { id: String, name: :"saved-extension" } - - class SavedExtension < Imagekitio::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor name: :"saved-extension" - - def initialize: (id: String, ?name: :"saved-extension") -> void - - def to_hash: -> { id: String, name: :"saved-extension" } - end - - def self?.variants: -> ::Array[Imagekitio::Models::extension_item] - end - type extensions = ::Array[Imagekitio::Models::extension_item] Extensions: Imagekitio::Internal::Type::Converter