# Dimensions

## GET /v1/Dimensions

> Get all dimensions added to the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Dimensions","description":""}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Dimension.DimensionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of dimension","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of dimension","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionSegmentModel"},"description":"Segments available to this dimension","nullable":true}},"additionalProperties":false,"description":"Representation of a dimension to be used to segment attribute value data"},"Struct.App.Api.Models.Dimension.DimensionSegmentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of segment","format":"uuid"},"Identifier":{"type":"string","description":"Unique human readable identifier for segment","nullable":true},"Name":{"type":"string","description":"Display name for segment","nullable":true}},"additionalProperties":false,"description":"Represents a data segment in a dimension"}}},"paths":{"/v1/Dimensions":{"get":{"tags":["Dimensions"],"summary":"Get all dimensions added to the system","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionModel"}}}}}}}}}}
```

## POST /v1/Dimensions

> Add dimension to system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Dimensions","description":""}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Dimension.DimensionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of dimension","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of dimension","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionSegmentModel"},"description":"Segments available to this dimension","nullable":true}},"additionalProperties":false,"description":"Representation of a dimension to be used to segment attribute value data"},"Struct.App.Api.Models.Dimension.DimensionSegmentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of segment","format":"uuid"},"Identifier":{"type":"string","description":"Unique human readable identifier for segment","nullable":true},"Name":{"type":"string","description":"Display name for segment","nullable":true}},"additionalProperties":false,"description":"Represents a data segment in a dimension"},"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/Dimensions":{"post":{"tags":["Dimensions"],"summary":"Add dimension to system","requestBody":{"description":"Dimension to add","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionModel"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```

## PUT /v1/Dimensions

> Update a dimension in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Dimensions","description":""}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Dimension.DimensionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of dimension","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of dimension","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionSegmentModel"},"description":"Segments available to this dimension","nullable":true}},"additionalProperties":false,"description":"Representation of a dimension to be used to segment attribute value data"},"Struct.App.Api.Models.Dimension.DimensionSegmentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of segment","format":"uuid"},"Identifier":{"type":"string","description":"Unique human readable identifier for segment","nullable":true},"Name":{"type":"string","description":"Display name for segment","nullable":true}},"additionalProperties":false,"description":"Represents a data segment in a dimension"}}},"paths":{"/v1/Dimensions":{"put":{"tags":["Dimensions"],"summary":"Update a dimension in the system","requestBody":{"description":"Updated dimension","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionModel"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionModel"}}}}}}}}}
```

## DELETE /v1/Dimensions

> Delete a dimension in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Dimensions","description":""}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}}},"paths":{"/v1/Dimensions":{"delete":{"tags":["Dimensions"],"summary":"Delete a dimension in the system","parameters":[{"name":"uid","in":"query","description":"Uid of dimension","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}}}}}}
```

## GET /v1/Dimensions/{uid}

> Get a specific dimension in the system

```json
{"openapi":"3.0.1","info":{"title":"Struct PIM Public API","version":"1.0"},"tags":[{"name":"Dimensions","description":""}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","description":"","name":"Authorization","in":"header"}},"schemas":{"Struct.App.Api.Models.Dimension.DimensionModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of dimension","format":"uuid"},"Alias":{"type":"string","description":"Unique alias of dimension","nullable":true},"Segments":{"type":"array","items":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionSegmentModel"},"description":"Segments available to this dimension","nullable":true}},"additionalProperties":false,"description":"Representation of a dimension to be used to segment attribute value data"},"Struct.App.Api.Models.Dimension.DimensionSegmentModel":{"type":"object","properties":{"Uid":{"type":"string","description":"Unique id of segment","format":"uuid"},"Identifier":{"type":"string","description":"Unique human readable identifier for segment","nullable":true},"Name":{"type":"string","description":"Display name for segment","nullable":true}},"additionalProperties":false,"description":"Represents a data segment in a dimension"},"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/Dimensions/{uid}":{"get":{"tags":["Dimensions"],"summary":"Get a specific dimension in the system","parameters":[{"name":"uid","in":"path","description":"Uid of dimension","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Struct.App.Api.Models.Dimension.DimensionModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"}}}}}}}}}
```
