# Models

## The Microsoft.AspNetCore.Mvc.ProblemDetails object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Microsoft.AspNetCore.Mvc.ProblemDetails":{"type":"object","properties":{"Type":{"type":"string","nullable":true},"Title":{"type":"string","nullable":true},"Status":{"type":"integer","format":"int32","nullable":true},"Detail":{"type":"string","nullable":true},"Instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## The Struct.App.Api.Models.AIAssistant.TextGeneration.TextGeneratorSettings object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.AIAssistant.TextGeneration.TextGeneratorSettings":{"type":"object","properties":{"Type":{"type":"string","description":"The type of the current object","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"The AI Assistant text generator settings."}}}}
```

## The Struct.App.Api.Models.AIAssistant.Translation.AzureTranslatorSettings object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.AIAssistant.Translation.AzureTranslatorSettings":{"type":"object","properties":{"SubscriptionKey":{"type":"string","nullable":true},"RegionName":{"type":"string","nullable":true},"TranslatorType":{"type":"string","nullable":true,"readOnly":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.AIAssistant.Translation.TranslatorSettings object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.AIAssistant.Translation.TranslatorSettings":{"type":"object","properties":{"TranslatorType":{"type":"string","nullable":true,"readOnly":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.ArchiveReason.ArchiveReason object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ArchiveReason.ArchiveReason":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of archive reason","format":"uuid"},"Name":{"type":"string","description":"Presented name of archive reason","nullable":true}},"additionalProperties":false,"description":"An archive reason defines a reason that can be chosen when archiving products or variants in the system"}}}}
```

## The Struct.App.Api.Models.Asset.AssetAttributeValuesModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetAttributeValuesModel":{"type":"object","properties":{"AssetId":{"type":"integer","description":"Id of asset","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Attribute values for a asset"}}}}
```

## The Struct.App.Api.Models.Asset.AssetFileVersionModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetFileVersionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"The unique identifier for this specific file version.","format":"uuid"},"AssetUid":{"type":"string","description":"The unique identifier of the parent asset this file version belongs to.","format":"uuid"},"AssetId":{"type":"integer","description":"The unique id of the asset this file version belongs to.","format":"int32"},"FileExtension":{"type":"string","description":"The file extension of this version's file, including the leading dot (e.g., \".pdf\").","nullable":true},"FileType":{"type":"string","description":"The MIME type of this version's file.","nullable":true},"FileSize":{"type":"integer","description":"The size of this version's file in bytes.","format":"int64"},"FileName":{"type":"string","description":"The original filename of this version's file, including the extension.","nullable":true},"FileUrl":{"type":"string","description":"The URL where this file version can be accessed.","nullable":true},"Version":{"type":"integer","description":"The version number or identifier for this file version.","format":"int32"},"Created":{"type":"string","description":"The timestamp when this file version was created.","format":"date-time"},"CreatedBy":{"type":"string","description":"The identifier of the user who created this file version.","nullable":true}},"additionalProperties":false,"description":"Represents a specific version of an asset's file in the system, tracking version history and file metadata."}}}}
```

## The Struct.App.Api.Models.Asset.AssetFolderModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetFolderModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier of the folder","format":"uuid"},"Name":{"type":"string","description":"Name of the folder","nullable":true},"ParentUid":{"type":"string","description":"Unique identifier of the parent folder","format":"uuid","nullable":true},"IsPrivate":{"type":"boolean","description":"Indicates whether files in this folder can only be accessed by authenticated users and not via public urls"},"ViewPermission":{"type":"string","description":"Unique identifier of permission required to view files in this folder","format":"uuid","nullable":true},"CreatePermission":{"type":"string","description":"Unique identifier of permission required to create files in this folder","format":"uuid","nullable":true},"DeletePermission":{"type":"string","description":"Unique identifier of permission required to Delete files in this folder","format":"uuid","nullable":true},"Path":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Asset.AssetFolderPath"},"description":"The path to the folder","nullable":true},"CreateBy":{"type":"string","description":"The user who created the folder","nullable":true},"LastModifiedBy":{"type":"string","description":"The user who last modified the folder","nullable":true},"Created":{"type":"string","description":"The timestamp when the folder was created","format":"date-time"},"LastModified":{"type":"string","description":"The timestamp when the folder was last modified","format":"date-time"}},"additionalProperties":false,"description":"Represents a folder in the mediabank"},"Struct.App.Api.Models.Asset.AssetFolderPath":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of folder","format":"uuid"},"ParentUid":{"type":"string","description":"Unique id of parent folder","format":"uuid","nullable":true},"Name":{"type":"string","description":"Presented name of folder","nullable":true}},"additionalProperties":false,"description":"Represents a folder path in the asset system"}}}}
```

## The Struct.App.Api.Models.Asset.AssetFolderPath object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetFolderPath":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of folder","format":"uuid"},"ParentUid":{"type":"string","description":"Unique id of parent folder","format":"uuid","nullable":true},"Name":{"type":"string","description":"Presented name of folder","nullable":true}},"additionalProperties":false,"description":"Represents a folder path in the asset system"}}}}
```

## The Struct.App.Api.Models.Asset.AssetModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetModel":{"type":"object","properties":{"Id":{"type":"integer","description":"The unique numeric identifier for the asset.","format":"int32"},"Uid":{"type":"string","description":"The unique UUID identifier for the asset, used in external references.","format":"uuid"},"CurrentFileVersion":{"type":"integer","description":"The current version information of the asset's file.","format":"int32"},"Created":{"type":"string","description":"The timestamp when the asset was created.","format":"date-time"},"LastModified":{"type":"string","description":"The timestamp when the asset was last modified.","format":"date-time"},"CreatedBy":{"type":"string","description":"The identifier of the user who created the asset.","nullable":true},"LastModifiedBy":{"type":"string","description":"The identifier of the user who last modified the asset.","nullable":true},"AssetTypeUid":{"type":"string","description":"The unique identifier of the asset type that defines the asset's characteristics.","format":"uuid"},"IsPrivate":{"type":"boolean","description":"Indicates whether the asset is private and requires specific permissions to access."},"FileSize":{"type":"integer","description":"The size of the asset's file in bytes.","format":"int64"},"FileType":{"type":"string","description":"The MIME type of the asset's file.","nullable":true},"Extension":{"type":"string","description":"The file extension of the asset's file, including the leading dot (e.g., \".pdf\").","nullable":true},"FileName":{"type":"string","description":"The original filename of the asset, including the extension.","nullable":true},"FolderUid":{"type":"string","description":"The unique identifier of the folder containing this asset.","format":"uuid"},"FileUrl":{"type":"string","description":"The URL where the asset's file can be accessed.","nullable":true},"CDNUrl":{"type":"string","description":"The URL where the asset's file can be accessed.","nullable":true},"Tags":{"type":"array","items":{"type":"string"},"description":"Collection of tags associated with the asset for categorization and searching.","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this asset is associated with","nullable":true}},"additionalProperties":false,"description":"Represents an asset in the system with its associated metadata and file information."},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Asset.AssetModelResponse object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetModelResponse":{"type":"object","properties":{"Assets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Asset.AssetModel"},"description":"Assets returned from the request","nullable":true},"CurrentPage":{"type":"integer","description":"The current page number","format":"int32"},"PageSize":{"type":"integer","description":"Page Size for the request","format":"int32"},"Total":{"type":"integer","description":"Total number of assets","format":"int32"}},"additionalProperties":false,"description":"Response from a paged asset request"},"Struct.App.Api.Models.Asset.AssetModel":{"type":"object","properties":{"Id":{"type":"integer","description":"The unique numeric identifier for the asset.","format":"int32"},"Uid":{"type":"string","description":"The unique UUID identifier for the asset, used in external references.","format":"uuid"},"CurrentFileVersion":{"type":"integer","description":"The current version information of the asset's file.","format":"int32"},"Created":{"type":"string","description":"The timestamp when the asset was created.","format":"date-time"},"LastModified":{"type":"string","description":"The timestamp when the asset was last modified.","format":"date-time"},"CreatedBy":{"type":"string","description":"The identifier of the user who created the asset.","nullable":true},"LastModifiedBy":{"type":"string","description":"The identifier of the user who last modified the asset.","nullable":true},"AssetTypeUid":{"type":"string","description":"The unique identifier of the asset type that defines the asset's characteristics.","format":"uuid"},"IsPrivate":{"type":"boolean","description":"Indicates whether the asset is private and requires specific permissions to access."},"FileSize":{"type":"integer","description":"The size of the asset's file in bytes.","format":"int64"},"FileType":{"type":"string","description":"The MIME type of the asset's file.","nullable":true},"Extension":{"type":"string","description":"The file extension of the asset's file, including the leading dot (e.g., \".pdf\").","nullable":true},"FileName":{"type":"string","description":"The original filename of the asset, including the extension.","nullable":true},"FolderUid":{"type":"string","description":"The unique identifier of the folder containing this asset.","format":"uuid"},"FileUrl":{"type":"string","description":"The URL where the asset's file can be accessed.","nullable":true},"CDNUrl":{"type":"string","description":"The URL where the asset's file can be accessed.","nullable":true},"Tags":{"type":"array","items":{"type":"string"},"description":"Collection of tags associated with the asset for categorization and searching.","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this asset is associated with","nullable":true}},"additionalProperties":false,"description":"Represents an asset in the system with its associated metadata and file information."},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Asset.AssetReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetReferences":{"type":"object","properties":{"AssetId":{"type":"integer","description":"Id of the referenced asset","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this asset","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this asset","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this asset","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this asset","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this asset","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this asset","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a specific asset"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.Asset.AssetValuesRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.AssetValuesRequestModel":{"type":"object","properties":{"AssetIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of assets to return","nullable":true},"IncludeValues":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ValueIncludeMode"},"Scopes":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Scopes, define which scopes to return values for here","nullable":true},"Aliases":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Aliases, define aliases of the attributes to include values for","nullable":true},"Uids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"If IncludeValues is Uids, define uids of the attributes to include values for","nullable":true},"LimitToCultureCodes":{"type":"array","items":{"type":"string"},"description":"Only return values for specific languages","nullable":true},"LimitToSegments":{"type":"array","items":{"type":"string"},"description":"Only return values for specific dimension segments","nullable":true},"GlobalListValueReferencesOnly":{"type":"boolean","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values"},"FromTimestamp":{"type":"string","description":"Get attribute values back in time","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Define which assets to fetch data for and what data to fetch"},"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"}}}}
```

## The Struct.App.Api.Models.Asset.CreateAssetFolderModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.CreateAssetFolderModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Uid of the folder","format":"uuid"},"Name":{"type":"string","description":"Name of the folder","nullable":true},"ParentUid":{"type":"string","description":"Uid of the parent folder","format":"uuid","nullable":true},"IsPrivate":{"type":"boolean","description":"Indicates whether files in this folder can only be accessed by authenticated users and not via public urls"},"ViewPermission":{"type":"string","description":"Uid of permission required to view files in this folder","format":"uuid","nullable":true},"CreatePermission":{"type":"string","description":"Uid of permission required to create files in this folder","format":"uuid","nullable":true},"DeletePermission":{"type":"string","description":"Uid of permission required to Delete files in this folder","format":"uuid","nullable":true}},"additionalProperties":false,"description":"Folder information for creating a new folder"}}}}
```

## The Struct.App.Api.Models.Asset.UpdateAssetFolderModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.UpdateAssetFolderModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of folder","format":"uuid"},"Name":{"type":"string","description":"Name of folder","nullable":true},"ParentUid":{"type":"string","description":"Unique id of parent folder","format":"uuid","nullable":true},"IsPrivate":{"type":"boolean","description":"Indicates whether files in this folder can only be accessed by authenticated users and not via public urls"},"ViewPermission":{"type":"string","description":"Unique id of permission required to view files in this folder","format":"uuid","nullable":true},"CreatePermission":{"type":"string","description":"Unique id of permission required to create files in this folder","format":"uuid","nullable":true},"DeletePermission":{"type":"string","description":"Unique id of permission required to Delete files in this folder","format":"uuid","nullable":true}},"additionalProperties":false,"description":"Model for updating an existing folder"}}}}
```

## The Struct.App.Api.Models.Asset.UpdateAssetModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Asset.UpdateAssetModel":{"type":"object","properties":{"AssetTypeUid":{"type":"string","description":"The unique identifier of the asset type to change the asset to.\r\nThis defines the asset's characteristics and available metadata fields.","format":"uuid","nullable":true},"FolderUid":{"type":"string","description":"The unique identifier of the folder where the asset should be moved to.","format":"uuid","nullable":true},"WorkflowStateUid":{"type":"string","description":"The unique identifier of the workflow state to move the asset to.","format":"uuid","nullable":true},"Tags":{"type":"array","items":{"type":"string"},"description":"Collection of tags to replace the existing tags on the asset.\r\nProviding an empty list will remove all tags.","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the asset","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model for updating an existing asset"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.AssetType.AssetConfigurationModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.AssetType.AssetConfigurationModel":{"type":"object","properties":{"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on assets using this asset type in the backoffice","nullable":true}},"additionalProperties":false,"description":"The asset configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.AssetType.AssetFileType object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.AssetType.AssetFileType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Asset file types \n\n- `0` = **Image**: Image file types\n- `1` = **Video**: Video file types\n- `2` = **Audio**: Audio file types\n- `3` = **Document**: Document file types\n- `4` = **All**: All file types are allowed\n- `5` = **SpecifiedExtensions**: Only specific file extensions are allowed, as defined in the SpecifiedExtensions list.","format":"int32"}}}}
```

## The Struct.App.Api.Models.AssetType.AssetTypeModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.AssetType.AssetTypeModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of asset type","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias for the asset type","nullable":true},"Label":{"type":"string","description":"Label of asset type displayed in the backoffice","nullable":true},"Configuration":{"$ref":"#/components/schemas/Struct.App.Api.Models.AssetType.AssetConfigurationModel"},"AllowedFileTypes":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.AssetType.AssetFileType"},"description":"The file types that are allowed to be uploaded to the asset type","nullable":true},"SpecifiedExtensions":{"type":"array","items":{"type":"string"},"description":"The file extensions that are allowed to be uploaded to the asset type (ex. jpg, png, pdf)\r\nOnly available when AssetFileType is set to SpecifiedExtensions","nullable":true}},"additionalProperties":false,"description":"Represents an asset type in the PIM system"},"Struct.App.Api.Models.AssetType.AssetConfigurationModel":{"type":"object","properties":{"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on assets using this asset type in the backoffice","nullable":true}},"additionalProperties":false,"description":"The asset configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"},"Struct.App.Api.Models.AssetType.AssetFileType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Asset file types \n\n- `0` = **Image**: Image file types\n- `1` = **Video**: Video file types\n- `2` = **Audio**: Audio file types\n- `3` = **Document**: Document file types\n- `4` = **All**: All file types are allowed\n- `5` = **SpecifiedExtensions**: Only specific file extensions are allowed, as defined in the SpecifiedExtensions list.","format":"int32"}}}}
```

## The Struct.App.Api.Models.Attribute.Attribute object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Attribute.Attribute":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of attribute","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of attribute. Max length is 50 characters and can only consist of letters a-z/A-Z and numbers 0-9 (but cannot start with a number)","nullable":true},"BackofficeName":{"type":"string","description":"The name of the attribute displayed to the editor in the PIM backoffice","nullable":true},"BackofficeDescription":{"type":"string","description":"The description of the attribute displayed to the editor in the PIM backoffice","nullable":true},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"The localized name of the attribute usable for displaying the attribute name in ex. a webshop (Dictionary of ISO culturecode and localized value)","nullable":true},"Description":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"The localized description of the attribute usable for displaying a description for the attribute on ex. a webshop (Dictionary of ISO culturecode and localized value)","nullable":true},"AttributeGroupUid":{"type":"string","description":"The id of the attribute group this attribute is placed within","format":"uuid","nullable":true},"AttributeScopes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Unique ids of the attribute scopes this attribute is placed within","nullable":true},"Localized":{"type":"boolean","description":"Indicates whether values of this attribute are localized"},"FallbackLanguage":{"type":"integer","description":"Indicates a fallback language in case attribute is localized and no value is added to a specific language","format":"int32","nullable":true},"DimensionUid":{"type":"string","description":"Unique id of Dimension to segment values of this attribute on","format":"uuid","nullable":true},"FallbackSegment":{"type":"string","description":"Indicates a fallback segment in case attribute is dimensioned and no value is added to a specific segment of that dimension","format":"uuid","nullable":true},"ReadOnly":{"type":"boolean","description":"Indicates whether this attribute is always readonly.\r\nNOTE: Only applied when attribute is a sub attribute of a complex attribute."},"Mandatory":{"type":"boolean","description":"Indicates whether this attribute is always mandatory.\r\nNOTE: Only applied when attribute is a sub attribute of a complex attribute."},"Columns":{"type":"integer","description":"The number of columns this attribute should span in the PIM backoffice (1-12)","format":"int32"},"Unchangeable":{"type":"boolean","description":"Indicates whether this attribute cannot change its value, once it has a value assigned.\r\nNOTE: Only applied when attribute is a sub attribute of a complex attribute."},"AttributeType":{"type":"string","description":"Type of attribute","nullable":true,"readOnly":true},"DisableRevisionLogging":{"type":"boolean","description":"Disable all revision logging for this attribute"},"DisableIndexing":{"type":"boolean","description":"Disable indexing for this attribute"}},"additionalProperties":false,"description":"Represents an attribute in Struct PIM which can be attached to product, variant or category data models"}}}}
```

## The Struct.App.Api.Models.Attribute.AttributeGroup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Attribute.AttributeGroup":{"type":"object","properties":{"Id":{"type":"integer","description":"Assigned sequential id of attribute group (is unique)","format":"int32"},"Uid":{"type":"string","description":"Unique uid of attribute group","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of attribute group","nullable":true},"BackofficeName":{"type":"string","description":"Name of attribute group shown in the backoffice","nullable":true},"BackofficeDescription":{"type":"string","description":"Description of attribute group shown in the backoffice","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the attribute group used to sort attribute groups between each other","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Localized name of attribute group used for displaying the attribute group on ex. a webshop (Dictionary of ISO culturecode and localized name)","nullable":true}},"additionalProperties":false,"description":"Represents an attribute group used to organize attributes within"}}}}
```

## The Struct.App.Api.Models.Attribute.AttributeReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Attribute.AttributeReferences":{"type":"object","properties":{"AttributeUid":{"type":"string","description":"Id of the referenced attribute","format":"uuid"},"ReferencingCategories":{"type":"array","items":{"type":"integer","format":"int32"},"description":"List of categories referencing this attribute for product attribute templating","nullable":true},"ReferencesOnCategoryAttributes":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this attribute from another attribute","nullable":true},"ReferencesOnProductAttributes":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this attribute from another attribute","nullable":true},"ReferencesOnVariantAttributes":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this attribute from another attribute","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this attribute","nullable":true},"ReferencingProductStructures":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of product structures referencing this attribute","nullable":true},"ReferencingVariationDefinitions":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of variation definitions referencing this attribute","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to an attribute"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.Attribute.AttributeScope object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Attribute.AttributeScope":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of scope","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of scope used to be easily identifiable by humans","nullable":true}},"additionalProperties":false,"description":"Use attribute scopes to segment your attributes into different scopes for different purposes"}}}}
```

## The Struct.App.Api.Models.Attribute.AttributeScopeAttributesModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Attribute.AttributeScopeAttributesModel":{"type":"object","properties":{"AttributeScopeUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attribute scope uids to request attributes for","nullable":true}},"additionalProperties":false,"description":"Wrapper for attribute scope attributes batch query"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseCategoriesResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseCategoriesResultSet":{"type":"object","properties":{"Page":{"type":"integer","description":"Page number","format":"int32"},"TotalPages":{"type":"integer","description":"Total pages","format":"int32"},"Categories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Browse.BrowseCategoryResult"},"description":"Category results","nullable":true}},"additionalProperties":false,"description":"Browse categories result set"},"Struct.App.Api.Models.Browse.BrowseCategoryResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"ParentId":{"type":"integer","description":"Parent Id","format":"int32","nullable":true},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse category result values"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseCategoryResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseCategoryResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"ParentId":{"type":"integer","description":"Parent Id","format":"int32","nullable":true},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse category result values"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseProductResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseProductResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Categories":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Categories","nullable":true},"VariantDefiningValues":{"type":"array","items":{"type":"string"},"description":"Variant defining values","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse product result"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseProductsResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseProductsResultSet":{"type":"object","properties":{"Page":{"type":"integer","description":"Page number","format":"int32"},"TotalPages":{"type":"integer","description":"Total pages","format":"int32"},"Products":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Browse.BrowseProductResult"},"description":"Product results","nullable":true}},"additionalProperties":false,"description":"Browse products result set"},"Struct.App.Api.Models.Browse.BrowseProductResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Categories":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Categories","nullable":true},"VariantDefiningValues":{"type":"array","items":{"type":"string"},"description":"Variant defining values","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse product result"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseVariantGroupResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseVariantGroupResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"ProductId":{"type":"integer","description":"Product Id","format":"int32"},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse variant group result"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseVariantGroupsResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseVariantGroupsResultSet":{"type":"object","properties":{"Page":{"type":"integer","description":"Page number","format":"int32"},"TotalPages":{"type":"integer","description":"Total pages","format":"int32"},"VariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Browse.BrowseVariantGroupResult"},"description":"Variant group results","nullable":true}},"additionalProperties":false,"description":"Browse variant groups result set"},"Struct.App.Api.Models.Browse.BrowseVariantGroupResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"ProductId":{"type":"integer","description":"Product Id","format":"int32"},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse variant group result"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseVariantResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseVariantResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"ProductId":{"type":"integer","description":"Product Id","format":"int32"},"VariantGroupId":{"type":"integer","description":"The variant group this variant is connected to, if any","format":"int32","nullable":true},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse variant result"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Browse.BrowseVariantsResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Browse.BrowseVariantsResultSet":{"type":"object","properties":{"Page":{"type":"integer","description":"Page number","format":"int32"},"TotalPages":{"type":"integer","description":"Total pages","format":"int32"},"Variants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Browse.BrowseVariantResult"},"description":"Variant results","nullable":true}},"additionalProperties":false,"description":"Browse variants result set"},"Struct.App.Api.Models.Browse.BrowseVariantResult":{"type":"object","properties":{"Id":{"type":"integer","description":"Id","format":"int32"},"ProductId":{"type":"integer","description":"Product Id","format":"int32"},"VariantGroupId":{"type":"integer","description":"The variant group this variant is connected to, if any","format":"int32","nullable":true},"Created":{"type":"string","description":"Created","format":"date-time"},"LastModified":{"type":"string","description":"Last modified","format":"date-time"},"InternalName":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.LocalizedData`1[System.String]"},"description":"Internal name","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Browse variant result"},"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.BusinessUnit.BusinessUnitModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.BusinessUnit.BusinessUnitModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"Alias":{"type":"string","description":"Alias of the business unit","nullable":true},"Name":{"type":"string","description":"Name of the business unit","nullable":true},"Created":{"type":"string","description":"When the business unit was created","format":"date-time"},"CreatedBy":{"type":"string","description":"Who created the business unit","nullable":true},"LastModified":{"type":"string","description":"When the business unit was last modified","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Who last modified the business unit","nullable":true}},"additionalProperties":false,"description":"Represents a business unit model"}}}}
```

## The Struct.App.Api.Models.BusinessUnit.CreateBusinessUnitModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.BusinessUnit.CreateBusinessUnitModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"Alias":{"type":"string","description":"Alias of the business unit","nullable":true},"Name":{"type":"string","description":"Name of the business unit","nullable":true}},"additionalProperties":false,"description":"Model for creating a business unit"}}}}
```

## The Struct.App.Api.Models.BusinessUnit.UpdateBusinessUnitModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.BusinessUnit.UpdateBusinessUnitModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"Alias":{"type":"string","description":"Alias of the business unit","nullable":true},"Name":{"type":"string","description":"Name of the business unit","nullable":true}},"additionalProperties":false,"description":"Model for updating a business unit"}}}}
```

## The Struct.App.Api.Models.Catalogue.AttributeAttachment object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.AttributeAttachment":{"type":"object","properties":{"AttributeUid":{"type":"string","description":"Uid of attribute","format":"uuid"},"CategoryId":{"type":"integer","description":"Id of category to which the attribute is connected","format":"int32"},"Owner":{"type":"integer","description":"Id of the category at which this connection originates (will be different from category id if this attachment is inherited from a higher level category)","format":"int32"},"EditableOnEntities":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities"},"SortOrder":{"type":"integer","description":"Sort order of the attribute","format":"int32","nullable":true}},"additionalProperties":false,"description":"Represents an attribute connection to a category in the master catalogue"},"Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities":{"enum":[0,1,2,3],"type":"integer","description":"Represents where attributes added to categories are editable on entities placed in that category \n\n- `0` = **ProductAndVariant**: Attributes are editable on both products and variants\n- `1` = **Product**: Attributes are editable on products only\n- `2` = **Variant**: Attributes are editable on variants only\n- `3` = **None**: Attributes are not editable on any entity","format":"int32"}}}}
```

## The Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.AttributeEditableOnEntities":{"enum":[0,1,2,3],"type":"integer","description":"Represents where attributes added to categories are editable on entities placed in that category \n\n- `0` = **ProductAndVariant**: Attributes are editable on both products and variants\n- `1` = **Product**: Attributes are editable on products only\n- `2` = **Variant**: Attributes are editable on variants only\n- `3` = **None**: Attributes are not editable on any entity","format":"int32"}}}}
```

## The Struct.App.Api.Models.Catalogue.CatalogueModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CatalogueModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of catalogue","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias for the catalogue","nullable":true},"Label":{"type":"string","description":"Label of catalogue displayed in the backoffice","nullable":true},"IsMaster":{"type":"boolean","description":"Indicates whether this catalogue is the master catalogue (only one master catalogue can exist in the system)"},"SortOrder":{"type":"integer","description":"Sort order of the catalogue compared to other catalogues","format":"int32"},"IdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a category number in an external system and the internal id of a category of this catalogue in the system","nullable":true},"Configuration":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryConfigurationModel"},"BusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"This business units this catalogue is associated with","nullable":true}},"additionalProperties":false,"description":"Represents a catalogue in the PIM system"},"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"},"Struct.App.Api.Models.Catalogue.CategoryConfigurationModel":{"type":"object","properties":{"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on categories using this category configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The catalogue configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoriesResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoriesResultSet":{"type":"object","properties":{"Categories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryModel"},"description":"List of categories in result set","nullable":true},"Total":{"type":"integer","description":"The total number of items","format":"int32"},"Remaining":{"type":"integer","description":"The remaining items that lie after the last id of the item in this result set","format":"int32"},"LastId":{"type":"integer","description":"The id of the last item in this result set","format":"int32"}},"additionalProperties":false,"description":"Result set of categories from a category query"},"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryAttributeValuesModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryAttributeValuesModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Category attribute values container"}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryConfigurationModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryConfigurationModel":{"type":"object","properties":{"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on categories using this category configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The catalogue configuration defines the tabs, sections and properties available on a category as well as the wizard used for creating new categories."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of category","format":"int32"},"ParentId":{"type":"integer","description":"Id of category's parent category. Null, if this category is placed in the root of its catalogue","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder of the category compared to other categories at the same level in the catalogue","format":"int32"},"CatalogueUid":{"type":"string","description":"The unique id of the catalogue, this category resides in","format":"uuid"},"Created":{"type":"string","description":"Timestamp of the creation of category","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of user who created this category","nullable":true},"LastModified":{"type":"string","description":"Timestamp of last modification of category","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of user who did the last modification","nullable":true},"HasChildren":{"type":"boolean","description":"Indicates whether this category has any sub categories"},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Display name of category (Dictionary of ISO culture code and name)","nullable":true},"Dynamic":{"type":"boolean","description":"Indicates whether this category is dynamic (classification handled by PIM)"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this category is associated with","nullable":true}},"additionalProperties":false,"description":"Defines general information on a category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryMoveModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryMoveModel":{"type":"object","properties":{"ParentId":{"type":"integer","description":"New parent id of category","format":"int32","nullable":true},"CatalogueUid":{"type":"string","description":"New catalogue uid of category","format":"uuid"}},"additionalProperties":false,"description":"Model to represent move operation of category"}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryProductsModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryProductsModel":{"type":"object","properties":{"CategoryIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Category ids to request products for","nullable":true},"IncludeArchived":{"type":"boolean","description":"Indicate whether archibed products shall also be included"}},"additionalProperties":false,"description":"Wrapper for product children batch query"}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryReferences":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of the referenced category","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this category","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this category","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this category","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this category","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this category","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this category","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a category"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.Catalogue.CategoryValueRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CategoryValueRequestModel":{"type":"object","properties":{"CategoryIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of categories to return","nullable":true},"IncludeValues":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ValueIncludeMode"},"Scopes":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Scopes, define which scopes to return values for here","nullable":true},"Aliases":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Aliases, define aliases of the attributes to include values for","nullable":true},"Uids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"If IncludeValues is Uids, define uids of the attributes to include values for","nullable":true},"LimitToCultureCodes":{"type":"array","items":{"type":"string"},"description":"Only return values for specific languages","nullable":true},"LimitToSegments":{"type":"array","items":{"type":"string"},"description":"Only return values for specific dimension segments","nullable":true},"GlobalListValueReferencesOnly":{"type":"boolean","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values"},"FromTimestamp":{"type":"string","description":"Get attribute values back in time","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Define which categories to fetch data for and what data to fetch"},"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"}}}}
```

## The Struct.App.Api.Models.Catalogue.CreateCategoryModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.CreateCategoryModel":{"type":"object","properties":{"CatalogueUid":{"type":"string","description":"Uid of catalogue to add category to","format":"uuid"},"ParentId":{"type":"integer","description":"Id of parent id to place category underneath (set as null, of category shall be at root level of catalogue)","format":"int32","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of category compared to other categories at the same level i the catalogue","format":"int32","nullable":true},"Dynamic":{"type":"boolean","description":"Set if products for this category is found by search query set on category","nullable":true},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the category","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model for creating a new category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Catalogue.DynamicQueryContainer object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"}}}}
```

## The Struct.App.Api.Models.Catalogue.UpdateCategoryModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Catalogue.UpdateCategoryModel":{"type":"object","properties":{"SortOrder":{"type":"integer","description":"Set to update sort order of category compared to other categories at the same level in the catalogue (set as null if you do not want to update this)","format":"int32","nullable":true},"MoveCommand":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryMoveModel"},"QuerySetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.DynamicQueryContainer"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the category","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model representing a category update"},"Struct.App.Api.Models.Catalogue.CategoryMoveModel":{"type":"object","properties":{"ParentId":{"type":"integer","description":"New parent id of category","format":"int32","nullable":true},"CatalogueUid":{"type":"string","description":"New catalogue uid of category","format":"uuid"}},"additionalProperties":false,"description":"Model to represent move operation of category"},"Struct.App.Api.Models.Catalogue.DynamicQueryContainer":{"type":"object","properties":{"ProductQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"VariantGroupQuery":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Definition of query for entities to add to category"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.DataConfiguration.IdentifierDefinition object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"}}}}
```

## The Struct.App.Api.Models.DataConfiguration.NameConfiguration object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"}}}}
```

## The Struct.App.Api.Models.DataConfiguration.TabSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.DataConfiguration.WizardSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"}}}}
```

## The Struct.App.Api.Models.DataConfiguration.WizardStepSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"}}}}
```

## The Struct.App.Api.Models.Dimension.DimensionModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Dimension.DimensionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of dimension","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of dimension","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionSegmentModel"},"description":"Segments available to this dimension","nullable":true}},"additionalProperties":false,"description":"Representation of a dimension to be used to segment attribute value data"},"Struct.App.Api.Models.Dimension.DimensionSegmentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of segment","format":"uuid"},"Identifier":{"type":"string","description":"Unique human readable identifier for segment","nullable":true},"Name":{"type":"string","description":"Display name for segment","nullable":true}},"additionalProperties":false,"description":"Represents a data segment in a dimension"}}}}
```

## The Struct.App.Api.Models.Dimension.DimensionSegmentModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Dimension.DimensionSegmentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of segment","format":"uuid"},"Identifier":{"type":"string","description":"Unique human readable identifier for segment","nullable":true},"Name":{"type":"string","description":"Display name for segment","nullable":true}},"additionalProperties":false,"description":"Represents a data segment in a dimension"}}}}
```

## The Struct.App.Api.Models.EnrichmentInsight.ConfigurationInsightSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.EnrichmentInsight.ConfigurationInsightSetup":{"type":"object","properties":{"ConfigurationUid":{"type":"string","description":"Uid of configuration these required data accounts for (if entity type of insights setup is category, \r\nthis will be the uid of a catalogue. For variants and products this should hold the uid of a product structure)","format":"uuid","nullable":true},"CategoryId":{"type":"integer","description":"Id of selected category which is chosen for the insight","format":"int32","nullable":true},"RequiredData":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.InsightDataReference"},"description":"List of data references that are required for this insight to be 100% for entities using the configuration in question","nullable":true}},"additionalProperties":false,"description":"Model defining required field for a configuration (being either a catalogue uid or a product structure uid)"},"Struct.App.Api.Models.EnrichmentInsight.InsightDataReference":{"type":"object","properties":{"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing an insights data reference"}}}}
```

## The Struct.App.Api.Models.EnrichmentInsight.DetailedInsightDataReference object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.EnrichmentInsight.DetailedInsightDataReference":{"type":"object","properties":{"Name":{"type":"string","description":"Name of data reference","nullable":true},"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing detailed information on an insights data reference"}}}}
```

## The Struct.App.Api.Models.EnrichmentInsight.EnrichmentInsightSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.EnrichmentInsight.EnrichmentInsightSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of enrichment insight setup","format":"uuid"},"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityType"},"Alias":{"type":"string","description":"Unique alias of this insight setup","nullable":true},"Label":{"type":"string","description":"Presented name of this enrichment insight setup","nullable":true},"Setup":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.ConfigurationInsightSetup"},"description":"Setup of required fields for each configuration available to this insight setup (One for each product structure or each catalogue depnding on the entity type)","nullable":true}},"additionalProperties":false,"description":"Model defining setup of an enrichment insight"},"Struct.App.Api.Models.EnrichmentInsight.EntityType":{"enum":[10,20,30,50],"type":"integer","description":"Enum representing each supported entity type in enrichment insights engine \n\n- `10` = **Category**: Category reference\n- `20` = **Product**: Product reference\n- `30` = **Variant**: Variant reference\n- `50` = **VariantGroup**: Variant group reference","format":"int32"},"Struct.App.Api.Models.EnrichmentInsight.ConfigurationInsightSetup":{"type":"object","properties":{"ConfigurationUid":{"type":"string","description":"Uid of configuration these required data accounts for (if entity type of insights setup is category, \r\nthis will be the uid of a catalogue. For variants and products this should hold the uid of a product structure)","format":"uuid","nullable":true},"CategoryId":{"type":"integer","description":"Id of selected category which is chosen for the insight","format":"int32","nullable":true},"RequiredData":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.InsightDataReference"},"description":"List of data references that are required for this insight to be 100% for entities using the configuration in question","nullable":true}},"additionalProperties":false,"description":"Model defining required field for a configuration (being either a catalogue uid or a product structure uid)"},"Struct.App.Api.Models.EnrichmentInsight.InsightDataReference":{"type":"object","properties":{"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing an insights data reference"}}}}
```

## The Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight":{"type":"object","properties":{"EnrichmentInsightSetupUid":{"type":"string","description":"Uid of enrichment insight","format":"uuid"},"EntityId":{"type":"integer","description":"Id of entity","format":"int32"},"Completeness":{"type":"integer","description":"Completeness in percentage (0 - 100). Is null, if ignored is true","format":"int32","nullable":true},"MissingData":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.InsightDataReference"},"description":"List of missing data for this entity to reach 100% completeness for this enrichment insight","nullable":true},"Ignored":{"type":"boolean","description":"Indicates whether the completeness is ignored for this entity and this enrichment insight"}},"additionalProperties":false,"description":"Model representing an entity's enrichment insight"},"Struct.App.Api.Models.EnrichmentInsight.InsightDataReference":{"type":"object","properties":{"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing an insights data reference"}}}}
```

## The Struct.App.Api.Models.EnrichmentInsight.EntityType object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.EnrichmentInsight.EntityType":{"enum":[10,20,30,50],"type":"integer","description":"Enum representing each supported entity type in enrichment insights engine \n\n- `10` = **Category**: Category reference\n- `20` = **Product**: Product reference\n- `30` = **Variant**: Variant reference\n- `50` = **VariantGroup**: Variant group reference","format":"int32"}}}}
```

## The Struct.App.Api.Models.EnrichmentInsight.InsightDataReference object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.EnrichmentInsight.InsightDataReference":{"type":"object","properties":{"Type":{"type":"string","description":"Type of data reference","nullable":true},"DataReference":{"type":"string","description":"The data reference itself","nullable":true}},"additionalProperties":false,"description":"Model representing an insights data reference"}}}}
```

## The Struct.App.Api.Models.Exports.ExportField object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Exports.ExportField":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of field","nullable":true},"Name":{"type":"string","description":"Presented name of field","nullable":true}},"additionalProperties":false,"description":"Represents a field that can be exported"}}}}
```

## The Struct.App.Api.Models.Exports.ExportModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Exports.ExportModel":{"type":"object","properties":{"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityType"},"EntityIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"The ids to export data for","nullable":true},"ExportSettings":{"$ref":"#/components/schemas/Struct.App.Api.Models.Exports.ExportSettings"}},"additionalProperties":false,"description":"Model defining export to build"},"Struct.App.Api.Models.EnrichmentInsight.EntityType":{"enum":[10,20,30,50],"type":"integer","description":"Enum representing each supported entity type in enrichment insights engine \n\n- `10` = **Category**: Category reference\n- `20` = **Product**: Product reference\n- `30` = **Variant**: Variant reference\n- `50` = **VariantGroup**: Variant group reference","format":"int32"},"Struct.App.Api.Models.Exports.ExportSettings":{"type":"object","properties":{"ExportSettingsType":{"type":"string","description":"Type of export settings","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Settings for an export"}}}}
```

## The Struct.App.Api.Models.Exports.ExportResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Exports.ExportResult":{"type":"object","properties":{"FileBytes":{"type":"string","description":"The actual file containing the exported data","format":"byte","nullable":true},"FileName":{"type":"string","description":"Name of the file","nullable":true},"FileExtension":{"type":"string","description":"Extension of the file","nullable":true},"MimeType":{"type":"string","description":"Mimetype of the file","nullable":true}},"additionalProperties":false,"description":"Result of an export"}}}}
```

## The Struct.App.Api.Models.Exports.ExportSettings object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Exports.ExportSettings":{"type":"object","properties":{"ExportSettingsType":{"type":"string","description":"Type of export settings","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Settings for an export"}}}}
```

## The Struct.App.Api.Models.GlobalList.GlobalList object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.GlobalList.GlobalList":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of global list (readonly)","format":"int32"},"Uid":{"type":"string","description":"Unique id of global list","format":"uuid"},"Attribute":{"$ref":"#/components/schemas/Struct.App.Api.Models.Attribute.Attribute"},"ViewRequiresPermission":{"type":"boolean","description":"Indicates whether a special permission is required to view the global list"},"ViewPermission":{"type":"string","description":"Permission required to view the global list, if ViewRequiresPermission is set","format":"uuid","nullable":true},"CreateRequiresPermission":{"type":"boolean","description":"Indicates whether a special permission is required in order to create values in the global list"},"EditRequiresPermission":{"type":"boolean","description":"Indicates whether a special permission is required in order to update values in the global list"},"DeleteRequiresPermission":{"type":"boolean","description":"Indicates whether a special permission is required in order to delete values in the global list"},"CreatePermission":{"type":"string","description":"Permission required to create values in the global list, if CreateRequiresPermission is set","format":"uuid","nullable":true},"EditPermission":{"type":"string","description":"Permission required to update values in the global list, if EditRequiresPermission is set","format":"uuid","nullable":true},"DeletePermission":{"type":"string","description":"Permission required to delete values in the global list, if DeleteRequiresPermission is set","format":"uuid","nullable":true},"FolderUid":{"type":"string","description":"Uid of folder to place global list in","format":"uuid","nullable":true},"RequiresSorting":{"type":"boolean","description":"Defines if values on a global list values should be sorted on creation"},"GlobalListKeys":{"type":"array","items":{"type":"string"},"description":"Defines data elements of the global list, which in combination must be unique across all\r\nvalues of the this global list\r\n(format: [rootAttributeUid]_[subAttributeUid]_[LanguageId/NA]_[DimensionSegmentUid/NA] - ex. 17ca35af-9cb9-44a2-a2f4-1d30a3617e01_2ee6ac86-77d0-4385-94b7-84dd59e05d0b_NA_NA)","nullable":true},"KeyIsCaseInsensitive":{"type":"boolean","description":"Defines if key value for a global list value is case insensitive"},"AvailableInApps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.GlobalList.StructApp"},"description":"Define where the global list is available to users","nullable":true}},"additionalProperties":false,"description":"Global list represents a global collection of reusable objects"},"Struct.App.Api.Models.Attribute.Attribute":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of attribute","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of attribute. Max length is 50 characters and can only consist of letters a-z/A-Z and numbers 0-9 (but cannot start with a number)","nullable":true},"BackofficeName":{"type":"string","description":"The name of the attribute displayed to the editor in the PIM backoffice","nullable":true},"BackofficeDescription":{"type":"string","description":"The description of the attribute displayed to the editor in the PIM backoffice","nullable":true},"Name":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"The localized name of the attribute usable for displaying the attribute name in ex. a webshop (Dictionary of ISO culturecode and localized value)","nullable":true},"Description":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"The localized description of the attribute usable for displaying a description for the attribute on ex. a webshop (Dictionary of ISO culturecode and localized value)","nullable":true},"AttributeGroupUid":{"type":"string","description":"The id of the attribute group this attribute is placed within","format":"uuid","nullable":true},"AttributeScopes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Unique ids of the attribute scopes this attribute is placed within","nullable":true},"Localized":{"type":"boolean","description":"Indicates whether values of this attribute are localized"},"FallbackLanguage":{"type":"integer","description":"Indicates a fallback language in case attribute is localized and no value is added to a specific language","format":"int32","nullable":true},"DimensionUid":{"type":"string","description":"Unique id of Dimension to segment values of this attribute on","format":"uuid","nullable":true},"FallbackSegment":{"type":"string","description":"Indicates a fallback segment in case attribute is dimensioned and no value is added to a specific segment of that dimension","format":"uuid","nullable":true},"ReadOnly":{"type":"boolean","description":"Indicates whether this attribute is always readonly.\r\nNOTE: Only applied when attribute is a sub attribute of a complex attribute."},"Mandatory":{"type":"boolean","description":"Indicates whether this attribute is always mandatory.\r\nNOTE: Only applied when attribute is a sub attribute of a complex attribute."},"Columns":{"type":"integer","description":"The number of columns this attribute should span in the PIM backoffice (1-12)","format":"int32"},"Unchangeable":{"type":"boolean","description":"Indicates whether this attribute cannot change its value, once it has a value assigned.\r\nNOTE: Only applied when attribute is a sub attribute of a complex attribute."},"AttributeType":{"type":"string","description":"Type of attribute","nullable":true,"readOnly":true},"DisableRevisionLogging":{"type":"boolean","description":"Disable all revision logging for this attribute"},"DisableIndexing":{"type":"boolean","description":"Disable indexing for this attribute"}},"additionalProperties":false,"description":"Represents an attribute in Struct PIM which can be attached to product, variant or category data models"},"Struct.App.Api.Models.GlobalList.StructApp":{"enum":[0,1],"type":"integer","description":"Applications where the global list is available \n\n- `0` = **PIM**: PIM\n- `1` = **Media**: Media","format":"int32"}}}}
```

## The Struct.App.Api.Models.GlobalList.GlobalListFolder object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.GlobalList.GlobalListFolder":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of folder","format":"uuid"},"Name":{"type":"string","description":"Presented name of folder in backoffice","nullable":true}},"additionalProperties":false,"description":"Folder holding global lists"}}}}
```

## The Struct.App.Api.Models.GlobalList.GlobalListValue object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.GlobalList.GlobalListValue":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of global list value","format":"uuid"},"SortOrder":{"type":"integer","description":"Sort order of this value compared to other values in the same global list","format":"int32","nullable":true},"Value":{"description":"The value dynamic value model. The data type of this model depends on the Global list attribute setup.\r\nIf the global list attribute is a Text attribute, this value will be a string If it is a Number attribute,\r\nthis value will be a decimal and so on.","nullable":true}},"additionalProperties":false,"description":"Global list value object representing data on a specific object in a global list.\r\nThe data type of the value property differs depending on the underlying attribute on the global list of this value."}}}}
```

## The Struct.App.Api.Models.GlobalList.GlobalListValueReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.GlobalList.GlobalListValueReferences":{"type":"object","properties":{"GlobalListValueUid":{"type":"string","description":"Uid of the referenced global list value","format":"uuid"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this global list value","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this global list value","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this global list value","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this global list value","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of other global list values referencing this global list value","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to global list value"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.GlobalList.GlobalListValueResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.GlobalList.GlobalListValueResultSet":{"type":"object","properties":{"Total":{"type":"integer","description":"Total number of global list values in global list","format":"int32"},"Remaining":{"type":"integer","description":"Remaining values after the LastId in this result set","format":"int32"},"LastId":{"type":"string","description":"Last id of values in this resultset. Use as pointer to fetch next batch of values","format":"uuid","nullable":true},"GlobalListValues":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.GlobalList.GlobalListValue"},"description":"The global list values in this resultset","nullable":true}},"additionalProperties":false,"description":"Resultset for requested global list values"},"Struct.App.Api.Models.GlobalList.GlobalListValue":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of global list value","format":"uuid"},"SortOrder":{"type":"integer","description":"Sort order of this value compared to other values in the same global list","format":"int32","nullable":true},"Value":{"description":"The value dynamic value model. The data type of this model depends on the Global list attribute setup.\r\nIf the global list attribute is a Text attribute, this value will be a string If it is a Number attribute,\r\nthis value will be a decimal and so on.","nullable":true}},"additionalProperties":false,"description":"Global list value object representing data on a specific object in a global list.\r\nThe data type of the value property differs depending on the underlying attribute on the global list of this value."}}}}
```

## The Struct.App.Api.Models.GlobalList.StructApp object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.GlobalList.StructApp":{"enum":[0,1],"type":"integer","description":"Applications where the global list is available \n\n- `0` = **PIM**: PIM\n- `1` = **Media**: Media","format":"int32"}}}}
```

## The Struct.App.Api.Models.Language.AddLanguageModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Language.AddLanguageModel":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO 639-1 culture code","nullable":true},"Name":{"type":"string","description":"Presented name of language","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of language","format":"int32"}},"additionalProperties":false,"description":"Model to add a language"}}}}
```

## The Struct.App.Api.Models.Language.LanguageModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Language.LanguageModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Unique id of language","format":"int32"},"CultureCode":{"type":"string","description":"Culture code of language","nullable":true},"Name":{"type":"string","description":"Presented name of language","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of language","format":"int32"}},"additionalProperties":false,"description":"Represents a language"}}}}
```

## The Struct.App.Api.Models.Maintenance.EnqueuedTaskModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Maintenance.EnqueuedTaskModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier for the task","format":"uuid"},"Created":{"type":"string","description":"When the task was created","format":"date-time"},"FinishedTimestamp":{"type":"string","description":"When the task was finished","format":"date-time","nullable":true},"StartTimestamp":{"type":"string","description":"When the processing of the task was started","format":"date-time","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.Maintenance.EnqueuedTaskModel_BackgroundTaskStatus"},"PercentageDone":{"type":"integer","description":"How far the task has progressed","format":"int32"}},"additionalProperties":false,"description":"Enqueued task model"},"Struct.App.Api.Models.Maintenance.EnqueuedTaskModel_BackgroundTaskStatus":{"enum":[10,20,30,40],"type":"integer","description":"Status of the task \n\n- `10` = **Queued**\n- `20` = **Processing**\n- `30` = **Succeeded**\n- `40` = **Failed**","format":"int32"}}}}
```

## The Struct.App.Api.Models.Maintenance.EnqueuedTaskModel\_BackgroundTaskStatus object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Maintenance.EnqueuedTaskModel_BackgroundTaskStatus":{"enum":[10,20,30,40],"type":"integer","description":"Status of the task \n\n- `10` = **Queued**\n- `20` = **Processing**\n- `30` = **Succeeded**\n- `40` = **Failed**","format":"int32"}}}}
```

## The Struct.App.Api.Models.Messaging.EventSettings object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Messaging.EventSettings":{"type":"object","properties":{"EventSettingsType":{"type":"string","description":"Event settings type","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Event settings"}}}}
```

## The Struct.App.Api.Models.Messaging.MessageModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Messaging.MessageModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of this message","format":"uuid"},"ConnectionUid":{"type":"string","description":"Unique id of the connection that triggered the message","format":"uuid"},"EventKey":{"type":"string","description":"The key of the event that triggered the event","nullable":true},"EventTimestamp":{"type":"string","description":"Timestamp of the event that triggered the message","format":"date-time"},"RequestTimestamp":{"type":"string","description":"Timestamp of when the message was made","format":"date-time"},"MessageBody":{"type":"string","description":"The message body sent in the message","nullable":true},"ElapsedMilliseconds":{"type":"integer","description":"The time in ms it took to get a response from the recipient of the request","format":"int64"},"RequestMetadata":{"type":"string","description":"Metadata about sending the message","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.Messaging.ServiceBusMessageStatus"},"ParentServiceBusMessageUid":{"type":"string","description":"Uid of parent message (only has value, if this is a retry of a failed message)","format":"uuid","nullable":true},"IsRetry":{"type":"boolean","description":"Indicates whether this request is a retry of a previously failed request","readOnly":true}},"additionalProperties":false,"description":"Model representing a message"},"Struct.App.Api.Models.Messaging.ServiceBusMessageStatus":{"enum":[1,2],"type":"integer","description":"Status of sending the message \n\n- `1` = **Success**: Success\n- `2` = **Failed**: Failed","format":"int32"}}}}
```

## The Struct.App.Api.Models.Messaging.MessageQueueModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Messaging.MessageQueueModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the message queue connection","format":"uuid"},"Title":{"type":"string","description":"Title of message queue connection","nullable":true},"ServiceBusConnectionString":{"type":"string","description":"Url for the message queue to request when triggered","nullable":true},"QueueName":{"type":"string","description":"Queue name for the message queue","nullable":true},"BlobContainerConnectionString":{"type":"string","description":"Url for the blob storage to request when triggered","nullable":true},"BlobContainerName":{"type":"string","description":"","nullable":true},"Active":{"type":"boolean","description":"Activate / deactivate message queue connection"},"EnabledEvents":{"type":"array","items":{"type":"string"},"description":"Events this message queue shall act on","nullable":true},"AdvancedSettings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Struct.App.Api.Models.Messaging.EventSettings"},"description":"Advanced settings for events supporting this message queue","nullable":true}},"additionalProperties":false,"description":"Model representing a message queue connection"},"Struct.App.Api.Models.Messaging.EventSettings":{"type":"object","properties":{"EventSettingsType":{"type":"string","description":"Event settings type","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Event settings"}}}}
```

## The Struct.App.Api.Models.Messaging.MessageSearchResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Messaging.MessageSearchResult":{"type":"object","properties":{"Messages":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Messaging.MessageModel"},"description":"Messages that matched the criteria","nullable":true},"Page":{"type":"integer","description":"Page of the search request","format":"int32"},"TotalHits":{"type":"integer","description":"Total number of hits in the search","format":"int32"}},"additionalProperties":false,"description":"Model containing response from a message search"},"Struct.App.Api.Models.Messaging.MessageModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of this message","format":"uuid"},"ConnectionUid":{"type":"string","description":"Unique id of the connection that triggered the message","format":"uuid"},"EventKey":{"type":"string","description":"The key of the event that triggered the event","nullable":true},"EventTimestamp":{"type":"string","description":"Timestamp of the event that triggered the message","format":"date-time"},"RequestTimestamp":{"type":"string","description":"Timestamp of when the message was made","format":"date-time"},"MessageBody":{"type":"string","description":"The message body sent in the message","nullable":true},"ElapsedMilliseconds":{"type":"integer","description":"The time in ms it took to get a response from the recipient of the request","format":"int64"},"RequestMetadata":{"type":"string","description":"Metadata about sending the message","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.Messaging.ServiceBusMessageStatus"},"ParentServiceBusMessageUid":{"type":"string","description":"Uid of parent message (only has value, if this is a retry of a failed message)","format":"uuid","nullable":true},"IsRetry":{"type":"boolean","description":"Indicates whether this request is a retry of a previously failed request","readOnly":true}},"additionalProperties":false,"description":"Model representing a message"},"Struct.App.Api.Models.Messaging.ServiceBusMessageStatus":{"enum":[1,2],"type":"integer","description":"Status of sending the message \n\n- `1` = **Success**: Success\n- `2` = **Failed**: Failed","format":"int32"}}}}
```

## The Struct.App.Api.Models.Messaging.ServiceBusMessageStatus object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Messaging.ServiceBusMessageStatus":{"enum":[1,2],"type":"integer","description":"Status of sending the message \n\n- `1` = **Success**: Success\n- `2` = **Failed**: Failed","format":"int32"}}}}
```

## The Struct.App.Api.Models.Misc.Heartbeat object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Misc.Heartbeat":{"type":"object","properties":{"Message":{"type":"string","description":"Message","nullable":true}},"additionalProperties":false,"description":"Heartbeat"}}}}
```

## The Struct.App.Api.Models.Misc.PIMVersion object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Misc.PIMVersion":{"type":"object","properties":{"VersionNumber":{"type":"string","description":"Version number","nullable":true}},"additionalProperties":false,"description":"PIM version"}}}}
```

## The Struct.App.Api.Models.ModelGenerator.ModelStructure object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ModelGenerator.ModelStructure":{"type":"object","properties":{"ProductModels":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_ProductModelSetup"},"description":"Product models","nullable":true},"VariantModels":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_VariantModelSetup"},"description":"Variant models","nullable":true},"CategoryModels":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_CategoryModelSetup"},"description":"Category models","nullable":true},"VariantGroupModels":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_VariantGroupModelSetup"},"description":"Variant group models","nullable":true},"GlobalListModels":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Global list models","nullable":true},"CategoryAttributeModels":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Category attribute models","nullable":true}},"additionalProperties":false,"description":"Model structure"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_ProductModelSetup":{"type":"object","properties":{"Alias":{"type":"string","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"nullable":true}},"additionalProperties":false,"description":"Product model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias of attribute","nullable":true},"DataType":{"type":"string","description":"Data type of attribute","nullable":true},"Localized":{"type":"boolean","description":"Is attribute localized"},"IsMultiValue":{"type":"boolean","description":"Is attribute multi value"},"DimensionSpecific":{"type":"boolean","description":"Is attribute dimension specific"},"ReferencedAttribute":{"type":"string","description":"Referenced attribute","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Sub attributes","nullable":true},"Name":{"type":"string","description":"Name of attribute","nullable":true},"Description":{"type":"string","description":"Description of attribute","nullable":true}},"additionalProperties":false,"description":"Attribute model"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_VariantModelSetup":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Properties","nullable":true}},"additionalProperties":false,"description":"Variant model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_CategoryModelSetup":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Properties","nullable":true}},"additionalProperties":false,"description":"Category model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_VariantGroupModelSetup":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Properties","nullable":true}},"additionalProperties":false,"description":"Variant group model setup"}}}}
```

## The Struct.App.Api.Models.ModelGenerator.ModelStructure\_AttributeModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias of attribute","nullable":true},"DataType":{"type":"string","description":"Data type of attribute","nullable":true},"Localized":{"type":"boolean","description":"Is attribute localized"},"IsMultiValue":{"type":"boolean","description":"Is attribute multi value"},"DimensionSpecific":{"type":"boolean","description":"Is attribute dimension specific"},"ReferencedAttribute":{"type":"string","description":"Referenced attribute","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Sub attributes","nullable":true},"Name":{"type":"string","description":"Name of attribute","nullable":true},"Description":{"type":"string","description":"Description of attribute","nullable":true}},"additionalProperties":false,"description":"Attribute model"}}}}
```

## The Struct.App.Api.Models.ModelGenerator.ModelStructure\_CategoryModelSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ModelGenerator.ModelStructure_CategoryModelSetup":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Properties","nullable":true}},"additionalProperties":false,"description":"Category model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias of attribute","nullable":true},"DataType":{"type":"string","description":"Data type of attribute","nullable":true},"Localized":{"type":"boolean","description":"Is attribute localized"},"IsMultiValue":{"type":"boolean","description":"Is attribute multi value"},"DimensionSpecific":{"type":"boolean","description":"Is attribute dimension specific"},"ReferencedAttribute":{"type":"string","description":"Referenced attribute","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Sub attributes","nullable":true},"Name":{"type":"string","description":"Name of attribute","nullable":true},"Description":{"type":"string","description":"Description of attribute","nullable":true}},"additionalProperties":false,"description":"Attribute model"}}}}
```

## The Struct.App.Api.Models.ModelGenerator.ModelStructure\_ProductModelSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ModelGenerator.ModelStructure_ProductModelSetup":{"type":"object","properties":{"Alias":{"type":"string","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"nullable":true}},"additionalProperties":false,"description":"Product model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias of attribute","nullable":true},"DataType":{"type":"string","description":"Data type of attribute","nullable":true},"Localized":{"type":"boolean","description":"Is attribute localized"},"IsMultiValue":{"type":"boolean","description":"Is attribute multi value"},"DimensionSpecific":{"type":"boolean","description":"Is attribute dimension specific"},"ReferencedAttribute":{"type":"string","description":"Referenced attribute","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Sub attributes","nullable":true},"Name":{"type":"string","description":"Name of attribute","nullable":true},"Description":{"type":"string","description":"Description of attribute","nullable":true}},"additionalProperties":false,"description":"Attribute model"}}}}
```

## The Struct.App.Api.Models.ModelGenerator.ModelStructure\_VariantGroupModelSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ModelGenerator.ModelStructure_VariantGroupModelSetup":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Properties","nullable":true}},"additionalProperties":false,"description":"Variant group model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias of attribute","nullable":true},"DataType":{"type":"string","description":"Data type of attribute","nullable":true},"Localized":{"type":"boolean","description":"Is attribute localized"},"IsMultiValue":{"type":"boolean","description":"Is attribute multi value"},"DimensionSpecific":{"type":"boolean","description":"Is attribute dimension specific"},"ReferencedAttribute":{"type":"string","description":"Referenced attribute","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Sub attributes","nullable":true},"Name":{"type":"string","description":"Name of attribute","nullable":true},"Description":{"type":"string","description":"Description of attribute","nullable":true}},"additionalProperties":false,"description":"Attribute model"}}}}
```

## The Struct.App.Api.Models.ModelGenerator.ModelStructure\_VariantModelSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ModelGenerator.ModelStructure_VariantModelSetup":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Properties","nullable":true}},"additionalProperties":false,"description":"Variant model setup"},"Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel":{"type":"object","properties":{"Alias":{"type":"string","description":"Alias of attribute","nullable":true},"DataType":{"type":"string","description":"Data type of attribute","nullable":true},"Localized":{"type":"boolean","description":"Is attribute localized"},"IsMultiValue":{"type":"boolean","description":"Is attribute multi value"},"DimensionSpecific":{"type":"boolean","description":"Is attribute dimension specific"},"ReferencedAttribute":{"type":"string","description":"Referenced attribute","nullable":true},"Properties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ModelGenerator.ModelStructure_AttributeModel"},"description":"Sub attributes","nullable":true},"Name":{"type":"string","description":"Name of attribute","nullable":true},"Description":{"type":"string","description":"Description of attribute","nullable":true}},"additionalProperties":false,"description":"Attribute model"}}}}
```

## The Struct.App.Api.Models.Product.BatchUpdateAssetModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.BatchUpdateAssetModel":{"type":"object","properties":{"AssetId":{"type":"integer","description":"Uid of asset to update","format":"int32"},"UpdateModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Asset.UpdateAssetModel"}},"additionalProperties":false,"description":"Update model for a batch of assets"},"Struct.App.Api.Models.Asset.UpdateAssetModel":{"type":"object","properties":{"AssetTypeUid":{"type":"string","description":"The unique identifier of the asset type to change the asset to.\r\nThis defines the asset's characteristics and available metadata fields.","format":"uuid","nullable":true},"FolderUid":{"type":"string","description":"The unique identifier of the folder where the asset should be moved to.","format":"uuid","nullable":true},"WorkflowStateUid":{"type":"string","description":"The unique identifier of the workflow state to move the asset to.","format":"uuid","nullable":true},"Tags":{"type":"array","items":{"type":"string"},"description":"Collection of tags to replace the existing tags on the asset.\r\nProviding an empty list will remove all tags.","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the asset","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model for updating an existing asset"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Product.BatchUpdateProductModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.BatchUpdateProductModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to update","format":"int32"},"UpdateModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.UpdateProductModel"}},"additionalProperties":false,"description":"Update model for a product"},"Struct.App.Api.Models.Product.UpdateProductModel":{"type":"object","properties":{"ProductStructureUid":{"type":"string","description":"Product structure to set on product","format":"uuid","nullable":true},"VariationDefinitionUid":{"type":"string","description":"Variation definition to set on product","format":"uuid","nullable":true},"IsArchived":{"type":"boolean","description":"Indicate whether the product shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving product (if IsArchived is true)","format":"uuid","nullable":true},"ClassificationsUpdate":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.UpdateProductClassificationsModel"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the product","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the product","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Update model containing the updates to make on a product. Note that properties with null values will be ignored and will not cause an update.\r\nThis means you should only set properties that shall be updated on the product"},"Struct.App.Api.Models.Product.UpdateProductClassificationsModel":{"type":"object","properties":{"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.SetClassificationModel"},"description":"Classifications to add or update for the product","nullable":true},"UpdateMethod":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.ClassificationUpdateMethod"},"RemoveWhereOwnerReferenceIs":{"type":"string","description":"If UpdateMethod is RemoveWhereOwnerReferenceMatches, this property can be set to remove all classifications where OwnerReference matches this value.\r\nNote that this is a case-insensitive comparison and that this property is ignored if UpdateMethod is not RemoveWhereOwnerReferenceMatches, but required if it is.","nullable":true}},"additionalProperties":false,"description":"Model for adding classification to a product"},"Struct.App.Api.Models.Product.SetClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true}},"additionalProperties":false,"description":"Model for adding or updating a classification of a product"},"Struct.App.Api.Models.Product.ClassificationUpdateMethod":{"enum":[0,1,2],"type":"integer","description":"Method to use when updating classifications of a product \n\n- `0` = **Replace**: Replace all classifications with the provided classifications\n- `1` = **Add**: Add the provided classifications to the existing classifications\n- `2` = **RemoveWhereOwnerReferenceMatches**: Remove the provided classifications from the existing classifications","format":"int32"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Product.ClassificationUpdateMethod object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ClassificationUpdateMethod":{"enum":[0,1,2],"type":"integer","description":"Method to use when updating classifications of a product \n\n- `0` = **Replace**: Replace all classifications with the provided classifications\n- `1` = **Add**: Add the provided classifications to the existing classifications\n- `2` = **RemoveWhereOwnerReferenceMatches**: Remove the provided classifications from the existing classifications","format":"int32"}}}}
```

## The Struct.App.Api.Models.Product.CreateProductModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.CreateProductModel":{"type":"object","properties":{"ProductStructureUid":{"type":"string","description":"Product structure to use for product","format":"uuid"},"VariationDefinitionUid":{"type":"string","description":"Variation definition to use for product","format":"uuid","nullable":true},"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.SetClassificationModel"},"description":"Classifications to set on the product","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the product","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the product","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model used to create a new product"},"Struct.App.Api.Models.Product.SetClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true}},"additionalProperties":false,"description":"Model for adding or updating a classification of a product"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Product.ProductAttributeValuesModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ProductAttributeValuesModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Attribute values for a product"}}}}
```

## The Struct.App.Api.Models.Product.ProductClassificationModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ProductClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true},"IsMasterCatalogue":{"type":"boolean","description":"Indication whether this classification is the master catalogue for the product"},"CatalogueUid":{"type":"string","description":"The catalogue uid of the category the product is classified in","format":"uuid"},"IsDynamicCategory":{"type":"boolean","description":"Indication whether this classification is a dynamic category"}},"additionalProperties":false,"description":"Holds information on products placement in categories"}}}}
```

## The Struct.App.Api.Models.Product.ProductModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ProductModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Unique id of the product","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of product (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"Created":{"type":"string","description":"Timestamp of the product creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the product","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last product update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the product","nullable":true},"VariationDefinitionUid":{"type":"string","description":"Variation definition reference. For more information, Struct.App.Api.Models.ProductStructure.VariationDefinition for more information","format":"uuid","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the product is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the product was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The uid of the product structure used for this product","format":"uuid"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the product","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this product is associated with","nullable":true},"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.ProductClassificationModel"},"description":"The category classificatoins of the product","nullable":true}},"additionalProperties":false,"description":"Represents the root information always present on a product"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."},"Struct.App.Api.Models.Product.ProductClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true},"IsMasterCatalogue":{"type":"boolean","description":"Indication whether this classification is the master catalogue for the product"},"CatalogueUid":{"type":"string","description":"The catalogue uid of the category the product is classified in","format":"uuid"},"IsDynamicCategory":{"type":"boolean","description":"Indication whether this classification is a dynamic category"}},"additionalProperties":false,"description":"Holds information on products placement in categories"}}}}
```

## The Struct.App.Api.Models.Product.ProductReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ProductReferences":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of the referenced product","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this product","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this product","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this product","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this product","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this product","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this product","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a product"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.Product.ProductValuesRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ProductValuesRequestModel":{"type":"object","properties":{"ProductIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of products to return","nullable":true},"IncludeValues":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ValueIncludeMode"},"Scopes":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Scopes, define which scopes to return values for here","nullable":true},"Aliases":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Aliases, define aliases of the attributes to include values for","nullable":true},"Uids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"If IncludeValues is Uids, define uids of the attributes to include values for","nullable":true},"LimitToCultureCodes":{"type":"array","items":{"type":"string"},"description":"Only return values for specific languages","nullable":true},"LimitToSegments":{"type":"array","items":{"type":"string"},"description":"Only return values for specific dimension segments","nullable":true},"GlobalListValueReferencesOnly":{"type":"boolean","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values"},"FromTimestamp":{"type":"string","description":"Get attribute values back in time","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Define which categories to fetch data for and what data to fetch"},"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"}}}}
```

## The Struct.App.Api.Models.Product.ProductsResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.ProductsResultSet":{"type":"object","properties":{"Products":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.ProductModel"},"description":"List of products in result set","nullable":true},"Total":{"type":"integer","description":"The total number of items","format":"int32"},"Remaining":{"type":"integer","description":"The remaining items that lie after the last id of the item in this result set","format":"int32"},"LastId":{"type":"integer","description":"The id of the last item in this result set","format":"int32"}},"additionalProperties":false,"description":"Result set of products from a product query"},"Struct.App.Api.Models.Product.ProductModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Unique id of the product","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of product (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"Created":{"type":"string","description":"Timestamp of the product creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the product","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last product update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the product","nullable":true},"VariationDefinitionUid":{"type":"string","description":"Variation definition reference. For more information, Struct.App.Api.Models.ProductStructure.VariationDefinition for more information","format":"uuid","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the product is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the product was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The uid of the product structure used for this product","format":"uuid"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the product","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this product is associated with","nullable":true},"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.ProductClassificationModel"},"description":"The category classificatoins of the product","nullable":true}},"additionalProperties":false,"description":"Represents the root information always present on a product"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."},"Struct.App.Api.Models.Product.ProductClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true},"IsMasterCatalogue":{"type":"boolean","description":"Indication whether this classification is the master catalogue for the product"},"CatalogueUid":{"type":"string","description":"The catalogue uid of the category the product is classified in","format":"uuid"},"IsDynamicCategory":{"type":"boolean","description":"Indication whether this classification is a dynamic category"}},"additionalProperties":false,"description":"Holds information on products placement in categories"}}}}
```

## The Struct.App.Api.Models.Product.RemoveClassificationsModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.RemoveClassificationsModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id to remove classifications from","format":"int32"},"CategoryIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Categories to remove product from","nullable":true}},"additionalProperties":false,"description":"Model for removing classifications for a product"}}}}
```

## The Struct.App.Api.Models.Product.SetClassificationModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.SetClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true}},"additionalProperties":false,"description":"Model for adding or updating a classification of a product"}}}}
```

## The Struct.App.Api.Models.Product.UpdateProductClassificationsModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.UpdateProductClassificationsModel":{"type":"object","properties":{"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.SetClassificationModel"},"description":"Classifications to add or update for the product","nullable":true},"UpdateMethod":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.ClassificationUpdateMethod"},"RemoveWhereOwnerReferenceIs":{"type":"string","description":"If UpdateMethod is RemoveWhereOwnerReferenceMatches, this property can be set to remove all classifications where OwnerReference matches this value.\r\nNote that this is a case-insensitive comparison and that this property is ignored if UpdateMethod is not RemoveWhereOwnerReferenceMatches, but required if it is.","nullable":true}},"additionalProperties":false,"description":"Model for adding classification to a product"},"Struct.App.Api.Models.Product.SetClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true}},"additionalProperties":false,"description":"Model for adding or updating a classification of a product"},"Struct.App.Api.Models.Product.ClassificationUpdateMethod":{"enum":[0,1,2],"type":"integer","description":"Method to use when updating classifications of a product \n\n- `0` = **Replace**: Replace all classifications with the provided classifications\n- `1` = **Add**: Add the provided classifications to the existing classifications\n- `2` = **RemoveWhereOwnerReferenceMatches**: Remove the provided classifications from the existing classifications","format":"int32"}}}}
```

## The Struct.App.Api.Models.Product.UpdateProductModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Product.UpdateProductModel":{"type":"object","properties":{"ProductStructureUid":{"type":"string","description":"Product structure to set on product","format":"uuid","nullable":true},"VariationDefinitionUid":{"type":"string","description":"Variation definition to set on product","format":"uuid","nullable":true},"IsArchived":{"type":"boolean","description":"Indicate whether the product shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving product (if IsArchived is true)","format":"uuid","nullable":true},"ClassificationsUpdate":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.UpdateProductClassificationsModel"},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the product","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the product","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Update model containing the updates to make on a product. Note that properties with null values will be ignored and will not cause an update.\r\nThis means you should only set properties that shall be updated on the product"},"Struct.App.Api.Models.Product.UpdateProductClassificationsModel":{"type":"object","properties":{"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.SetClassificationModel"},"description":"Classifications to add or update for the product","nullable":true},"UpdateMethod":{"$ref":"#/components/schemas/Struct.App.Api.Models.Product.ClassificationUpdateMethod"},"RemoveWhereOwnerReferenceIs":{"type":"string","description":"If UpdateMethod is RemoveWhereOwnerReferenceMatches, this property can be set to remove all classifications where OwnerReference matches this value.\r\nNote that this is a case-insensitive comparison and that this property is ignored if UpdateMethod is not RemoveWhereOwnerReferenceMatches, but required if it is.","nullable":true}},"additionalProperties":false,"description":"Model for adding classification to a product"},"Struct.App.Api.Models.Product.SetClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the product is placed in","format":"int32"},"IsPrimary":{"type":"boolean","description":"Indication whether this classification is the primary classification for the product"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of products through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the product in this category","format":"int32","nullable":true}},"additionalProperties":false,"description":"Model for adding or updating a classification of a product"},"Struct.App.Api.Models.Product.ClassificationUpdateMethod":{"enum":[0,1,2],"type":"integer","description":"Method to use when updating classifications of a product \n\n- `0` = **Replace**: Replace all classifications with the provided classifications\n- `1` = **Add**: Add the provided classifications to the existing classifications\n- `2` = **RemoveWhereOwnerReferenceMatches**: Remove the provided classifications from the existing classifications","format":"int32"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.ProductStructure.ProductConfiguration object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ProductStructure.ProductConfiguration":{"type":"object","properties":{"ThumbnailReference":{"type":"string","description":"Reference to a media attribute which holds the image that should be presented as thumbnail for the product.\r\nUse Product_[attributeUid] to reference a media attribute on the Product configuration itself\r\nVariant_[attributeUid] to reference a media attribute on the Product configuration of the Product structure and","nullable":true},"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"CopyWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on products using this product configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The product configuration defines the tabs, sections and properties available on a product as well as the wizard used for creating new products."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.ProductStructure.ProductStructure object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ProductStructure.ProductStructure":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of product structure","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable alias of product structure","nullable":true},"Label":{"type":"string","description":"Presented name of product structure in backoffice","nullable":true},"HasVariants":{"type":"boolean","description":"Indicates whether products using this product structure can have variants. VariantConfiguration\r\nis required when this is true"},"HasVariantGroups":{"type":"boolean","description":"Indicates whether products using this product structure can have variant groups. VariantGroupConfiguration\r\nis required when this is true"},"ProductConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.ProductStructure.ProductConfiguration"},"VariantGroupConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.ProductStructure.VariantGroupConfiguration"},"VariantConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.ProductStructure.VariantConfiguration"},"VariationDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.ProductStructure.VariationDefinition"},"description":"Defines different variant variations (eg. some products have variants of color/size, others of width/length, others again of just color and so on.)","nullable":true},"AlwaysOnDefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Set defining attributes that must always be available no matter if they are part of the variation definition for a variant or not","nullable":true},"ProductIdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a model number and the internal id of a product in the system","nullable":true},"VariantGroupIdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a model number and the internal id of a variant group","nullable":true},"VariantIdentifierDefinitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.IdentifierDefinition"},"description":"Defines identifier setups used to create maps between eg. a SKU and the internal id of the variant","nullable":true}},"additionalProperties":false,"description":"Product structure is the model that defines the fields available on products and variants\r\nas well as how these are presented in tabs and sections in the PIM backoffice"},"Struct.App.Api.Models.ProductStructure.ProductConfiguration":{"type":"object","properties":{"ThumbnailReference":{"type":"string","description":"Reference to a media attribute which holds the image that should be presented as thumbnail for the product.\r\nUse Product_[attributeUid] to reference a media attribute on the Product configuration itself\r\nVariant_[attributeUid] to reference a media attribute on the Product configuration of the Product structure and","nullable":true},"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"CopyWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on products using this product configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The product configuration defines the tabs, sections and properties available on a product as well as the wizard used for creating new products."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"},"Struct.App.Api.Models.ProductStructure.VariantGroupConfiguration":{"type":"object","properties":{"GroupingAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes to group variants by. All variants with the same values as a variant group in the specified Grouping attributes will be associated to that variant group","nullable":true},"ThumbnailReference":{"type":"string","description":"Reference to a media attribute which holds the image that should be presented as thumbnail for the product.\r\nUse VariantGroup_[attributeUid] to reference a media attribute on the Variant group configuration itself","nullable":true},"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"CopyWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on Variant groups using this Variant group configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The variant groups configuration defines the tabs, sections and properties available on a variant group as well as the wizard used for creating new variant groups."},"Struct.App.Api.Models.ProductStructure.VariantConfiguration":{"type":"object","properties":{"ThumbnailReference":{"type":"string","description":"Reference to a media attribute which holds the image that should be presented as thumbnail for the variant.\r\nUse Product_[attributeUid] to reference a media attribute on the Product configuration of the Product structure and\r\nVariant_[attributeUid] to reference a media attribute on the Variant configuration itself","nullable":true},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on variants using this variant configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The variant configuration defines the tabs, sections and properties available on a variant as well as the wizard used for creating new variants."},"Struct.App.Api.Models.ProductStructure.VariationDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of variation definition","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable identifier for variation definition","nullable":true},"Name":{"type":"string","description":"Presented name of variation definition in backoffice","nullable":true},"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uid of the attributes which are defining for variants using this variation definition (eg. uid of color attribute, uids of color and size attribute etc.)","nullable":true},"SortOrder":{"type":"integer","description":"The presented sortorder of the variation definition in backoffice","format":"int32"}},"additionalProperties":false,"description":"Variation definition defines how variants of a product differ from each other - eg. what are the defining attributes (color, color and size, width and height etc.)"},"Struct.App.Api.Models.DataConfiguration.IdentifierDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of identifier definition","format":"uuid"},"Alias":{"type":"string","description":"Unqique human readable identifier of the definition","nullable":true},"IdentifierPattern":{"type":"string","description":"Pattern defining how to generate identifier string from values of the selected attributes (ex. {0} - {1} to render the values of two selected attributes in IdentifierAttributes with a - between them)","nullable":true},"IdentifierAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes for which values should be used for generating the identifier string (ex. uid of attribute for Model number and uid of attribute for SKU)","nullable":true}},"additionalProperties":false,"description":"An identifier definition defines how to create a map between certain attribute values and the internal id of the item (product, variant or category)"}}}}
```

## The Struct.App.Api.Models.ProductStructure.VariantConfiguration object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ProductStructure.VariantConfiguration":{"type":"object","properties":{"ThumbnailReference":{"type":"string","description":"Reference to a media attribute which holds the image that should be presented as thumbnail for the variant.\r\nUse Product_[attributeUid] to reference a media attribute on the Product configuration of the Product structure and\r\nVariant_[attributeUid] to reference a media attribute on the Variant configuration itself","nullable":true},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on variants using this variant configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The variant configuration defines the tabs, sections and properties available on a variant as well as the wizard used for creating new variants."},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.ProductStructure.VariantGroupConfiguration object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ProductStructure.VariantGroupConfiguration":{"type":"object","properties":{"GroupingAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Attributes to group variants by. All variants with the same values as a variant group in the specified Grouping attributes will be associated to that variant group","nullable":true},"ThumbnailReference":{"type":"string","description":"Reference to a media attribute which holds the image that should be presented as thumbnail for the product.\r\nUse VariantGroup_[attributeUid] to reference a media attribute on the Variant group configuration itself","nullable":true},"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"CreateWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"CopyWizard":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardSetup"},"Tabs":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.TabSetup"},"description":"The tabs that shall be shown on Variant groups using this Variant group configuration in the backoffice","nullable":true}},"additionalProperties":false,"description":"The variant groups configuration defines the tabs, sections and properties available on a variant group as well as the wizard used for creating new variant groups."},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"},"Struct.App.Api.Models.DataConfiguration.WizardSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard setup","format":"uuid"},"Steps":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.WizardStepSetup"},"description":"The steps that are part of this wizard","nullable":true}},"additionalProperties":false,"description":"Defines a step wizard that allows a step wizard presentation for data fulfillment"},"Struct.App.Api.Models.DataConfiguration.WizardStepSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of wizard step","format":"uuid"},"Headline":{"type":"string","description":"Headline for wizard step","nullable":true},"Description":{"type":"string","description":"Description for wizard step","nullable":true},"Type":{"type":"string","description":"The type of wizard step defining the actual implementation type of the abstract WizardStep","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a wizard step. Available implementations (Type's) are:\r\n      * DynamicWizardStepSetup\r\n      * ClassificationWizardStepSetup"},"Struct.App.Api.Models.DataConfiguration.TabSetup":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of tab","format":"uuid"},"ViewPermission":{"type":"string","description":"Uid of permision required to view this tab","format":"uuid","nullable":true},"SavePermission":{"type":"string","description":"Uid of permission required to edit data on this tab","format":"uuid","nullable":true},"Type":{"type":"string","description":"The type of tab defining the actual implementation type of the abstract Tab","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Abstract representation of a Tab. Available implementations (Type's) are:\r\n      * VariantsTabSetup\r\n      * AttributesOnCategoryTabSetup\r\n      * ClassificationsTabSetup\r\n      * DynamicTabSetup"}}}}
```

## The Struct.App.Api.Models.ProductStructure.VariationDefinition object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.ProductStructure.VariationDefinition":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of variation definition","format":"uuid"},"Alias":{"type":"string","description":"Unique human readable identifier for variation definition","nullable":true},"Name":{"type":"string","description":"Presented name of variation definition in backoffice","nullable":true},"NameConfiguration":{"$ref":"#/components/schemas/Struct.App.Api.Models.DataConfiguration.NameConfiguration"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uid of the attributes which are defining for variants using this variation definition (eg. uid of color attribute, uids of color and size attribute etc.)","nullable":true},"SortOrder":{"type":"integer","description":"The presented sortorder of the variation definition in backoffice","format":"int32"}},"additionalProperties":false,"description":"Variation definition defines how variants of a product differ from each other - eg. what are the defining attributes (color, color and size, width and height etc.)"},"Struct.App.Api.Models.DataConfiguration.NameConfiguration":{"type":"object","properties":{"NamePattern":{"type":"string","description":"Pattern defining how attribute values shall be concatenated to form a name. Ex. {0} - {1}","nullable":true},"NameAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Uids of attributes to use in rendering. Number of attributes must match number of referenced attributes in NamePattern","nullable":true}},"additionalProperties":false,"description":"Definition on how to generate names for items"}}}}
```

## The Struct.App.Api.Models.Publication.DataOnlyRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.DataOnlyRequestModel":{"type":"object","properties":{"TemplateExternalRef":{"type":"string","nullable":true},"LanguageId":{"type":"integer","format":"int32"},"Ids":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"ItemType":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.ItemType"},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.Segment"},"nullable":true},"CatalogueUid":{"type":"string","format":"uuid","nullable":true},"CustomValues":{"nullable":true}},"additionalProperties":false},"Struct.App.Api.Models.Publication.ItemType":{"enum":[20,30,50],"type":"integer","description":"\n\n- `20` = **Product**\n- `30` = **Variant**\n- `50` = **VariantGroup**","format":"int32"},"Struct.App.Api.Models.Publication.Segment":{"type":"object","properties":{"DimensionUid":{"type":"string","format":"uuid"},"SegmentUid":{"type":"string","format":"uuid"}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Publication.ItemType object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.ItemType":{"enum":[20,30,50],"type":"integer","description":"\n\n- `20` = **Product**\n- `30` = **Variant**\n- `50` = **VariantGroup**","format":"int32"}}}}
```

## The Struct.App.Api.Models.Publication.MultiPageRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.MultiPageRequestModel":{"type":"object","properties":{"TemplateExternalRef":{"type":"string","description":"External reference of the template to use for generating the PDF","nullable":true},"LanguageId":{"type":"integer","description":"The id of the language to use for the PDF generation","format":"int32"},"Ids":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of the products to include in the PDF","nullable":true},"ItemType":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.ItemType"},"InsertsFront":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of PDF files in the mediabank to use as inserts on the front of the PDF","nullable":true},"InsertsBack":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of PDF files in the mediabank to use as inserts on the back of the PDF","nullable":true},"PageSize":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.PageSize"},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.Segment"},"description":"The segments to use","nullable":true},"CatalogueUid":{"type":"string","description":"Category data from catalogue","format":"uuid","nullable":true},"CustomValues":{"description":"Custom values to use when generating the PDF","nullable":true}},"additionalProperties":false},"Struct.App.Api.Models.Publication.ItemType":{"enum":[20,30,50],"type":"integer","description":"\n\n- `20` = **Product**\n- `30` = **Variant**\n- `50` = **VariantGroup**","format":"int32"},"Struct.App.Api.Models.Publication.PageSize":{"enum":[1,2,3,4,5,6,7,8,9,10,11,15,20],"type":"integer","description":"\n\n- `1` = **A0**\n- `2` = **A1**\n- `3` = **A2**\n- `4` = **A3**\n- `5` = **A4**\n- `6` = **A5**\n- `7` = **A6**\n- `8` = **A7**\n- `9` = **A8**\n- `10` = **A9**\n- `11` = **Letter**\n- `15` = **A10**\n- `20` = **Letter11x17**","format":"int32"},"Struct.App.Api.Models.Publication.Segment":{"type":"object","properties":{"DimensionUid":{"type":"string","format":"uuid"},"SegmentUid":{"type":"string","format":"uuid"}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Publication.PageSize object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.PageSize":{"enum":[1,2,3,4,5,6,7,8,9,10,11,15,20],"type":"integer","description":"\n\n- `1` = **A0**\n- `2` = **A1**\n- `3` = **A2**\n- `4` = **A3**\n- `5` = **A4**\n- `6` = **A5**\n- `7` = **A6**\n- `8` = **A7**\n- `9` = **A8**\n- `10` = **A9**\n- `11` = **Letter**\n- `15` = **A10**\n- `20` = **Letter11x17**","format":"int32"}}}}
```

## The Struct.App.Api.Models.Publication.PrintPublicationReference object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.PrintPublicationReference":{"type":"object","properties":{"Uid":{"type":"string","description":"Gets or sets the unique identifier of the print publication.","format":"uuid"},"Name":{"type":"string","description":"Gets or sets the name of the print publication.","nullable":true},"CategoryId":{"type":"integer","description":"Gets or sets the category of the print publication.","format":"int32"},"Active":{"type":"boolean","description":"Gets or sets a value indicating whether the print publication is active."}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Publication.Segment object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.Segment":{"type":"object","properties":{"DimensionUid":{"type":"string","format":"uuid"},"SegmentUid":{"type":"string","format":"uuid"}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Publication.SinglePageRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Publication.SinglePageRequestModel":{"type":"object","properties":{"TemplateExternalRef":{"type":"string","description":"The external reference of the template to use for generating the PDF","nullable":true},"LanguageId":{"type":"integer","description":"The id of the language to use for the PDF generation","format":"int32"},"Ids":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of the products to build single page PDF's for","nullable":true},"ItemType":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.ItemType"},"PageSize":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.PageSize"},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Publication.Segment"},"description":"The segments to use","nullable":true},"CatalogueUid":{"type":"string","description":"Category data from catalogue","format":"uuid","nullable":true},"CustomValues":{"description":"Custom values to use when generating the PDF","nullable":true},"DisableCache":{"type":"boolean","description":"Set to disable cache. Cache is default enabled on all single page publications."}},"additionalProperties":false},"Struct.App.Api.Models.Publication.ItemType":{"enum":[20,30,50],"type":"integer","description":"\n\n- `20` = **Product**\n- `30` = **Variant**\n- `50` = **VariantGroup**","format":"int32"},"Struct.App.Api.Models.Publication.PageSize":{"enum":[1,2,3,4,5,6,7,8,9,10,11,15,20],"type":"integer","description":"\n\n- `1` = **A0**\n- `2` = **A1**\n- `3` = **A2**\n- `4` = **A3**\n- `5` = **A4**\n- `6` = **A5**\n- `7` = **A6**\n- `8` = **A7**\n- `9` = **A8**\n- `10` = **A9**\n- `11` = **Letter**\n- `15` = **A10**\n- `20` = **Letter11x17**","format":"int32"},"Struct.App.Api.Models.Publication.Segment":{"type":"object","properties":{"DimensionUid":{"type":"string","format":"uuid"},"SegmentUid":{"type":"string","format":"uuid"}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Roles.CreateRoleModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Roles.CreateRoleModel":{"type":"object","properties":{"Uid":{"type":"string","format":"uuid"},"Name":{"type":"string","nullable":true},"PermissionSetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Roles.PermissionSetup"}},"additionalProperties":false},"Struct.App.Api.Models.Roles.PermissionSetup":{"type":"object","properties":{"AssignedPermissions":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Roles.PermissionSetup object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Roles.PermissionSetup":{"type":"object","properties":{"AssignedPermissions":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Roles.RoleModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Roles.RoleModel":{"type":"object","properties":{"Created":{"type":"string","format":"date-time"},"LastModified":{"type":"string","format":"date-time"},"CreatedBy":{"type":"string","nullable":true},"LastModifiedBy":{"type":"string","nullable":true},"Uid":{"type":"string","format":"uuid"},"Name":{"type":"string","nullable":true},"PermissionSetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Roles.PermissionSetup"}},"additionalProperties":false},"Struct.App.Api.Models.Roles.PermissionSetup":{"type":"object","properties":{"AssignedPermissions":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Roles.UpdateRoleModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Roles.UpdateRoleModel":{"type":"object","properties":{"Uid":{"type":"string","format":"uuid"},"Name":{"type":"string","nullable":true},"PermissionSetup":{"$ref":"#/components/schemas/Struct.App.Api.Models.Roles.PermissionSetup"}},"additionalProperties":false},"Struct.App.Api.Models.Roles.PermissionSetup":{"type":"object","properties":{"AssignedPermissions":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Search.CreateSavedSearchFolderModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.CreateSavedSearchFolderModel":{"type":"object","properties":{"OwnerUserUid":{"type":"string","description":"Uid of the owner of the saved search folder. If null, the folder is available to all users","nullable":true},"Uid":{"type":"string","description":"The Uid of the folder","format":"uuid"},"ParentUid":{"type":"string","description":"Uid of parent folder","format":"uuid","nullable":true},"Name":{"type":"string","description":"Name of the folder","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder for folders","format":"int32"}},"additionalProperties":false,"description":"Used to create a new saved search folder"}}}}
```

## The Struct.App.Api.Models.Search.CreateSavedSearchModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.CreateSavedSearchModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id if the saved search","format":"uuid"},"OwnerUserUid":{"type":"string","description":"The user who owns the saved search. If null, saved search is available to all users","nullable":true},"Name":{"type":"string","description":"Name of the saved search","nullable":true},"SearchEntityTypeModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Search.SavedSearchEntityTypeModel"},"GlobalListUid":{"type":"string","description":"Globallist uid of referencing globallist","format":"uuid","nullable":true},"FolderUid":{"type":"string","description":"Folder id of the saved search","format":"uuid","nullable":true},"Query":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"SortOrder":{"type":"integer","description":"Sortorder of the saved search","format":"int32"},"ViewColumns":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Search.SavedSearchColumnModel"},"description":"The settings for the columns in the ui","nullable":true},"EnableTimeline":{"type":"boolean","description":"Whether or not to enable the timeline"},"TimelineBusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Business unit limitation for timeline calculation","nullable":true}},"additionalProperties":false,"description":"Model to create a new saved search in the api"},"Struct.App.Api.Models.Search.SavedSearchEntityTypeModel":{"enum":[1,2,3,4,5,6],"type":"integer","description":"The type of saved search \n\n- `1` = **Category**: Category type\n- `2` = **Product**: Product type\n- `3` = **VariantGroup**: VariantGroup type\n- `4` = **Variant**: Variant type\n- `5` = **Asset**: Asset type\n- `6` = **GlobalList**: Globallist type","format":"int32"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Search.SavedSearchColumnModel":{"type":"object","properties":{"FieldUid":{"type":"string","description":"Uid of the column","nullable":true},"Width":{"type":"integer","description":"Width of the column","format":"int32","nullable":true}},"additionalProperties":false,"description":"Saved search column size in the UI"}}}}
```

## The Struct.App.Api.Models.Search.SavedSearchColumnModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.SavedSearchColumnModel":{"type":"object","properties":{"FieldUid":{"type":"string","description":"Uid of the column","nullable":true},"Width":{"type":"integer","description":"Width of the column","format":"int32","nullable":true}},"additionalProperties":false,"description":"Saved search column size in the UI"}}}}
```

## The Struct.App.Api.Models.Search.SavedSearchEntityTypeModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.SavedSearchEntityTypeModel":{"enum":[1,2,3,4,5,6],"type":"integer","description":"The type of saved search \n\n- `1` = **Category**: Category type\n- `2` = **Product**: Product type\n- `3` = **VariantGroup**: VariantGroup type\n- `4` = **Variant**: Variant type\n- `5` = **Asset**: Asset type\n- `6` = **GlobalList**: Globallist type","format":"int32"}}}}
```

## The Struct.App.Api.Models.Search.SavedSearchFolderModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.SavedSearchFolderModel":{"type":"object","properties":{"OwnerUserUid":{"type":"string","description":"useruid of a potential owner","nullable":true},"Created":{"type":"string","description":"The created datetime in UTC time","format":"date-time"},"LastModified":{"type":"string","description":"The last modified time in UTC time","format":"date-time"},"CreatedBy":{"type":"string","description":"The userUid of the user who originally created the folder","nullable":true},"LastModifiedBy":{"type":"string","description":"The userUid of the user who last modified the folder\r\nIf recently created, this is the same as created by","nullable":true},"Uid":{"type":"string","description":"The Uid of the folder","format":"uuid"},"ParentUid":{"type":"string","description":"Uid of parent folder","format":"uuid","nullable":true},"Name":{"type":"string","description":"Name of the folder","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder for folders","format":"int32"}},"additionalProperties":false,"description":"Model of the saved search folder"}}}}
```

## The Struct.App.Api.Models.Search.SavedSearchModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.SavedSearchModel":{"type":"object","properties":{"Uid":{"type":"string","description":"The uid of the saved search","format":"uuid"},"Created":{"type":"string","description":"The created time in UTC time","format":"date-time"},"CreatedBy":{"type":"string","description":"The user who created the safe search","nullable":true},"LastMofidied":{"type":"string","description":"The last modified time in UTC time\r\n<remarks>Same as created time if the saved search hasn't been modified</remarks>","format":"date-time"},"LastModifiedBy":{"type":"string","description":"The user who last modified the saved search\r\n<remarks>Same as createdBy if the saved search hasn't been modified</remarks>","nullable":true},"OwnerUserUid":{"type":"string","description":"Potential owner of the saved search","nullable":true},"FailedCalculationCounter":{"type":"integer","description":"The number of times this saved search has failed","format":"int32"},"FailedMessage":{"type":"string","description":"The message describing why this saved search has failed","nullable":true},"Name":{"type":"string","description":"Name of the saved search","nullable":true},"SearchEntityTypeModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Search.SavedSearchEntityTypeModel"},"GlobalListUid":{"type":"string","description":"Globallist uid of referencing globallist","format":"uuid","nullable":true},"FolderUid":{"type":"string","description":"Folder id of the saved search","format":"uuid","nullable":true},"Query":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"SortOrder":{"type":"integer","description":"Sortorder of the saved search","format":"int32"},"ViewColumns":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Search.SavedSearchColumnModel"},"description":"The settings for the columns in the ui","nullable":true},"EnableTimeline":{"type":"boolean","description":"Whether or not to enable the timeline"},"TimelineBusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Business unit limitation for timeline calculation","nullable":true}},"additionalProperties":false,"description":"The saved search api model"},"Struct.App.Api.Models.Search.SavedSearchEntityTypeModel":{"enum":[1,2,3,4,5,6],"type":"integer","description":"The type of saved search \n\n- `1` = **Category**: Category type\n- `2` = **Product**: Product type\n- `3` = **VariantGroup**: VariantGroup type\n- `4` = **Variant**: Variant type\n- `5` = **Asset**: Asset type\n- `6` = **GlobalList**: Globallist type","format":"int32"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Search.SavedSearchColumnModel":{"type":"object","properties":{"FieldUid":{"type":"string","description":"Uid of the column","nullable":true},"Width":{"type":"integer","description":"Width of the column","format":"int32","nullable":true}},"additionalProperties":false,"description":"Saved search column size in the UI"}}}}
```

## The Struct.App.Api.Models.Search.UpdateSavedSearchFolderModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.UpdateSavedSearchFolderModel":{"type":"object","properties":{"Uid":{"type":"string","description":"The Uid of the folder","format":"uuid"},"ParentUid":{"type":"string","description":"Uid of parent folder","format":"uuid","nullable":true},"Name":{"type":"string","description":"Name of the folder","nullable":true},"SortOrder":{"type":"integer","description":"Sortorder for folders","format":"int32"}},"additionalProperties":false,"description":"Model used to update saved search folder"}}}}
```

## The Struct.App.Api.Models.Search.UpdateSavedSearchModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Search.UpdateSavedSearchModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id if the saved search","format":"uuid"},"OwnerUserUid":{"type":"string","description":"The user who owns the saved search. If null, saved search is available to all users","nullable":true},"Name":{"type":"string","description":"Name of the saved search","nullable":true},"SearchEntityTypeModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Search.SavedSearchEntityTypeModel"},"GlobalListUid":{"type":"string","description":"Globallist uid of referencing globallist","format":"uuid","nullable":true},"FolderUid":{"type":"string","description":"Folder id of the saved search","format":"uuid","nullable":true},"Query":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"},"SortOrder":{"type":"integer","description":"Sortorder of the saved search","format":"int32"},"ViewColumns":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Search.SavedSearchColumnModel"},"description":"The settings for the columns in the ui","nullable":true},"EnableTimeline":{"type":"boolean","description":"Whether or not to enable the timeline"},"TimelineBusinessUnits":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Business unit limitation for timeline calculation","nullable":true}},"additionalProperties":false,"description":"Model to update a saved search in the api"},"Struct.App.Api.Models.Search.SavedSearchEntityTypeModel":{"enum":[1,2,3,4,5,6],"type":"integer","description":"The type of saved search \n\n- `1` = **Category**: Category type\n- `2` = **Product**: Product type\n- `3` = **VariantGroup**: VariantGroup type\n- `4` = **Variant**: Variant type\n- `5` = **Asset**: Asset type\n- `6` = **GlobalList**: Globallist type","format":"int32"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"},"Struct.App.Api.Models.Search.SavedSearchColumnModel":{"type":"object","properties":{"FieldUid":{"type":"string","description":"Uid of the column","nullable":true},"Width":{"type":"integer","description":"Width of the column","format":"int32","nullable":true}},"additionalProperties":false,"description":"Saved search column size in the UI"}}}}
```

## The Struct.App.Api.Models.Security.PermissionGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Security.PermissionGroupModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of permission group","format":"uuid"},"Name":{"type":"string","description":"Name of permission group","nullable":true},"IsSystemPermissionGroup":{"type":"boolean","description":"Is system permission group (readonly)"}},"additionalProperties":false,"description":"Represents a group of permissions"}}}}
```

## The Struct.App.Api.Models.Security.PermissionModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Security.PermissionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of permission","format":"uuid"},"PermissionGroupUid":{"type":"string","description":"Uid of group to place permission in","format":"uuid"},"PermissionName":{"type":"string","description":"Name of permission","nullable":true},"Description":{"type":"string","description":"Description of permission","nullable":true},"IsSystemPermission":{"type":"boolean","description":"Is system permission (readonly)"}},"additionalProperties":false,"description":"Representing a permission in the system"}}}}
```

## The Struct.App.Api.Models.Shared.BooleanOperator object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"}}}}
```

## The Struct.App.Api.Models.Shared.BusinessUnitRelationModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Shared.EntityReferenceDetail object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.Shared.IdentifierBatchModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.IdentifierBatchModel":{"type":"object","properties":{"IdentifierAlias":{"type":"string","description":"The alias of the identifier","nullable":true},"Identifiers":{"type":"array","items":{"type":"string"},"description":"Array of identifiers to return internal ids for","nullable":true}},"additionalProperties":false,"description":"Provide an identifier alias along with an array of identifiers to get the internal entity ids matching those identifiers"}}}}
```

## The Struct.App.Api.Models.Shared.ItemListHeader object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.ItemListHeader":{"type":"object","properties":{"FieldUid":{"type":"string","nullable":true},"FieldName":{"type":"string","nullable":true},"FieldType":{"type":"string","nullable":true},"SupportsSearching":{"type":"boolean"},"SupportsSorting":{"type":"boolean"}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Shared.ListItem object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.ListItem":{"type":"object","properties":{"Id":{"type":"integer","format":"int32"},"ShownValues":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Shared.LocalizedData\`1\[System.String] object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.LocalizedData`1[System.String]":{"type":"object","properties":{"CultureCode":{"type":"string","description":"ISO culture code of the value","nullable":true},"Data":{"type":"string","description":"The localized value","nullable":true}},"additionalProperties":false,"description":"Model for holding localized data representations for attribute values"}}}}
```

## The Struct.App.Api.Models.Shared.QueryModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"}}}}
```

## The Struct.App.Api.Models.Shared.QueryableField object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.QueryableField":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of field in PIM","nullable":true},"Name":{"type":"string","description":"The display name of the field","nullable":true},"SupportsSorting":{"type":"boolean","description":"If true field can be used for sorting"}},"additionalProperties":false,"description":"Representation of a queryable field in PIM"}}}}
```

## The Struct.App.Api.Models.Shared.SearchModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.SearchModel":{"type":"object","properties":{"IncludeArchived":{"type":"boolean","description":"Include archived items in result"},"QueryModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Search model used for searching products or variants in PIM"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"}}}}
```

## The Struct.App.Api.Models.Shared.SearchPagedModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.SearchPagedModel":{"type":"object","properties":{"Page":{"type":"integer","format":"int32"},"PageSize":{"type":"integer","format":"int32","nullable":true},"FieldUids":{"type":"array","items":{"type":"string"},"nullable":true},"SortByFieldUid":{"type":"string","nullable":true},"SortDescending":{"type":"boolean","nullable":true},"IncludeArchived":{"type":"boolean","description":"Include archived items in result"},"QueryModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryModel"}},"additionalProperties":false,"description":"Extended search model used for searching products or variants in PIM with support for paging and sorting"},"Struct.App.Api.Models.Shared.QueryModel":{"type":"object","properties":{"BooleanOperator":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BooleanOperator"},"QueryModelType":{"type":"string","description":"The type of query model. Name matches exact name of concrete model implementation","nullable":true,"readOnly":true}},"additionalProperties":false,"description":"Definition of general query model"},"Struct.App.Api.Models.Shared.BooleanOperator":{"enum":[0,1],"type":"integer","description":"Boolean operator \n\n- `0` = **And**: All conditions must be met\n- `1` = **Or**: At least one condition must be met","format":"int32"}}}}
```

## The Struct.App.Api.Models.Shared.SearchResultModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.SearchResultModel":{"type":"object","properties":{"TotalHits":{"type":"integer","format":"int32"},"Page":{"type":"integer","format":"int32"},"PageSize":{"type":"integer","format":"int32"},"TotalPages":{"type":"integer","format":"int32"},"ItemListHeaders":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ItemListHeader"},"nullable":true},"ListItems":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ListItem"},"nullable":true}},"additionalProperties":false},"Struct.App.Api.Models.Shared.ItemListHeader":{"type":"object","properties":{"FieldUid":{"type":"string","nullable":true},"FieldName":{"type":"string","nullable":true},"FieldType":{"type":"string","nullable":true},"SupportsSearching":{"type":"boolean"},"SupportsSorting":{"type":"boolean"}},"additionalProperties":false},"Struct.App.Api.Models.Shared.ListItem":{"type":"object","properties":{"Id":{"type":"integer","format":"int32"},"ShownValues":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Shared.ValueIncludeMode object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"}}}}
```

## The Struct.App.Api.Models.Transaction.EntityRevisionChangeModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.EntityRevisionChangeModel":{"type":"object","properties":{"EntityType":{"type":"string","description":"Type of entity","nullable":true},"EntityId":{"type":"string","description":"The unique id of the entity","nullable":true},"RevisionNo":{"type":"integer","description":"The revision number assigned to the entity in this transaction","format":"int32"},"DataType":{"type":"string","description":"Reference to the type of data change that was made for this entity in this revision","nullable":true}},"additionalProperties":false,"description":"Represents a change made to an entity in a specific revision"}}}}
```

## The Struct.App.Api.Models.Transaction.EntityRevisionChangeRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.EntityRevisionChangeRequestModel":{"type":"object","properties":{"EntityType":{"type":"string","description":"Type of entity","nullable":true},"EntityId":{"type":"string","description":"Unique id of entity","nullable":true},"RevisionNo":{"type":"integer","description":"Revision number","format":"int32"}},"additionalProperties":false,"description":"Model for requesting revision changes"}}}}
```

## The Struct.App.Api.Models.Transaction.ItemRevisionChange object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.ItemRevisionChange":{"type":"object","properties":{"RevisionNo":{"type":"integer","format":"int32"},"RevisionValue":{"type":"string","nullable":true},"ValueBefore":{"type":"string","nullable":true},"Timestamp":{"type":"string","format":"date-time"},"Username":{"type":"string","nullable":true},"TransactionType":{"type":"string","nullable":true},"TransactionUid":{"type":"string","format":"uuid"},"NewValue":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Transaction.ItemRevisionHistory object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.ItemRevisionHistory":{"type":"object","properties":{"FieldName":{"type":"string","nullable":true},"LastChange":{"$ref":"#/components/schemas/Struct.App.Api.Models.Transaction.ItemRevisionChange"},"ItemRevisionChange":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Transaction.ItemRevisionChange"},"nullable":true}},"additionalProperties":false},"Struct.App.Api.Models.Transaction.ItemRevisionChange":{"type":"object","properties":{"RevisionNo":{"type":"integer","format":"int32"},"RevisionValue":{"type":"string","nullable":true},"ValueBefore":{"type":"string","nullable":true},"Timestamp":{"type":"string","format":"date-time"},"Username":{"type":"string","nullable":true},"TransactionType":{"type":"string","nullable":true},"TransactionUid":{"type":"string","format":"uuid"},"NewValue":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Transaction.TransactionEntityModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.TransactionEntityModel":{"type":"object","properties":{"EntityType":{"type":"string","description":"Type of entity","nullable":true},"EntityId":{"type":"string","description":"The unique id of the entity","nullable":true},"RevisionNo":{"type":"integer","description":"The revision number assigned to the entity in this transaction","format":"int32"},"TransactionUid":{"type":"string","description":"Unique id of the transaction","format":"uuid"}},"additionalProperties":false,"description":"Represents information on an entity that is changed in a specific transaction"}}}}
```

## The Struct.App.Api.Models.Transaction.TransactionModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.TransactionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the transaction","format":"uuid"},"TransactionType":{"type":"string","description":"Description of the type of transaction","nullable":true},"Username":{"type":"string","description":"Username of the user who performed the transaction","nullable":true},"StartTimestamp":{"type":"string","description":"The timestamp when the transaction was started","format":"date-time"},"CommitTimestamp":{"type":"string","description":"The timestamp when the transaction was committed","format":"date-time"}},"additionalProperties":false,"description":"A transaction represents a single unit of work in the system, in which one or more entities have been created, updated or deleted"}}}}
```

## The Struct.App.Api.Models.Transaction.TransactionSearchResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Transaction.TransactionSearchResult":{"type":"object","properties":{"TotalCount":{"type":"integer","description":"The total number of transactions contained in the search result","format":"int32"},"Page":{"type":"integer","description":"The current page which results are returned for","format":"int32"},"Transactions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Transaction.TransactionModel"},"description":"Transactions for the current page of the search result","nullable":true}},"additionalProperties":false,"description":"Represents a result from a transaction search"},"Struct.App.Api.Models.Transaction.TransactionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the transaction","format":"uuid"},"TransactionType":{"type":"string","description":"Description of the type of transaction","nullable":true},"Username":{"type":"string","description":"Username of the user who performed the transaction","nullable":true},"StartTimestamp":{"type":"string","description":"The timestamp when the transaction was started","format":"date-time"},"CommitTimestamp":{"type":"string","description":"The timestamp when the transaction was committed","format":"date-time"}},"additionalProperties":false,"description":"A transaction represents a single unit of work in the system, in which one or more entities have been created, updated or deleted"}}}}
```

## The Struct.App.Api.Models.User.InviteUserModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.User.InviteUserModel":{"type":"object","properties":{"UserEmail":{"type":"string","description":"Email of the user to invite","nullable":true},"TenantRoleUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Roles to assign to the user","nullable":true},"TenantUserGroupUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"User groups to assign to the user","nullable":true},"Message":{"type":"string","description":"Message to include in the invitation","nullable":true}},"additionalProperties":false,"description":"Model for inviting a user to a tenant"}}}}
```

## The Struct.App.Api.Models.User.UpdateUserModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.User.UpdateUserModel":{"type":"object","properties":{"UserUid":{"type":"string","description":"The unique identifier of the user","nullable":true},"Roles":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The roles to assign to the user","nullable":true},"UserGroups":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The user groups to assign to the user","nullable":true}},"additionalProperties":false,"description":"Represents a model for updating a user"}}}}
```

## The Struct.App.Api.Models.User.UserModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.User.UserModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier for the user","nullable":true},"Email":{"type":"string","description":"Email address for the user","nullable":true},"Firstname":{"type":"string","description":"Firstname of the user","nullable":true},"Lastname":{"type":"string","description":"Lastname of the user","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.User.UserStatus"},"UserGroups":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Groups the user is a member of","nullable":true},"Roles":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Roles the user is a member of","nullable":true}},"additionalProperties":false,"description":"Represents a user in the tenant"},"Struct.App.Api.Models.User.UserStatus":{"enum":[0,1,2],"type":"integer","description":"Represents a status for a user \n\n- `0` = **Invited**: User has been invited but not yet activated\n- `1` = **Active**: User is active and can log in\n- `2` = **Disabled**: User is disabled and cannot log in","format":"int32"}}}}
```

## The Struct.App.Api.Models.User.UserStatus object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.User.UserStatus":{"enum":[0,1,2],"type":"integer","description":"Represents a status for a user \n\n- `0` = **Invited**: User has been invited but not yet activated\n- `1` = **Active**: User is active and can log in\n- `2` = **Disabled**: User is disabled and cannot log in","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserGroup.CreateUserGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserGroup.CreateUserGroupModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier for the user group","format":"uuid"},"Name":{"type":"string","description":"Name of the user group","nullable":true},"Languages":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupLanguageReference"},"description":"Languages that the user group has access to","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference"},"description":"Segments that the user group has access to","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference"},"description":"Business units that the user group has access to","nullable":true}},"additionalProperties":false,"description":"Model for creating a user group"},"Struct.App.Api.Models.UserGroup.UserGroupLanguageReference":{"type":"object","properties":{"LanguageId":{"type":"integer","description":"Id of the language the user group has access to","format":"int32"},"ReadOnly":{"type":"boolean","description":"Indicate whether the user group has read access to the language"}},"additionalProperties":false,"description":"Representation of a user groups language access"},"Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference":{"type":"object","properties":{"SegmentUid":{"type":"string","description":"Unique identifier of the dimension segment","format":"uuid"},"ReadOnly":{"type":"boolean","description":"Whether the user group has read access to the dimension segment"}},"additionalProperties":false,"description":"Representation of a dimension segment a user group has access to"},"Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference":{"type":"object","properties":{"BusinessUnitUid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"ReadOnly":{"type":"boolean","description":"If this user group only has readonly access to this business unit"}},"additionalProperties":false,"description":"Represents a business unit reference for a user group"}}}}
```

## The Struct.App.Api.Models.UserGroup.UpdateUserGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserGroup.UpdateUserGroupModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique identifier for the user group","format":"uuid"},"Name":{"type":"string","description":"Name of the user group","nullable":true},"Languages":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupLanguageReference"},"description":"Languages that the user group has access to","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference"},"description":"Segments that the user group has access to","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference"},"description":"Business units that the user group has access to","nullable":true}},"additionalProperties":false,"description":"Update model for a user group"},"Struct.App.Api.Models.UserGroup.UserGroupLanguageReference":{"type":"object","properties":{"LanguageId":{"type":"integer","description":"Id of the language the user group has access to","format":"int32"},"ReadOnly":{"type":"boolean","description":"Indicate whether the user group has read access to the language"}},"additionalProperties":false,"description":"Representation of a user groups language access"},"Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference":{"type":"object","properties":{"SegmentUid":{"type":"string","description":"Unique identifier of the dimension segment","format":"uuid"},"ReadOnly":{"type":"boolean","description":"Whether the user group has read access to the dimension segment"}},"additionalProperties":false,"description":"Representation of a dimension segment a user group has access to"},"Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference":{"type":"object","properties":{"BusinessUnitUid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"ReadOnly":{"type":"boolean","description":"If this user group only has readonly access to this business unit"}},"additionalProperties":false,"description":"Represents a business unit reference for a user group"}}}}
```

## The Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference":{"type":"object","properties":{"BusinessUnitUid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"ReadOnly":{"type":"boolean","description":"If this user group only has readonly access to this business unit"}},"additionalProperties":false,"description":"Represents a business unit reference for a user group"}}}}
```

## The Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference":{"type":"object","properties":{"SegmentUid":{"type":"string","description":"Unique identifier of the dimension segment","format":"uuid"},"ReadOnly":{"type":"boolean","description":"Whether the user group has read access to the dimension segment"}},"additionalProperties":false,"description":"Representation of a dimension segment a user group has access to"}}}}
```

## The Struct.App.Api.Models.UserGroup.UserGroupLanguageReference object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserGroup.UserGroupLanguageReference":{"type":"object","properties":{"LanguageId":{"type":"integer","description":"Id of the language the user group has access to","format":"int32"},"ReadOnly":{"type":"boolean","description":"Indicate whether the user group has read access to the language"}},"additionalProperties":false,"description":"Representation of a user groups language access"}}}}
```

## The Struct.App.Api.Models.UserGroup.UserGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserGroup.UserGroupModel":{"type":"object","properties":{"Created":{"type":"string","description":"Date and time when the user group was created","format":"date-time"},"LastModified":{"type":"string","description":"Date and time when the user group was last modified","format":"date-time"},"CreatedBy":{"type":"string","description":"User that created the user group","nullable":true},"LastModifiedBy":{"type":"string","description":"User that last modified the user group","nullable":true},"Uid":{"type":"string","description":"Unique identifier for the user group","format":"uuid"},"Name":{"type":"string","description":"Name of the user group","nullable":true},"Languages":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupLanguageReference"},"description":"Languages that the user group has access to","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference"},"description":"Segments that the user group has access to","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference"},"description":"Business units that the user group has access to","nullable":true}},"additionalProperties":false,"description":"Model used for UserGroups"},"Struct.App.Api.Models.UserGroup.UserGroupLanguageReference":{"type":"object","properties":{"LanguageId":{"type":"integer","description":"Id of the language the user group has access to","format":"int32"},"ReadOnly":{"type":"boolean","description":"Indicate whether the user group has read access to the language"}},"additionalProperties":false,"description":"Representation of a user groups language access"},"Struct.App.Api.Models.UserGroup.UserGroupDimensionSegmentReference":{"type":"object","properties":{"SegmentUid":{"type":"string","description":"Unique identifier of the dimension segment","format":"uuid"},"ReadOnly":{"type":"boolean","description":"Whether the user group has read access to the dimension segment"}},"additionalProperties":false,"description":"Representation of a dimension segment a user group has access to"},"Struct.App.Api.Models.UserGroup.UserGroupBusinessUnitReference":{"type":"object","properties":{"BusinessUnitUid":{"type":"string","description":"Unique identifier of the business unit","format":"uuid"},"ReadOnly":{"type":"boolean","description":"If this user group only has readonly access to this business unit"}},"additionalProperties":false,"description":"Represents a business unit reference for a user group"}}}}
```

## The Struct.App.Api.Models.UserTask.CreateUserTaskCommentModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.CreateUserTaskCommentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of comment","format":"uuid","nullable":true},"Comment":{"type":"string","description":"Comment itself","nullable":true}},"additionalProperties":false,"description":"Model used to create comment on a user task"}}}}
```

## The Struct.App.Api.Models.UserTask.CreateUserTaskModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.CreateUserTaskModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of user task","format":"uuid","nullable":true},"AssignedUserGroups":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Ids of user groups to which the task is assigned","nullable":true},"AssignedUsers":{"type":"array","items":{"type":"string"},"description":"Ids of specific users to which the task is assigned","nullable":true},"Title":{"type":"string","description":"Title for the task","nullable":true},"Description":{"type":"string","description":"Description of the task","nullable":true},"Deadline":{"type":"string","description":"Deadline for the task, if any","format":"date-time","nullable":true},"AttachedEntities":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityModel"},"description":"Entities in the system attached to this task","nullable":true}},"additionalProperties":false,"description":"Model used to create a new user task"},"Struct.App.Api.Models.UserTask.UserTaskEntityModel":{"type":"object","properties":{"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityType"},"EntityId":{"type":"string","description":"Id of entity, represented as string to support non-integer ids in the future","nullable":true}},"additionalProperties":false,"description":"Represents an attached entity when creating or updating a user task"},"Struct.App.Api.Models.UserTask.UserTaskEntityType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Represents a type of an entity attached to a user task \n\n- `0` = **Category**: Category entity\n- `1` = **Product**: Product entity\n- `2` = **Variant**: Variant entity\n- `3` = **VariantGroup**: Variant groups entity\n- `4` = **Asset**: Asset entity\n- `5` = **GlobalListValue**: Global list value entity","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UpdateUserTaskCommentModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UpdateUserTaskCommentModel":{"type":"object","properties":{"Uid":{"type":"string","format":"uuid"},"Comment":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.UserTask.UpdateUserTaskModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UpdateUserTaskModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the task","format":"uuid","nullable":true},"Deadline":{"type":"string","description":"Deadline for the task, if any","format":"date-time","nullable":true},"Title":{"type":"string","description":"Title for the task","nullable":true},"Description":{"type":"string","description":"Description of the task","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskStatus"},"AssignedUsers":{"type":"array","items":{"type":"string"},"description":"Ids of specific users to which the task is assigned","nullable":true},"AssignedUserGroups":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Ids of user groups to which the task is assigned","nullable":true},"AttachedEntities":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityModel"},"description":"Entities in the system attached to this task","nullable":true}},"additionalProperties":false,"description":"A task assigned to one or more users in the system"},"Struct.App.Api.Models.UserTask.UserTaskStatus":{"enum":[0,1,2,3,4],"type":"integer","description":"Represents a status of a user task \n\n- `0` = **New**: A new task that is not yet been processed\n- `1` = **ReOpened**: An otherwise completed task that has been re-opened\n- `2` = **InProgress**: A task that is currently being worked on\n- `3` = **AwaitingFeedback**: Task is awaiting feedback from someone\n- `4` = **Completed**: Task is completed","format":"int32"},"Struct.App.Api.Models.UserTask.UserTaskEntityModel":{"type":"object","properties":{"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityType"},"EntityId":{"type":"string","description":"Id of entity, represented as string to support non-integer ids in the future","nullable":true}},"additionalProperties":false,"description":"Represents an attached entity when creating or updating a user task"},"Struct.App.Api.Models.UserTask.UserTaskEntityType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Represents a type of an entity attached to a user task \n\n- `0` = **Category**: Category entity\n- `1` = **Product**: Product entity\n- `2` = **Variant**: Variant entity\n- `3` = **VariantGroup**: Variant groups entity\n- `4` = **Asset**: Asset entity\n- `5` = **GlobalListValue**: Global list value entity","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTask object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTask":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the task","format":"uuid"},"Created":{"type":"string","description":"Timestamp at which the task was created","format":"date-time"},"CreatedBy":{"type":"string","description":"Id of the user who created the task","nullable":true},"Deadline":{"type":"string","description":"Deadline for the task, if any","format":"date-time","nullable":true},"Title":{"type":"string","description":"Title for the task","nullable":true},"Description":{"type":"string","description":"Description of the task","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskStatus"},"AssignedUsers":{"type":"array","items":{"type":"string"},"description":"Ids of specific users to which the task is assigned","nullable":true},"AssignedUserGroups":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Ids of user groups to which the task is assigned","nullable":true},"Comments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskComment"},"description":"List of comments made by users to the task","nullable":true},"AttachedEntities":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntity"},"description":"Entities in the system attached to this task","nullable":true}},"additionalProperties":false,"description":"A task assigned to one or more users in the system"},"Struct.App.Api.Models.UserTask.UserTaskStatus":{"enum":[0,1,2,3,4],"type":"integer","description":"Represents a status of a user task \n\n- `0` = **New**: A new task that is not yet been processed\n- `1` = **ReOpened**: An otherwise completed task that has been re-opened\n- `2` = **InProgress**: A task that is currently being worked on\n- `3` = **AwaitingFeedback**: Task is awaiting feedback from someone\n- `4` = **Completed**: Task is completed","format":"int32"},"Struct.App.Api.Models.UserTask.UserTaskComment":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the comment","format":"uuid","nullable":true},"Comment":{"type":"string","description":"The actual comment","nullable":true},"UserId":{"type":"string","description":"Id of the user who created the comment","nullable":true},"Name":{"type":"string","description":"Name of the user who created the comment","nullable":true},"Created":{"type":"string","description":"Timestamp of when the comment was created","format":"date-time"},"LastModified":{"type":"string","description":"Timestamp for the last modification of the comment","format":"date-time","nullable":true},"IsSystemGenerated":{"type":"boolean","description":"Indicates whether the comment was generated automatically by the system"}},"additionalProperties":false,"description":"Represents a comment made to a user task"},"Struct.App.Api.Models.UserTask.UserTaskEntity":{"type":"object","properties":{"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityType"},"EntityId":{"type":"string","description":"Id of entity, represented as string to support non-integer ids in the future","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityStatus"}},"additionalProperties":false,"description":"Represents an attached entity to a user task"},"Struct.App.Api.Models.UserTask.UserTaskEntityType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Represents a type of an entity attached to a user task \n\n- `0` = **Category**: Category entity\n- `1` = **Product**: Product entity\n- `2` = **Variant**: Variant entity\n- `3` = **VariantGroup**: Variant groups entity\n- `4` = **Asset**: Asset entity\n- `5` = **GlobalListValue**: Global list value entity","format":"int32"},"Struct.App.Api.Models.UserTask.UserTaskEntityStatus":{"enum":[0,1],"type":"integer","description":"Represents a status of an attached entity on a user task \n\n- `0` = **Unhandled**: The entity attached to the task has not yet been handled\n- `1` = **Handled**: The entity attached to the task has been handled","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTaskComment object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTaskComment":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of the comment","format":"uuid","nullable":true},"Comment":{"type":"string","description":"The actual comment","nullable":true},"UserId":{"type":"string","description":"Id of the user who created the comment","nullable":true},"Name":{"type":"string","description":"Name of the user who created the comment","nullable":true},"Created":{"type":"string","description":"Timestamp of when the comment was created","format":"date-time"},"LastModified":{"type":"string","description":"Timestamp for the last modification of the comment","format":"date-time","nullable":true},"IsSystemGenerated":{"type":"boolean","description":"Indicates whether the comment was generated automatically by the system"}},"additionalProperties":false,"description":"Represents a comment made to a user task"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTaskEntity object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTaskEntity":{"type":"object","properties":{"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityType"},"EntityId":{"type":"string","description":"Id of entity, represented as string to support non-integer ids in the future","nullable":true},"Status":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityStatus"}},"additionalProperties":false,"description":"Represents an attached entity to a user task"},"Struct.App.Api.Models.UserTask.UserTaskEntityType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Represents a type of an entity attached to a user task \n\n- `0` = **Category**: Category entity\n- `1` = **Product**: Product entity\n- `2` = **Variant**: Variant entity\n- `3` = **VariantGroup**: Variant groups entity\n- `4` = **Asset**: Asset entity\n- `5` = **GlobalListValue**: Global list value entity","format":"int32"},"Struct.App.Api.Models.UserTask.UserTaskEntityStatus":{"enum":[0,1],"type":"integer","description":"Represents a status of an attached entity on a user task \n\n- `0` = **Unhandled**: The entity attached to the task has not yet been handled\n- `1` = **Handled**: The entity attached to the task has been handled","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTaskEntityModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTaskEntityModel":{"type":"object","properties":{"EntityType":{"$ref":"#/components/schemas/Struct.App.Api.Models.UserTask.UserTaskEntityType"},"EntityId":{"type":"string","description":"Id of entity, represented as string to support non-integer ids in the future","nullable":true}},"additionalProperties":false,"description":"Represents an attached entity when creating or updating a user task"},"Struct.App.Api.Models.UserTask.UserTaskEntityType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Represents a type of an entity attached to a user task \n\n- `0` = **Category**: Category entity\n- `1` = **Product**: Product entity\n- `2` = **Variant**: Variant entity\n- `3` = **VariantGroup**: Variant groups entity\n- `4` = **Asset**: Asset entity\n- `5` = **GlobalListValue**: Global list value entity","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTaskEntityStatus object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTaskEntityStatus":{"enum":[0,1],"type":"integer","description":"Represents a status of an attached entity on a user task \n\n- `0` = **Unhandled**: The entity attached to the task has not yet been handled\n- `1` = **Handled**: The entity attached to the task has been handled","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTaskEntityType object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTaskEntityType":{"enum":[0,1,2,3,4,5],"type":"integer","description":"Represents a type of an entity attached to a user task \n\n- `0` = **Category**: Category entity\n- `1` = **Product**: Product entity\n- `2` = **Variant**: Variant entity\n- `3` = **VariantGroup**: Variant groups entity\n- `4` = **Asset**: Asset entity\n- `5` = **GlobalListValue**: Global list value entity","format":"int32"}}}}
```

## The Struct.App.Api.Models.UserTask.UserTaskStatus object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.UserTask.UserTaskStatus":{"enum":[0,1,2,3,4],"type":"integer","description":"Represents a status of a user task \n\n- `0` = **New**: A new task that is not yet been processed\n- `1` = **ReOpened**: An otherwise completed task that has been re-opened\n- `2` = **InProgress**: A task that is currently being worked on\n- `3` = **AwaitingFeedback**: Task is awaiting feedback from someone\n- `4` = **Completed**: Task is completed","format":"int32"}}}}
```

## The Struct.App.Api.Models.Variant.BatchUpdateVariantModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.BatchUpdateVariantModel":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of variant to update","format":"int32"},"UpdateModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.UpdateVariantModel"}},"additionalProperties":false,"description":"Update model for a variant"},"Struct.App.Api.Models.Variant.UpdateVariantModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to move variant to","format":"int32","nullable":true},"IsArchived":{"type":"boolean","description":"Indicate whether the product shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving variant (if IsArchived is true)","format":"uuid","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of variant compared to other variants of the product","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"Sort order of variant compared to other variants in same variant group","format":"int32","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Update model containing the updates to make on a variant. Note that properties with null values will be ignored and will not cause an update.\r\nThis means you should only set properties that shall be updated on the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Variant.CreateVariantModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.CreateVariantModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to attach variant to","format":"int32"},"SortOrder":{"type":"integer","description":"Sort order of variant compared to other variants of the product (when null, variant is placed after existing variants)","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"Sort order of variant compared to other variants in same variant group","format":"int32","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model for creating a new variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Variant.InheritedAttributesRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.InheritedAttributesRequestModel":{"type":"object","properties":{"ProductIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"The product ids to get inherited attributes for","nullable":true},"InheritedAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The attribute uids to get inherited attributes for","nullable":true}},"additionalProperties":false,"description":"Request model for getting inheritedAttributes for a list of products"}}}}
```

## The Struct.App.Api.Models.Variant.InheritedAttributesResponseModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.InheritedAttributesResponseModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"The product id of the products that owns the attributeValues","format":"int32"},"VariantId":{"type":"integer","description":"The variant id that inherits the attributeValues","format":"int32"},"InheritedAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The attribute uids that are inherited","nullable":true}},"additionalProperties":false,"description":"Request model for getting inheritedAttributes for a list of products"}}}}
```

## The Struct.App.Api.Models.Variant.UpdateVariantModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.UpdateVariantModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Id of product to move variant to","format":"int32","nullable":true},"IsArchived":{"type":"boolean","description":"Indicate whether the product shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving variant (if IsArchived is true)","format":"uuid","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of variant compared to other variants of the product","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"Sort order of variant compared to other variants in same variant group","format":"int32","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Update model containing the updates to make on a variant. Note that properties with null values will be ignored and will not cause an update.\r\nThis means you should only set properties that shall be updated on the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Variant.VariantAttributeValuesModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.VariantAttributeValuesModel":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of variant","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model containing requested variant attribute values"}}}}
```

## The Struct.App.Api.Models.Variant.VariantModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.VariantModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of variant","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"ProductId":{"type":"integer","description":"Id of product to which variant is attached","format":"int32"},"SortOrder":{"type":"integer","description":"#Available from v.3.2.0\r\nThe sort order of the variant compared to other variants of this product","format":"int32"},"VariantGroupId":{"type":"integer","description":"#Available from v.3.11.0\r\nThe variant group this variant is connected to, if any","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"#Available from v.3.11.0\r\nThe sortorder relative to other variants connected to the same variant group","format":"int32","nullable":true},"Created":{"type":"string","description":"Timestamp of variant creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The product structure used by this variant","format":"uuid"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The unique ids of the attributes acting as defining attributes for this variant","nullable":true},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant is associated with","nullable":true}},"additionalProperties":false,"description":"Variant model holding basic information about the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Variant.VariantReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.VariantReferences":{"type":"object","properties":{"VariantId":{"type":"integer","description":"Id of the referenced variant","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this variant","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this variant","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this variant","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this variant","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this variant","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this variant","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a variant"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.Variant.VariantValuesRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.VariantValuesRequestModel":{"type":"object","properties":{"VariantIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of products to return","nullable":true},"IncludeValues":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ValueIncludeMode"},"Scopes":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Scopes, define which scopes to return values for here","nullable":true},"Aliases":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Aliases, define aliases of the attributes to include values for","nullable":true},"Uids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"If IncludeValues is Uids, define uids of the attributes to include values for","nullable":true},"LimitToCultureCodes":{"type":"array","items":{"type":"string"},"description":"Only return values for specific languages","nullable":true},"LimitToSegments":{"type":"array","items":{"type":"string"},"description":"Only return values for specific dimension segments","nullable":true},"GlobalListValueReferencesOnly":{"type":"boolean","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values"},"FromTimestamp":{"type":"string","description":"Get attribute values back in time","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Define which categories to fetch data for and what data to fetch"},"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"}}}}
```

## The Struct.App.Api.Models.Variant.VariantsResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Variant.VariantsResultSet":{"type":"object","properties":{"Variants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Variant.VariantModel"},"description":"Variants in result set","nullable":true},"Total":{"type":"integer","description":"The total number of items","format":"int32"},"Remaining":{"type":"integer","description":"The remaining items that lie after the last id of the item in this result set","format":"int32"},"LastId":{"type":"integer","description":"The id of the last item in this result set","format":"int32"}},"additionalProperties":false,"description":"Result set of variants from a variant query"},"Struct.App.Api.Models.Variant.VariantModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Id of variant","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant (Dictionary of ISO culture code and name)\r\nNote: Available from 3.7.0","nullable":true},"ProductId":{"type":"integer","description":"Id of product to which variant is attached","format":"int32"},"SortOrder":{"type":"integer","description":"#Available from v.3.2.0\r\nThe sort order of the variant compared to other variants of this product","format":"int32"},"VariantGroupId":{"type":"integer","description":"#Available from v.3.11.0\r\nThe variant group this variant is connected to, if any","format":"int32","nullable":true},"VariantGroupSortOrder":{"type":"integer","description":"#Available from v.3.11.0\r\nThe sortorder relative to other variants connected to the same variant group","format":"int32","nullable":true},"Created":{"type":"string","description":"Timestamp of variant creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant was archived","format":"uuid","nullable":true},"ProductStructureUid":{"type":"string","description":"The product structure used by this variant","format":"uuid"},"DefiningAttributes":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The unique ids of the attributes acting as defining attributes for this variant","nullable":true},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant is associated with","nullable":true}},"additionalProperties":false,"description":"Variant model holding basic information about the variant"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.VariantGroup.BatchUpdateVariantGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.BatchUpdateVariantGroupModel":{"type":"object","properties":{"VariantGroupId":{"type":"integer","description":"Id of variant group to update","format":"int32"},"UpdateModel":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.UpdateVariantGroupModel"}},"additionalProperties":false,"description":"Update model for a variant group"},"Struct.App.Api.Models.VariantGroup.UpdateVariantGroupModel":{"type":"object","properties":{"IsArchived":{"type":"boolean","description":"Indicate whether the variant group shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving variant group (if IsArchived is true)","format":"uuid","nullable":true},"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"},"description":"Categories to add the variant group to","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant group","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant group","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Update model containing the updates to make on a variant group. Note that properties with null values will be ignored and will not cause an update.\r\nThis means you should only set properties that shall be updated on the variant group"},"Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the variant group is placed in","format":"int32"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of variant groups through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the variant group in this category","format":"int32"}},"additionalProperties":false,"description":"Holds information on variant group placement in categories"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.VariantGroup.CreateVariantGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.CreateVariantGroupModel":{"type":"object","properties":{"ProductId":{"type":"integer","description":"Product to associate variant group to","format":"int32"},"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"},"description":"Classifications for variant group","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant group","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant group","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Model used to create a new variant group"},"Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the variant group is placed in","format":"int32"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of variant groups through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the variant group in this category","format":"int32"}},"additionalProperties":false,"description":"Holds information on variant group placement in categories"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.VariantGroup.UpdateVariantGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.UpdateVariantGroupModel":{"type":"object","properties":{"IsArchived":{"type":"boolean","description":"Indicate whether the variant group shall be archived or un-archived","nullable":true},"ArchiveReason":{"type":"string","description":"Reference to the archive reason when archiving variant group (if IsArchived is true)","format":"uuid","nullable":true},"Classifications":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"},"description":"Categories to add the variant group to","nullable":true},"WorkflowStateUid":{"type":"string","description":"Workflow state to set on the variant group","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"Business unit relations to set on the variant group","nullable":true},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Update model containing the updates to make on a variant group. Note that properties with null values will be ignored and will not cause an update.\r\nThis means you should only set properties that shall be updated on the variant group"},"Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the variant group is placed in","format":"int32"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of variant groups through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the variant group in this category","format":"int32"}},"additionalProperties":false,"description":"Holds information on variant group placement in categories"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.VariantGroup.VariantGroupAttributeValuesModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.VariantGroupAttributeValuesModel":{"type":"object","properties":{"VariantGroupId":{"type":"integer","description":"Id of variant group","format":"int32"},"Values":{"type":"object","additionalProperties":{},"description":"Dictionary of attribute alias and the corresponding attribute value as an object representation","nullable":true}},"additionalProperties":false,"description":"Attribute values for a variant group"}}}}
```

## The Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel":{"type":"object","properties":{"CategoryId":{"type":"integer","description":"Id of category the variant group is placed in","format":"int32"},"OwnerReference":{"type":"string","description":"A reference to where this classification comes from. If the classification is made in the PIM interface, this will be null.\r\nWhen creating or updating classifications of variant groups through API this can be set to any value. Thus, classifications made from the \r\nAPI can be distinguished from those made directly in the UI","nullable":true},"SortOrder":{"type":"integer","description":"Sort order of the variant group in this category","format":"int32"}},"additionalProperties":false,"description":"Holds information on variant group placement in categories"}}}}
```

## The Struct.App.Api.Models.VariantGroup.VariantGroupModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.VariantGroupModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Unique id of the variant group","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant group (Dictionary of ISO culture code and name)","nullable":true},"Created":{"type":"string","description":"Timestamp of the variant group creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant group","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant group update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant group","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant group is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant group was archived","format":"uuid","nullable":true},"ProductId":{"type":"integer","description":"The id of the product to which the variant group is associated","format":"int32"},"SortOrder":{"type":"integer","description":"The sortorder of the variant group in relation to its associated product","format":"int32"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant group","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant group is associated with","nullable":true}},"additionalProperties":false,"description":"Represents the root information always present on a variant group"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.VariantGroup.VariantGroupReferences object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.VariantGroupReferences":{"type":"object","properties":{"VariantGroupId":{"type":"integer","description":"Id of the referenced variant group","format":"int32"},"ReferencingCategories":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of categories referencing this variant group","nullable":true},"ReferencingProducts":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of products referencing this variant group","nullable":true},"ReferencingVariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variant groups referencing this variant group","nullable":true},"ReferencingVariants":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of variants referencing this variant group","nullable":true},"ReferencingAssets":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.EntityReferenceDetail"},"description":"List of assets referencing this variant group","nullable":true},"ReferencingGlobalListValues":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of global list values referencing this variant group","nullable":true}},"additionalProperties":false,"description":"Model holding references from other entities to a variant group"},"Struct.App.Api.Models.Shared.EntityReferenceDetail":{"type":"object","properties":{"EntityId":{"type":"integer","description":"The id of the referencing entity","format":"int32"},"AttributeUid":{"type":"string","description":"The attribute on the referencing entity that holds the reference","format":"uuid"}},"additionalProperties":false,"description":"Model holding the attribute reference information for an entity reference"}}}}
```

## The Struct.App.Api.Models.VariantGroup.VariantGroupValuesRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.VariantGroupValuesRequestModel":{"type":"object","properties":{"VariantGroupIds":{"type":"array","items":{"type":"integer","format":"int32"},"description":"Ids of variant groups to return","nullable":true},"IncludeValues":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.ValueIncludeMode"},"Scopes":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Scopes, define which scopes to return values for here","nullable":true},"Aliases":{"type":"array","items":{"type":"string"},"description":"If IncludeValues is Aliases, define aliases of the attributes to include values for","nullable":true},"Uids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"If IncludeValues is Uids, define uids of the attributes to include values for","nullable":true},"LimitToCultureCodes":{"type":"array","items":{"type":"string"},"description":"Only return values for specific languages","nullable":true},"LimitToSegments":{"type":"array","items":{"type":"string"},"description":"Only return values for specific dimension segments","nullable":true},"GlobalListValueReferencesOnly":{"type":"boolean","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values"},"FromTimestamp":{"type":"string","description":"Get attribute values back in time","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Define which categories to fetch data for and what data to fetch"},"Struct.App.Api.Models.Shared.ValueIncludeMode":{"enum":[1,2,3,4,5],"type":"integer","description":"Defines which attribute values to return \n\n- `1` = **All**: Return all attribute values\n- `2` = **Scopes**: Return values for scopes specified in request\n- `3` = **Aliases**: Return values for attribute aliases specified in request\n- `4` = **ScopesAndAliases**: Return values for attributes in specified scopes, plus values in the attributes specified by alias\n- `5` = **Uids**: Return values for attribute uids specified in request","format":"int32"}}}}
```

## The Struct.App.Api.Models.VariantGroup.VariantGroupsResultSet object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.VariantGroup.VariantGroupsResultSet":{"type":"object","properties":{"VariantGroups":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupModel"},"description":"List of variant groups in result set","nullable":true},"Total":{"type":"integer","description":"The total number of items","format":"int32"},"Remaining":{"type":"integer","description":"The remaining items that lie after the last id of the item in this result set","format":"int32"},"LastId":{"type":"integer","description":"The id of the last item in this result set","format":"int32"}},"additionalProperties":false,"description":"Result set of variant groups from a variant group query"},"Struct.App.Api.Models.VariantGroup.VariantGroupModel":{"type":"object","properties":{"Id":{"type":"integer","description":"Unique id of the variant group","format":"int32"},"Name":{"type":"object","additionalProperties":{"type":"string"},"description":"Display name of variant group (Dictionary of ISO culture code and name)","nullable":true},"Created":{"type":"string","description":"Timestamp of the variant group creation","format":"date-time"},"CreatedBy":{"type":"string","description":"Username of the user who created the variant group","nullable":true},"LastModified":{"type":"string","description":"Timestamp of the last variant group update","format":"date-time"},"LastModifiedBy":{"type":"string","description":"Username of the user who made the last change to the variant group","nullable":true},"IsArchived":{"type":"boolean","description":"Indicates whether the variant group is archived"},"ArchiveReason":{"type":"string","description":"The uid of the archive reason selected when the variant group was archived","format":"uuid","nullable":true},"ProductId":{"type":"integer","description":"The id of the product to which the variant group is associated","format":"int32"},"SortOrder":{"type":"integer","description":"The sortorder of the variant group in relation to its associated product","format":"int32"},"WorkflowStateUid":{"type":"string","description":"The uid of the workflow state of the variant group","format":"uuid","nullable":true},"BusinessUnits":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.BusinessUnitRelationModel"},"description":"This business units this variant group is associated with","nullable":true}},"additionalProperties":false,"description":"Represents the root information always present on a variant group"},"Struct.App.Api.Models.Shared.BusinessUnitRelationModel":{"type":"object","properties":{"AccessPolicy":{"type":"string","description":"Access policy for this business unit relation","nullable":true},"BusinessUnitUid":{"type":"string","description":"The business unit uid","format":"uuid"}},"additionalProperties":false,"description":"Represents a relation between an entity and a business unit."}}}}
```

## The Struct.App.Api.Models.Webhook.EventSettings object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Webhook.EventSettings":{"type":"object","properties":{"EventSettingsType":{"type":"string","nullable":true,"readOnly":true}},"additionalProperties":false}}}}
```

## The Struct.App.Api.Models.Webhook.WebhookModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Webhook.WebhookModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of webhook","format":"uuid"},"Title":{"type":"string","description":"Title of webhook","nullable":true},"Url":{"type":"string","description":"Url for the webhook to request when triggered","nullable":true},"Active":{"type":"boolean","description":"Activate / deactivate webhook"},"EnabledEvents":{"type":"array","items":{"type":"string"},"description":"Events this webhook shall act on","nullable":true},"AdvancedSettings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Struct.App.Api.Models.Webhook.EventSettings"},"description":"Advanced settings for events supporting this","nullable":true},"RequestHeaders":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Webhook.WebhookModel_RequestHeader"},"description":"Request headers to be added to webhook requests","nullable":true}},"additionalProperties":false,"description":"Model representing a webhook"},"Struct.App.Api.Models.Webhook.EventSettings":{"type":"object","properties":{"EventSettingsType":{"type":"string","nullable":true,"readOnly":true}},"additionalProperties":false},"Struct.App.Api.Models.Webhook.WebhookModel_RequestHeader":{"type":"object","properties":{"Name":{"type":"string","description":"Name of the header","nullable":true},"Value":{"type":"string","description":"Value of the header","nullable":true}},"additionalProperties":false,"description":"Represents a request header to be added to webhook requests"}}}}
```

## The Struct.App.Api.Models.Webhook.WebhookModel\_RequestHeader object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Webhook.WebhookModel_RequestHeader":{"type":"object","properties":{"Name":{"type":"string","description":"Name of the header","nullable":true},"Value":{"type":"string","description":"Value of the header","nullable":true}},"additionalProperties":false,"description":"Represents a request header to be added to webhook requests"}}}}
```

## The Struct.App.Api.Models.Webhook.WebhookRequestModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Webhook.WebhookRequestModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of this webhook request (Passed in the X-Request-UID header of the request)","format":"uuid"},"WebhookUid":{"type":"string","description":"Unique id of the webhook that triggered the request (Passed in the X-Hook-UID header of the request)","format":"uuid"},"WebhookUrl":{"type":"string","description":"Url that was called","nullable":true},"EventKey":{"type":"string","description":"The key of the event that triggered the event (Passed in the X-Event-Key header of the request)","nullable":true},"EventTimestamp":{"type":"string","description":"Timestamp of the event that triggered the webhook request","format":"date-time"},"RequestTimestamp":{"type":"string","description":"Timestamp of when the webhook request was made","format":"date-time"},"RequestHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The request headers sent in the webhook request","nullable":true},"RequestBody":{"type":"string","description":"The request body sent in the webhook request","nullable":true},"ElapsedMilliseconds":{"type":"integer","description":"The time in ms it took to get a response from the recipient of the request","format":"int64"},"ResponseCode":{"type":"integer","description":"The response code of the webhook request","format":"int32"},"ResponseHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The response headers received from the request","nullable":true},"ParentWebhookRequestUid":{"type":"string","description":"Uid of parent webhook request (only has value, if this is a retry of a failed webhook request)","format":"uuid","nullable":true},"IsRetry":{"type":"boolean","description":"Indicates whether this request is a retry of a previously failed request","readOnly":true}},"additionalProperties":false,"description":"Model representing a webhook request"}}}}
```

## The Struct.App.Api.Models.Webhook.WebhookRequestSearchResult object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Webhook.WebhookRequestSearchResult":{"type":"object","properties":{"WebhookRequests":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Webhook.WebhookRequestModel"},"description":"Webhook requests that matched the criteria","nullable":true},"Page":{"type":"integer","description":"Page of the search request","format":"int32"},"TotalHits":{"type":"integer","description":"Total number of hits in the search","format":"int32"}},"additionalProperties":false,"description":"Model containing response from a webhook request search"},"Struct.App.Api.Models.Webhook.WebhookRequestModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of this webhook request (Passed in the X-Request-UID header of the request)","format":"uuid"},"WebhookUid":{"type":"string","description":"Unique id of the webhook that triggered the request (Passed in the X-Hook-UID header of the request)","format":"uuid"},"WebhookUrl":{"type":"string","description":"Url that was called","nullable":true},"EventKey":{"type":"string","description":"The key of the event that triggered the event (Passed in the X-Event-Key header of the request)","nullable":true},"EventTimestamp":{"type":"string","description":"Timestamp of the event that triggered the webhook request","format":"date-time"},"RequestTimestamp":{"type":"string","description":"Timestamp of when the webhook request was made","format":"date-time"},"RequestHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The request headers sent in the webhook request","nullable":true},"RequestBody":{"type":"string","description":"The request body sent in the webhook request","nullable":true},"ElapsedMilliseconds":{"type":"integer","description":"The time in ms it took to get a response from the recipient of the request","format":"int64"},"ResponseCode":{"type":"integer","description":"The response code of the webhook request","format":"int32"},"ResponseHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The response headers received from the request","nullable":true},"ParentWebhookRequestUid":{"type":"string","description":"Uid of parent webhook request (only has value, if this is a retry of a failed webhook request)","format":"uuid","nullable":true},"IsRetry":{"type":"boolean","description":"Indicates whether this request is a retry of a previously failed request","readOnly":true}},"additionalProperties":false,"description":"Model representing a webhook request"}}}}
```

## The Struct.App.Api.Models.Workflow\.WorkflowModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Workflow.WorkflowModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow","format":"uuid"},"Alias":{"type":"string","description":"Alias of the workflow","nullable":true},"Label":{"type":"string","description":"Label of the workflow","nullable":true},"DefaultStateUid":{"type":"string","description":"The default state of the workflow","format":"uuid"},"States":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Workflow.WorkflowStateModel"},"description":"The states of the workflow","nullable":true},"ProductAssignmentProductStructureUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to products using the product structures","nullable":true},"VariantAssignmentProductStructureUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to variants using the product structures","nullable":true},"CatalogueAssignmentCatalogueUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to categories in the catalogues","nullable":true},"AssetAssignmentAssetTypeUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to asset types","nullable":true},"VariantGroupAssignmentProductStructureUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to variant groups using the product structures","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow"},"Struct.App.Api.Models.Workflow.WorkflowStateModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow state","format":"uuid"},"Alias":{"type":"string","description":"Alias of the workflow state","nullable":true},"Label":{"type":"string","description":"Label of the workflow state","nullable":true},"Transitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Workflow.WorkflowTransitionModel"},"description":"The transitions of the workflow","nullable":true},"Color":{"type":"string","description":"The color of the state in the UI","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow state"},"Struct.App.Api.Models.Workflow.WorkflowTransitionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow transition","format":"uuid"},"TransitionToStateUid":{"type":"string","description":"The state it can transition to","format":"uuid"},"Label":{"type":"string","description":"Label of the workflow transition","nullable":true},"Description":{"type":"string","description":"Description of the workflow transition","nullable":true},"RequiredPermission":{"type":"string","description":"The required permission to use the transition","format":"uuid","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow transition"}}}}
```

## The Struct.App.Api.Models.Workflow\.WorkflowStateModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Workflow.WorkflowStateModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow state","format":"uuid"},"Alias":{"type":"string","description":"Alias of the workflow state","nullable":true},"Label":{"type":"string","description":"Label of the workflow state","nullable":true},"Transitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Workflow.WorkflowTransitionModel"},"description":"The transitions of the workflow","nullable":true},"Color":{"type":"string","description":"The color of the state in the UI","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow state"},"Struct.App.Api.Models.Workflow.WorkflowTransitionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow transition","format":"uuid"},"TransitionToStateUid":{"type":"string","description":"The state it can transition to","format":"uuid"},"Label":{"type":"string","description":"Label of the workflow transition","nullable":true},"Description":{"type":"string","description":"Description of the workflow transition","nullable":true},"RequiredPermission":{"type":"string","description":"The required permission to use the transition","format":"uuid","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow transition"}}}}
```

## The Struct.App.Api.Models.Workflow\.WorkflowTransitionModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Workflow.WorkflowTransitionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow transition","format":"uuid"},"TransitionToStateUid":{"type":"string","description":"The state it can transition to","format":"uuid"},"Label":{"type":"string","description":"Label of the workflow transition","nullable":true},"Description":{"type":"string","description":"Description of the workflow transition","nullable":true},"RequiredPermission":{"type":"string","description":"The required permission to use the transition","format":"uuid","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow transition"}}}}
```

## The Struct.App.Api.Models.Workflow\.WorkflowUpdateModel object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Api.Models.Workflow.WorkflowUpdateModel":{"type":"object","properties":{"MoveEntitiesFromStateUidToStateUid":{"type":"object","additionalProperties":{"type":"string","format":"uuid"},"description":"Move entities from state uid to another state uid when e.g. deleting a state","nullable":true},"Uid":{"type":"string","description":"Unique id of workflow","format":"uuid"},"Alias":{"type":"string","description":"Alias of the workflow","nullable":true},"Label":{"type":"string","description":"Label of the workflow","nullable":true},"DefaultStateUid":{"type":"string","description":"The default state of the workflow","format":"uuid"},"States":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Workflow.WorkflowStateModel"},"description":"The states of the workflow","nullable":true},"ProductAssignmentProductStructureUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to products using the product structures","nullable":true},"VariantAssignmentProductStructureUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to variants using the product structures","nullable":true},"CatalogueAssignmentCatalogueUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to categories in the catalogues","nullable":true},"AssetAssignmentAssetTypeUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to asset types","nullable":true},"VariantGroupAssignmentProductStructureUids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Assignment of the workflow to variant groups using the product structures","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow"},"Struct.App.Api.Models.Workflow.WorkflowStateModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow state","format":"uuid"},"Alias":{"type":"string","description":"Alias of the workflow state","nullable":true},"Label":{"type":"string","description":"Label of the workflow state","nullable":true},"Transitions":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Workflow.WorkflowTransitionModel"},"description":"The transitions of the workflow","nullable":true},"Color":{"type":"string","description":"The color of the state in the UI","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow state"},"Struct.App.Api.Models.Workflow.WorkflowTransitionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of workflow transition","format":"uuid"},"TransitionToStateUid":{"type":"string","description":"The state it can transition to","format":"uuid"},"Label":{"type":"string","description":"Label of the workflow transition","nullable":true},"Description":{"type":"string","description":"Description of the workflow transition","nullable":true},"RequiredPermission":{"type":"string","description":"The required permission to use the transition","format":"uuid","nullable":true}},"additionalProperties":false,"description":"Model used to create a new workflow transition"}}}}
```

## The Struct.App.Domain.Shared.Entity.StructEntityType object

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"components":{"schemas":{"Struct.App.Domain.Shared.Entity.StructEntityType":{"enum":[10,20,30,50,60],"type":"integer","description":"\n\n- `10` = **Category**\n- `20` = **Product**\n- `30` = **Variant**\n- `50` = **VariantGroup**\n- `60` = **Asset**","format":"int32"}}}}
```
