# This file was auto-generated by Fern from our API Definition.

import typing_extensions
import typing_extensions
from .catalog_object import CatalogObjectParams


class CreateCatalogImageRequestParams(typing_extensions.TypedDict):
    idempotency_key: str
    """
    A unique string that identifies this CreateCatalogImage request.
    Keys can be any valid string but must be unique for every CreateCatalogImage request.
    
    See [Idempotency keys](https://developer.squareup.com/docs/build-basics/common-api-patterns/idempotency) for more information.
    """

    object_id: typing_extensions.NotRequired[str]
    """
    Unique ID of the `CatalogObject` to attach this `CatalogImage` object to. Leave this
    field empty to create unattached images, for example if you are building an integration
    where an image can be attached to catalog items at a later time.
    """

    image: CatalogObjectParams
    """
    The new `CatalogObject` of the `IMAGE` type, namely, a `CatalogImage` object, to encapsulate the specified image file.
    """

    is_primary: typing_extensions.NotRequired[bool]
    """
    If this is set to `true`, the image created will be the primary, or first image of the object referenced by `object_id`.
    If the `CatalogObject` already has a primary `CatalogImage`, setting this field to `true` will replace the primary image.
    If this is set to `false` and you use the Square API version 2021-12-15 or later, the image id will be appended to the list of `image_ids` on the object.
    
    With Square API version 2021-12-15 or later, the default value is `false`. Otherwise, the effective default value is `true`.
    """
