import type { ValueType } from './ValueType'; import type { ObjectAttributeValueDefinition } from './ObjectAttributeValueDefinition'; /** * @type ObjectAttributeDefinition: Document representing an attribute definition * * @property id: The user supplied ID of the attribute * - **Min Length:** 1 * - **Max Length:** 256 * * @property effectiveId: The effective ID, which is c_id if the attribute is custom, and just the id otherwise * - **Max Length:** 256 * * @property displayName: * * @property description: * * @property key: Flag indicating if this is a key attribute * * @property mandatory: Flag indicating if a value is mandatory for the attribute * * @property localizable: Flag indicating if this attribute can be localized * * @property siteSpecific: Flag indicating if this attribute is site-specific * * @property searchable: Flag indicating if this attribute is searchable * * @property queryable: Returns true if the attribute definition is explicitly marked queryable or if the attribute value type belongs to a queryable type. Computed and read-only. * * @property valueType: * * @property visible: Flag indicating if this attribute is visible * * @property system: Flag indicating if this attribute is a system attribute * * @property unit: * * @property requiresEncoding: Flag indicating if this attribute can be encoded using the encoding=\'off\' flag in ISML templates * * @property multiValueType: True if the attribute can have multiple values. Applicable to set_of_* and enum_of_* types. * * @property setValueType: Flag indicating if this attribute is of type \'Set of\' * * @property externallyManaged: Flag indicating if this attribute is externally managed * * @property externallyDefined: Flag indicating if this attribute is externally defined * * @property orderRequired: Flag indicating if this attribute is required for order of the attribute model\'s product * * @property regularExpression: A regular expression that defines the legal values for this attribute * - **Max Length:** 4000 * * @property fieldLength: The length of the field for this attribute in the editor * * @property fieldHeight: The height of the field for this attribute in the editor * * @property minLength: The minimum length of the field for this attribute * * @property readOnly: Flag indicating if this attribute is read-only * * @property minValue: The minimum possible value for this attribute * * @property maxValue: The maximum possible value for this attribute * * @property scale: The minimum number of fraction digits for a value of this attribute * * @property defaultValue: The default value of this attribute. It can be updated, but not created. * * @property valueDefinitions: A set of values that are possible for this attribute * * @property creationDate: The date/time when the attribute definition was created * * @property lastModified: The date/time when the attribute definition was last modified * */ export type ObjectAttributeDefinition = { id: string; effectiveId?: string; displayName?: { [key: string]: string; }; description?: { [key: string]: string; }; key?: boolean; mandatory?: boolean; localizable?: boolean; siteSpecific?: boolean; searchable?: boolean; queryable?: boolean; valueType?: ValueType; visible?: boolean; system?: boolean; unit?: { [key: string]: string; }; requiresEncoding?: boolean; multiValueType?: boolean; setValueType?: boolean; externallyManaged?: boolean; externallyDefined?: boolean; orderRequired?: boolean; regularExpression?: string; fieldLength?: number; fieldHeight?: number; minLength?: number; readOnly?: boolean; minValue?: number; maxValue?: number; scale?: number; defaultValue?: ObjectAttributeValueDefinition; valueDefinitions?: Array; creationDate?: string; lastModified?: string; } & { [key: string]: any; };