# Mixins

## Retrieving site mixins

> Retrieves all mixins for a specified site.

```json
{"openapi":"3.0.0","info":{"title":"Site Settings Service","version":"0.0.1"},"tags":[{"name":"Mixins"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["site.site_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"refreshUrl":"","scopes":{"site.site_read":"Needed to retrieve information about sites.","site.site_manage":"Needed to manage sites."},"tokenUrl":"https://api.emporix.io/oauth/token"}}}},"schemas":{"Mixins":{"title":"Mixins","type":"object","description":"Represents mixins. The object is represented as a map with keys and values, where key represents a mixin group name and value represents a map with keys and values.","additionalProperties":true},"ErrorMessage":{"type":"object","properties":{"type":{"type":"string","description":"Classification of the error type.\n\n**Note**: The error type should be written in lowercase and include underscores, for example validation_failure."},"status":{"type":"number","minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code."},"message":{"type":"string","description":"Descriptive error message for debugging purposes."},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"responses":{"400_invalid_tenant":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401_invalidToken":{"description":"","content":{"application/json":{"schema":{"description":"","type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string","minLength":1},"detail":{"type":"object","properties":{"errorcode":{"type":"string","minLength":1}}}}}}}}}},"403_insufficient_permissions":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"paths":{"/site/{tenant}/sites/{siteCode}/mixins":{"get":{"summary":"Retrieving site mixins","tags":["Mixins"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mixins"}}}},"400":{"$ref":"#/components/responses/400_invalid_tenant"},"401":{"$ref":"#/components/responses/401_invalidToken"},"403":{"$ref":"#/components/responses/403_insufficient_permissions"}},"operationId":"GET-site-settings-list-site-mixins","parameters":[],"description":"Retrieves all mixins for a specified site."}}}}
```

## Creating a site mixin

> Creates a mixin for a specified site.

```json
{"openapi":"3.0.0","info":{"title":"Site Settings Service","version":"0.0.1"},"tags":[{"name":"Mixins"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["site.site_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"refreshUrl":"","scopes":{"site.site_read":"Needed to retrieve information about sites.","site.site_manage":"Needed to manage sites."},"tokenUrl":"https://api.emporix.io/oauth/token"}}}},"schemas":{"ResourceLocation":{"title":"ResourceLocation","type":"object","properties":{"id":{"type":"string","description":"Resource identifier."}},"description":""},"ErrorMessage":{"type":"object","properties":{"type":{"type":"string","description":"Classification of the error type.\n\n**Note**: The error type should be written in lowercase and include underscores, for example validation_failure."},"status":{"type":"number","minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code."},"message":{"type":"string","description":"Descriptive error message for debugging purposes."},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}}}},"Mixin":{"title":"Mixin","type":"object","description":"Represents a single mixin. The payload is represented as a map with a single key and value, where key represents a mixin group name and value represents a map with keys and values.","additionalProperties":true}},"responses":{"401_invalidToken":{"description":"","content":{"application/json":{"schema":{"description":"","type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string","minLength":1},"detail":{"type":"object","properties":{"errorcode":{"type":"string","minLength":1}}}}}}}}}},"403_insufficient_permissions":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"paths":{"/site/{tenant}/sites/{siteCode}/mixins":{"post":{"summary":"Creating a site mixin","operationId":"POST-site-settings-create-site-mixin","responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceLocation"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401":{"$ref":"#/components/responses/401_invalidToken"},"403":{"$ref":"#/components/responses/403_insufficient_permissions"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mixin"}}},"description":""},"description":"Creates a mixin for a specified site.","tags":["Mixins"]}}}}
```

## Retrieving a site mixin

> Retrieves a specified site mixin.

```json
{"openapi":"3.0.0","info":{"title":"Site Settings Service","version":"0.0.1"},"tags":[{"name":"Mixins"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["site.site_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"refreshUrl":"","scopes":{"site.site_read":"Needed to retrieve information about sites.","site.site_manage":"Needed to manage sites."},"tokenUrl":"https://api.emporix.io/oauth/token"}}}},"schemas":{"Mixin":{"title":"Mixin","type":"object","description":"Represents a single mixin. The payload is represented as a map with a single key and value, where key represents a mixin group name and value represents a map with keys and values.","additionalProperties":true},"ErrorMessage":{"type":"object","properties":{"type":{"type":"string","description":"Classification of the error type.\n\n**Note**: The error type should be written in lowercase and include underscores, for example validation_failure."},"status":{"type":"number","minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code."},"message":{"type":"string","description":"Descriptive error message for debugging purposes."},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"responses":{"400_invalid_tenant":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401_invalidToken":{"description":"","content":{"application/json":{"schema":{"description":"","type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string","minLength":1},"detail":{"type":"object","properties":{"errorcode":{"type":"string","minLength":1}}}}}}}}}},"403_insufficient_permissions":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404_mixinNotFound":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}}},"paths":{"/site/{tenant}/sites/{siteCode}/mixins/{mixinName}":{"get":{"summary":"Retrieving a site mixin","tags":["Mixins"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mixin"}}}},"400":{"$ref":"#/components/responses/400_invalid_tenant"},"401":{"$ref":"#/components/responses/401_invalidToken"},"403":{"$ref":"#/components/responses/403_insufficient_permissions"},"404":{"$ref":"#/components/responses/404_mixinNotFound"}},"operationId":"GET-site-settings-retrieve-site-mixin","description":"Retrieves a specified site mixin."}}}}
```

## Fully updating a site mixin

> Fully updates a specified site mixin.

```json
{"openapi":"3.0.0","info":{"title":"Site Settings Service","version":"0.0.1"},"tags":[{"name":"Mixins"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["site.site_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"refreshUrl":"","scopes":{"site.site_read":"Needed to retrieve information about sites.","site.site_manage":"Needed to manage sites."},"tokenUrl":"https://api.emporix.io/oauth/token"}}}},"responses":{"400_invalid_tenant":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401_invalidToken":{"description":"","content":{"application/json":{"schema":{"description":"","type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string","minLength":1},"detail":{"type":"object","properties":{"errorcode":{"type":"string","minLength":1}}}}}}}}}},"403_insufficient_permissions":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404_mixinNotFound":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"schemas":{"ErrorMessage":{"type":"object","properties":{"type":{"type":"string","description":"Classification of the error type.\n\n**Note**: The error type should be written in lowercase and include underscores, for example validation_failure."},"status":{"type":"number","minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code."},"message":{"type":"string","description":"Descriptive error message for debugging purposes."},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}}}},"Mixin":{"title":"Mixin","type":"object","description":"Represents a single mixin. The payload is represented as a map with a single key and value, where key represents a mixin group name and value represents a map with keys and values.","additionalProperties":true}}},"paths":{"/site/{tenant}/sites/{siteCode}/mixins/{mixinName}":{"put":{"summary":"Fully updating a site mixin","operationId":"PUT-site-settings-update-site-mixin","responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/400_invalid_tenant"},"401":{"$ref":"#/components/responses/401_invalidToken"},"403":{"$ref":"#/components/responses/403_insufficient_permissions"},"404":{"$ref":"#/components/responses/404_mixinNotFound"}},"description":"Fully updates a specified site mixin.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mixin"}}}},"tags":["Mixins"]}}}}
```

## Deleting a site mixin

> Deletes a specified site mixin.

```json
{"openapi":"3.0.0","info":{"title":"Site Settings Service","version":"0.0.1"},"tags":[{"name":"Mixins"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["site.site_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"refreshUrl":"","scopes":{"site.site_read":"Needed to retrieve information about sites.","site.site_manage":"Needed to manage sites."},"tokenUrl":"https://api.emporix.io/oauth/token"}}}},"responses":{"400_invalid_tenant":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401_invalidToken":{"description":"","content":{"application/json":{"schema":{"description":"","type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string","minLength":1},"detail":{"type":"object","properties":{"errorcode":{"type":"string","minLength":1}}}}}}}}}},"403_insufficient_permissions":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404_mixinNotFound":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"schemas":{"ErrorMessage":{"type":"object","properties":{"type":{"type":"string","description":"Classification of the error type.\n\n**Note**: The error type should be written in lowercase and include underscores, for example validation_failure."},"status":{"type":"number","minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code."},"message":{"type":"string","description":"Descriptive error message for debugging purposes."},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/site/{tenant}/sites/{siteCode}/mixins/{mixinName}":{"delete":{"summary":"Deleting a site mixin","operationId":"DELETE-site-settings-remove-site-mixin","responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/400_invalid_tenant"},"401":{"$ref":"#/components/responses/401_invalidToken"},"403":{"$ref":"#/components/responses/403_insufficient_permissions"},"404":{"$ref":"#/components/responses/404_mixinNotFound"}},"description":"Deletes a specified site mixin.","tags":["Mixins"]}}}}
```

## Partially updating a site mixin

> Partially updates a specified site mixin.

```json
{"openapi":"3.0.0","info":{"title":"Site Settings Service","version":"0.0.1"},"tags":[{"name":"Mixins"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["site.site_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"refreshUrl":"","scopes":{"site.site_read":"Needed to retrieve information about sites.","site.site_manage":"Needed to manage sites."},"tokenUrl":"https://api.emporix.io/oauth/token"}}}},"responses":{"400_invalid_tenant":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"401_invalidToken":{"description":"","content":{"application/json":{"schema":{"description":"","type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string","minLength":1},"detail":{"type":"object","properties":{"errorcode":{"type":"string","minLength":1}}}}}}}}}},"403_insufficient_permissions":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"schemas":{"ErrorMessage":{"type":"object","properties":{"type":{"type":"string","description":"Classification of the error type.\n\n**Note**: The error type should be written in lowercase and include underscores, for example validation_failure."},"status":{"type":"number","minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code."},"message":{"type":"string","description":"Descriptive error message for debugging purposes."},"details":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}}}}}},"Mixin":{"title":"Mixin","type":"object","description":"Represents a single mixin. The payload is represented as a map with a single key and value, where key represents a mixin group name and value represents a map with keys and values.","additionalProperties":true}}},"paths":{"/site/{tenant}/sites/{siteCode}/mixins/{mixinName}":{"patch":{"summary":"Partially updating a site mixin","operationId":"PATCH-site-settings-update-site-mixin","responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/400_invalid_tenant"},"401":{"$ref":"#/components/responses/401_invalidToken"},"403":{"$ref":"#/components/responses/403_insufficient_permissions"}},"description":"Partially updates a specified site mixin.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Mixin"}}}},"tags":["Mixins"]}}}}
```
