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

import typing_extensions
import typing_extensions
import typing


class CatalogIdMappingParams(typing_extensions.TypedDict):
    """
    A mapping between a temporary client-supplied ID and a permanent server-generated ID.

    When calling [UpsertCatalogObject](api-endpoint:Catalog-UpsertCatalogObject) or
    [BatchUpsertCatalogObjects](api-endpoint:Catalog-BatchUpsertCatalogObjects) to
    create a [CatalogObject](entity:CatalogObject) instance, you can supply
    a temporary ID for the to-be-created object, especially when the object is to be referenced
    elsewhere in the same request body. This temporary ID can be any string unique within
    the call, but must be prefixed by "#".

    After the request is submitted and the object created, a permanent server-generated ID is assigned
    to the new object. The permanent ID is unique across the Square catalog.
    """

    client_object_id: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The client-supplied temporary `#`-prefixed ID for a new `CatalogObject`.
    """

    object_id: typing_extensions.NotRequired[typing.Optional[str]]
    """
    The permanent ID for the CatalogObject created by the server.
    """
