import type * as Square from "../index"; /** * Contains information defining a custom attribute. Custom attributes are * intended to store additional information about a catalog object or to associate a * catalog object with an entity in another system. Do not use custom attributes * to store any sensitive information (personally identifiable information, card details, etc.). * [Read more about custom attributes](https://developer.squareup.com/docs/catalog-api/add-custom-attributes) */ export interface CatalogCustomAttributeDefinition { /** * The type of this custom attribute. Cannot be modified after creation. * Required. * See [CatalogCustomAttributeDefinitionType](#type-catalogcustomattributedefinitiontype) for possible values */ type: Square.CatalogCustomAttributeDefinitionType; /** * The name of this definition for API and seller-facing UI purposes. * The name must be unique within the (merchant, application) pair. Required. * May not be empty and may not exceed 255 characters. Can be modified after creation. */ name: string; /** * Seller-oriented description of the meaning of this Custom Attribute, * any constraints that the seller should observe, etc. May be displayed as a tooltip in Square UIs. */ description?: string | null; /** * __Read only.__ Contains information about the application that * created this custom attribute definition. */ sourceApplication?: Square.SourceApplication; /** * The set of `CatalogObject` types that this custom atttribute may be applied to. * Currently, only `ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, and `CATEGORY` are allowed. At least one type must be included. * See [CatalogObjectType](#type-catalogobjecttype) for possible values */ allowedObjectTypes: Square.CatalogObjectType[]; /** * The visibility of a custom attribute in seller-facing UIs (including Square Point * of Sale applications and Square Dashboard). May be modified. * See [CatalogCustomAttributeDefinitionSellerVisibility](#type-catalogcustomattributedefinitionsellervisibility) for possible values */ sellerVisibility?: Square.CatalogCustomAttributeDefinitionSellerVisibility; /** * The visibility of a custom attribute to applications other than the application * that created the attribute. * See [CatalogCustomAttributeDefinitionAppVisibility](#type-catalogcustomattributedefinitionappvisibility) for possible values */ appVisibility?: Square.CatalogCustomAttributeDefinitionAppVisibility; /** Optionally, populated when `type` = `STRING`, unset otherwise. */ stringConfig?: Square.CatalogCustomAttributeDefinitionStringConfig; /** Optionally, populated when `type` = `NUMBER`, unset otherwise. */ numberConfig?: Square.CatalogCustomAttributeDefinitionNumberConfig; /** Populated when `type` is set to `SELECTION`, unset otherwise. */ selectionConfig?: Square.CatalogCustomAttributeDefinitionSelectionConfig; /** * The number of custom attributes that reference this * custom attribute definition. Set by the server in response to a ListCatalog * request with `include_counts` set to `true`. If the actual count is greater * than 100, `custom_attribute_usage_count` will be set to `100`. */ customAttributeUsageCount?: number; /** * The name of the desired custom attribute key that can be used to access * the custom attribute value on catalog objects. Cannot be modified after the * custom attribute definition has been created. * Must be between 1 and 60 characters, and may only contain the characters `[a-zA-Z0-9_-]`. */ key?: string | null; }