# Catalogues

Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories. Different catalogues can be used for different assortments, category structures etc.

## GET /v1/catalogues/uids

> Get Uids of all catalogues in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/catalogues/uids":{"get":{"tags":["Catalogues"],"summary":"Get Uids of all catalogues in the system","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","format":"uuid"}}}}}}}}}}
```

## GET /v1/catalogues

> Get all catalogues in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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":{}}}},"paths":{"/v1/catalogues":{"get":{"tags":["Catalogues"],"summary":"Get all catalogues in the system","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Create new catalogue

> \#Available from v.3.3.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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":{}}}},"paths":{"/v1/catalogues":{"post":{"tags":["Catalogues"],"summary":"Create new catalogue","description":"#Available from v.3.3.0","requestBody":{"description":"Catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## DELETE /v1/catalogues

>

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/catalogues":{"delete":{"tags":["Catalogues"],"parameters":[{"name":"catalogueUid","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## Update a catalogue

> \#Available from v.3.3.0

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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":{}}}},"paths":{"/v1/catalogues":{"patch":{"tags":["Catalogues"],"summary":"Update a catalogue","description":"#Available from v.3.3.0","requestBody":{"description":"Catalogue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## GET /v1/catalogues/{uid}

> Get catalogue by its Uid

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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":{}}}},"paths":{"/v1/catalogues/{uid}":{"get":{"tags":["Catalogues"],"summary":"Get catalogue by its Uid","parameters":[{"name":"uid","in":"path","description":"Unique id of catalogue","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CatalogueModel"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Get all categories in a catalogue

> No more than 5000 categories can be requested at a time. If no limit is provided, the default limit of 1000 will be used

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."},"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":{}}}},"paths":{"/v1/catalogues/{uid}/descendants":{"get":{"tags":["Catalogues"],"summary":"Get all categories in a catalogue","description":"No more than 5000 categories can be requested at a time. If no limit is provided, the default limit of 1000 will be used","parameters":[{"name":"uid","in":"path","description":"Unique id of catalogue","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","description":"Max number of categories til return","schema":{"type":"integer","format":"int32","default":1000}},{"name":"afterId","in":"query","description":"Only return categories with id larger than this","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoriesResultSet"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## GET /v1/catalogues/{uid}/children

> Get all children to a catalogue

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Catalogues","description":"Catalogues are root elements in category structures used for organizing products logically. A master catalogue allows setting up attributes on categories that are then available on products in those categories.\r\nDifferent catalogues can be used for different assortments, category structures etc."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/catalogues/{uid}/children":{"get":{"tags":["Catalogues"],"summary":"Get all children to a catalogue","parameters":[{"name":"uid","in":"path","description":"Unique id of catalogue","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Catalogue.CategoryModel"}}}}}}}}}}
```
