Packages

Google Cloud Vision API client library.

Current section

Files

Jump to
googly_cloud_vision lib googly cloud_vision model product.ex
Raw

lib/googly/cloud_vision/model/product.ex

# NOTE: This file is auto generated by googly. Do not edit it manually.
defmodule Googly.CloudVision.Model.Product do
@moduledoc """
A Product contains ReferenceImages.
## Attributes
* `description` (*type:* `String.t()`) - User-provided metadata to be stored with this product. Must be at most 4096 characters long.
* `display_name` (*type:* `String.t()`) - The user-provided name for this Product. Must not be empty. Must be at most 4096 characters long.
* `name` (*type:* `String.t()`) - The resource name of the product. Format is: `projects/PROJECT_ID/locations/LOC_ID/products/PRODUCT_ID`. This field is ignored when creating a product.
* `product_category` (*type:* `String.t()`) - Immutable. The category for the product identified by the reference image. This should be one of "homegoods-v2", "apparel-v2", "toys-v2", "packagedgoods-v1" or "general-v1". The legacy categories "homegoods", "apparel", and "toys" are still supported, but these should not be used for new products.
* `product_labels` (*type:* `list(Googly.CloudVision.Model.KeyValue.t())`) - Key-value pairs that can be attached to a product. At query time, constraints can be specified based on the product_labels. Note that integer values can be provided as strings, e.g. "1199". Only strings with integer values can match a range-based restriction which is to be supported soon. Multiple values can be assigned to the same key. One product may have up to 500 product_labels. Notice that the total number of distinct product_labels over all products in one ProductSet cannot exceed 1M, otherwise the product search pipeline will refuse to work for that ProductSet.
"""
defstruct [:description, :display_name, :name, :product_category, :product_labels]
@type t :: %__MODULE__{
description: String.t() | nil,
display_name: String.t() | nil,
name: String.t() | nil,
product_category: String.t() | nil,
product_labels: list(Googly.CloudVision.Model.KeyValue.t()) | nil
}
@wire %{
display_name: "displayName",
product_category: "productCategory",
product_labels: "productLabels"
}
@doc false
def __wire__, do: @wire
@doc false
def decode(nil), do: nil
def decode(list) when is_list(list), do: Enum.map(list, &decode/1)
def decode(m) do
%__MODULE__{
description: m["description"],
display_name: m["displayName"],
name: m["name"],
product_category: m["productCategory"],
product_labels: Googly.CloudVision.Model.KeyValue.decode(m["productLabels"])
}
end
end