# VariantGroups

Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants. The data model for variant groups are described by product structures.

## Get ids of all variant groups in the system

> By default, ids for archived variant groups are not returned

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/ids":{"get":{"tags":["VariantGroups"],"summary":"Get ids of all variant groups in the system","description":"By default, ids for archived variant groups are not returned","parameters":[{"name":"includeArchived","in":"query","description":"Include archived variant groups","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## GET /v1/variantgroups/{id}

> Get basic model for a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/variantgroups/{id}":{"get":{"tags":["VariantGroups"],"summary":"Get basic model for a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group to return","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupModel"}}}}}}}}}
```

## DELETE /v1/variantgroups/{id}

> Delete a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/{id}":{"delete":{"tags":["VariantGroups"],"summary":"Delete a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group to delete","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/variantgroups/{id}

> Update a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/variantgroups/{id}":{"patch":{"tags":["VariantGroups"],"summary":"Update a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"Update model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.UpdateVariantGroupModel"}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## POST /v1/variantgroups/batch

> Get basic model for a range of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/variantgroups/batch":{"post":{"tags":["VariantGroups"],"summary":"Get basic model for a range of variant groups","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupModel"}}}}}}}}}}
```

## Get basic models for variant groups

> No more than 5000 variant groups can be requested at a time. If no limit is provided, the default limit of 1000 will be used. By default, archived variant groups are not returned

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/variantgroups":{"get":{"tags":["VariantGroups"],"summary":"Get basic models for variant groups","description":"No more than 5000 variant groups can be requested at a time. If no limit is provided, the default limit of 1000 will be used. By default, archived variant groups are not returned","parameters":[{"name":"includeArchived","in":"query","description":"Include archived variant groups","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","description":"Number of variant groups to return","schema":{"type":"integer","format":"int32","default":1000}},{"name":"afterId","in":"query","description":"Only return variant groups with id larger than this value","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupsResultSet"}}}}}}}}}
```

## Create new variant groups

> A maximum of 5000 variant groups can be created in one request

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/variantgroups":{"post":{"tags":["VariantGroups"],"summary":"Create new variant groups","description":"A maximum of 5000 variant groups can be created in one request","requestBody":{"description":"VariantGroups","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.CreateVariantGroupModel"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## DELETE /v1/variantgroups

> Delete multiple variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups":{"delete":{"tags":["VariantGroups"],"summary":"Delete multiple variant groups","requestBody":{"description":"Ids of variant groups to delete","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/variantgroups

> Update multiple variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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."}}},"paths":{"/v1/variantgroups":{"patch":{"tags":["VariantGroups"],"summary":"Update multiple variant groups","requestBody":{"description":"Update model","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.BatchUpdateVariantGroupModel"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## GET /v1/variantgroups/identifiers/{identifierAlias}

> Get all identifiers and their internal ids for a specific identifier type

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/identifiers/{identifierAlias}":{"get":{"tags":["VariantGroups"],"summary":"Get all identifiers and their internal ids for a specific identifier type","parameters":[{"name":"identifierAlias","in":"path","description":"Alias of identifier type","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}}}}}}
```

## GET /v1/variantgroups/identifiers/{identifierAlias}/{identifier}

> Get the internal id of a variant group based on its identifier

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/identifiers/{identifierAlias}/{identifier}":{"get":{"tags":["VariantGroups"],"summary":"Get the internal id of a variant group based on its identifier","parameters":[{"name":"identifierAlias","in":"path","description":"Alias of identifier type","required":true,"schema":{"type":"string"}},{"name":"identifier","in":"path","description":"Identifier value","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"integer","format":"int32"}}}}}}}}}
```

## POST /v1/variantgroups/batch/identifiers

> Get internal ids of multiple variant groups from their identifier

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/batch/identifiers":{"post":{"tags":["VariantGroups"],"summary":"Get internal ids of multiple variant groups from their identifier","requestBody":{"description":"Specify alias of identifier type and the identifiers to return internal ids for","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.IdentifierBatchModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}}}}}}
```

## GET /v1/variantgroups/{id}/attributevalues

> Get attribute values for a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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/variantgroups/{id}/attributevalues":{"get":{"tags":["VariantGroups"],"summary":"Get attribute values for a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"globalListValueReferencesOnly","in":"query","description":"Indicate if only uids of referenced to global list values shall be returned instead of the materialized values","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupAttributeValuesModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## Get attribute values for multiple variant groups

> No more than 5000 variant groups can be requested at a time.

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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"}}},"paths":{"/v1/variantgroups/batch/attributevalues":{"post":{"tags":["VariantGroups"],"summary":"Get attribute values for multiple variant groups","description":"No more than 5000 variant groups can be requested at a time.","requestBody":{"description":"Request model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupValuesRequestModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupAttributeValuesModel"}}}}}}}}}
```

## GET /v1/variantgroups/{id}/classifications

> Get category classifications for a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/{id}/classifications":{"get":{"tags":["VariantGroups"],"summary":"Get category classifications for a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"}}}}}}}}}}
```

## POST /v1/variantgroups/{id}/classifications

> Add category classifications to a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/{id}/classifications":{"post":{"tags":["VariantGroups"],"summary":"Add category classifications to a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"Model with variant group id and categories to classify the variant group in","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## DELETE /v1/variantgroups/{id}/classifications

> Remove category classifications from a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/{id}/classifications":{"delete":{"tags":["VariantGroups"],"summary":"Remove category classifications from a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"category ids to remove the variant group from","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## POST /v1/variantgroups/batch/classifications

> Get category classifications for a batch of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/batch/classifications":{"post":{"tags":["VariantGroups"],"summary":"Get category classifications for a batch of variant groups","requestBody":{"description":"Model containing batch of variant group ids","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"}}}}}}}}}}}
```

## POST /v1/variantgroups/classifications

> Add category classifications to a batch of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/classifications":{"post":{"tags":["VariantGroups"],"summary":"Add category classifications to a batch of variant groups","requestBody":{"description":"Model containing batch og variant groups and categories to classify these in","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupClassificationModel"}}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## DELETE /v1/variantgroups/classifications

> Remove category classifications from a batch of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/classifications":{"delete":{"tags":["VariantGroups"],"summary":"Remove category classifications from a batch of variant groups","requestBody":{"description":"Model containing batch of variant groups and the list of categories to remove them from","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int32"}}}}}},"responses":{"200":{"description":"OK"}}}}}}
```

## GET /v1/variantgroups/{id}/variants

> Get ids of variants of a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/{id}/variants":{"get":{"tags":["VariantGroups"],"summary":"Get ids of variants of a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"includeArchived","in":"query","description":"Return ids of archived variants as well","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## POST /v1/variantgroups/batch/variants

> Get ids of variants for a batch of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/batch/variants":{"post":{"tags":["VariantGroups"],"summary":"Get ids of variants for a batch of variant groups","parameters":[{"name":"includeArchived","in":"query","description":"Return ids of archived variants as well","schema":{"type":"boolean","default":false}}],"requestBody":{"description":"Ids of variant groups","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}}
```

## GET /v1/variantgroups/{id}/references

> Get references to a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/{id}/references":{"get":{"tags":["VariantGroups"],"summary":"Get references to a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupReferences"}}}}}}}}}
```

## Get references to a batch of variant groups

> No more than 5000 values can be requested at a time.

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/batch/references":{"post":{"tags":["VariantGroups"],"summary":"Get references to a batch of variant groups","description":"No more than 5000 values can be requested at a time.","requestBody":{"description":"Ids of variant groups","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.VariantGroup.VariantGroupReferences"}}}}}}}}}}
```

## POST /v1/variantgroups/search

> Get ids of variant groups matching certain criteria

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/search":{"post":{"tags":["VariantGroups"],"summary":"Get ids of variant groups matching certain criteria","requestBody":{"description":"Query model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.SearchModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}}}}
```

## POST /v1/variantgroups/search/paged

> Get paged result of variant groups matching certain criteria. Result mapped with headers and item results

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"},"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}}},"paths":{"/v1/variantgroups/search/paged":{"post":{"tags":["VariantGroups"],"summary":"Get paged result of variant groups matching certain criteria. Result mapped with headers and item results","requestBody":{"description":"Query model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.SearchPagedModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.SearchResultModel"}}}}}}}}}
```

## GET /v1/variantgroups/queryablefields

> Get all available query fields in the PIM installation

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/queryablefields":{"get":{"tags":["VariantGroups"],"summary":"Get all available query fields in the PIM installation","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Shared.QueryableField"}}}}}}}}}}
```

## GET /v1/variantgroups/{id}/enrichmentinsights

> Get Enrichment Insights for a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/{id}/enrichmentinsights":{"get":{"tags":["VariantGroups"],"summary":"Get Enrichment Insights for a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group to get insights for","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}}
```

## POST /v1/variantgroups/batch/enrichmentinsights

> Get Enrichment Insights for a batch of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/batch/enrichmentinsights":{"post":{"tags":["VariantGroups"],"summary":"Get Enrichment Insights for a batch of variant groups","requestBody":{"description":"Ids of variant groups to get insights for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}}
```

## POST /v1/variantgroups/batch/enrichmentinsights/{enrichmentInsightUid}

> Get insights for a batch of variant groups and a specific Enrichment Insight

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"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"}}},"paths":{"/v1/variantgroups/batch/enrichmentinsights/{enrichmentInsightUid}":{"post":{"tags":["VariantGroups"],"summary":"Get insights for a batch of variant groups and a specific Enrichment Insight","parameters":[{"name":"enrichmentInsightUid","in":"path","description":"Uid of enrichment insight to get for batch of variant groups","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"Ids of variant groups to get insights for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.EnrichmentInsight.EntityEnrichmentInsight"}}}}}}}}}}
```

## PATCH /v1/variantgroups/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}

> Enable or disable an enrichment insight for a variant group

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/{id}/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}":{"patch":{"tags":["VariantGroups"],"summary":"Enable or disable an enrichment insight for a variant group","parameters":[{"name":"id","in":"path","description":"Id of variant group","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"enrichmentInsightSetupUid","in":"path","description":"Uid of enrichment insight to toggle ignore for","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ignore","in":"path","description":"Indicate whether to ignore the insight for the given enrichment insight and variant groups","required":true,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## PATCH /v1/variantgroups/batch/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}

> Enable or disable an enrichment insight for a batch of variant groups

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"VariantGroups","description":"Variant groups are used to contain data for a group of variants on a product. Variant group entities contain attribute data, classifications in categories and variants.\r\nThe data model for variant groups are described by product structures."}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/variantgroups/batch/enrichmentinsights/{enrichmentInsightSetupUid}/{ignore}":{"patch":{"tags":["VariantGroups"],"summary":"Enable or disable an enrichment insight for a batch of variant groups","parameters":[{"name":"enrichmentInsightSetupUid","in":"path","description":"Uid of enrichment insight to toggle ignore for","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ignore","in":"path","description":"Indicate whether to ignore the insight for the given enrichment insight and variant groups","required":true,"schema":{"type":"boolean"}}],"requestBody":{"description":"Ids of variant groups to toggle ignore for","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int32"}}}}},"responses":{"200":{"description":"OK"}}}}}}
```
