# Models

## The errorMessage object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"errorMessage":{"title":"Error","description":"Schema for specific API errors.","type":"object","properties":{"code":{"type":"integer","description":"HTTP status code.","minimum":100,"maximum":599},"status":{"description":"HTTP status.","type":"string"},"message":{"description":"Descriptive error message for debugging.","type":"string"},"details":{"description":"List of problems causing this error.","type":"array","items":{"title":"Error Detail","description":"Error details.","type":"string"}},"resourceId":{"description":"Id of the resource.","type":"string"}},"required":["status","code","message"]}}}}
```

## The MetadataUpdate object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The MetadataGet object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"MetadataGet":{"type":"object","allOf":[{"$ref":"#/components/schemas/MetadataUpdate"}],"properties":{"createdAt":{"description":"Date and time when the document was created.","type":"string"},"modifiedAt":{"description":"Date and time when the document was last modified.","type":"string"}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The RefId object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}}}}}
```

## The Asset object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}}}}}
```

## The AssetDetailsCreate object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}}}}}
```

## The AssetDetailsGet object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetDetailsGet":{"title":"Asset Response Detailed Information","type":"object","allOf":[{"$ref":"#/components/schemas/AssetDetailsCreate"}],"properties":{"bytes":{"type":"number","description":"Size of the content associated with the asset in bytes."},"etag":{"type":"string","description":"The ETAG digest for the asset."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}}}}}
```

## The AssetUpdateMultipart object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetUpdateMultipart":{"title":"Asset Update Mutlipart Payload","type":"object","properties":{"file":{"type":"object","format":"binary","description":"Content of the file."},"body":{"description":"Asset Json update payload","allOf":[{"$ref":"#/components/schemas/AssetUpdateBlob"}]}},"required":["file","body"]},"AssetUpdateBlob":{"title":"Asset Update Blob Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"type":{"type":"string","enum":["BLOB"],"description":"Asset type. This property is immutable."},"details":{"$ref":"#/components/schemas/AssetDetailsCreate"},"metadata":{"$ref":"#/components/schemas/MetadataUpdate"}},"required":["access","type"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The AssetCreateMultipart object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetCreateMultipart":{"title":"Asset Create Multipart Payload","type":"object","properties":{"file":{"type":"object","format":"binary","description":"Content of the file. The max file size is 10MB."},"body":{"description":"Asset JSON creation payload.","allOf":[{"$ref":"#/components/schemas/AssetCreateBlob"}]}},"required":["file","body"]},"AssetCreateBlob":{"title":"Asset Create Blob Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"type":{"type":"string","enum":["BLOB"],"description":"Asset type. This property is immutable."},"details":{"$ref":"#/components/schemas/AssetDetailsCreate"}},"required":["type","access"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}}}}}
```

## The AssetCreateLink object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetCreateLink":{"title":"Asset Create Link Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"type":{"type":"string","enum":["LINK"],"description":"Asset type. This property is immutable."},"url":{"type":"string","description":"Resource link."}},"required":["type","access","url"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}}}}}
```

## The AssetCreateBlob object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetCreateBlob":{"title":"Asset Create Blob Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"type":{"type":"string","enum":["BLOB"],"description":"Asset type. This property is immutable."},"details":{"$ref":"#/components/schemas/AssetDetailsCreate"}},"required":["type","access"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}}}}}
```

## The GetAsset object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"GetAsset":{"title":"Get Asset","allOf":[{"$ref":"#/components/schemas/Asset"},{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"type":{"type":"string","enum":["BLOB","LINK"],"description":"Asset type. This property is immutable."},"vendorId":{"type":"string","description":"Id of a vendor to which the asset belongs."},"url":{"type":"string","description":"Resource link."},"details":{"$ref":"#/components/schemas/AssetDetailsGet"},"metadata":{"$ref":"#/components/schemas/MetadataGet"}}}]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"AssetDetailsGet":{"title":"Asset Response Detailed Information","type":"object","allOf":[{"$ref":"#/components/schemas/AssetDetailsCreate"}],"properties":{"bytes":{"type":"number","description":"Size of the content associated with the asset in bytes."},"etag":{"type":"string","description":"The ETAG digest for the asset."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}},"MetadataGet":{"type":"object","allOf":[{"$ref":"#/components/schemas/MetadataUpdate"}],"properties":{"createdAt":{"description":"Date and time when the document was created.","type":"string"},"modifiedAt":{"description":"Date and time when the document was last modified.","type":"string"}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The GetAssetLink object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"GetAssetLink":{"title":"Get Asset Link","type":"object","allOf":[{"$ref":"#/components/schemas/AssetCreateLink"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"vendorId":{"type":"string","description":"Id of a vendor to which the asset belongs."},"metadata":{"$ref":"#/components/schemas/MetadataGet"}}},"AssetCreateLink":{"title":"Asset Create Link Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"type":{"type":"string","enum":["LINK"],"description":"Asset type. This property is immutable."},"url":{"type":"string","description":"Resource link."}},"required":["type","access","url"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"MetadataGet":{"type":"object","allOf":[{"$ref":"#/components/schemas/MetadataUpdate"}],"properties":{"createdAt":{"description":"Date and time when the document was created.","type":"string"},"modifiedAt":{"description":"Date and time when the document was last modified.","type":"string"}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The GetAssetBlob object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"GetAssetBlob":{"title":"Get Asset Blob","type":"object","allOf":[{"$ref":"#/components/schemas/AssetCreateBlob"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"vendorId":{"type":"string","description":"Id of a vendor to which the asset belongs."},"details":{"$ref":"#/components/schemas/AssetDetailsGet"},"metadata":{"$ref":"#/components/schemas/MetadataGet"}}},"AssetCreateBlob":{"title":"Asset Create Blob Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"id":{"type":"string","description":"Unique identifier of an asset."},"type":{"type":"string","enum":["BLOB"],"description":"Asset type. This property is immutable."},"details":{"$ref":"#/components/schemas/AssetDetailsCreate"}},"required":["type","access"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}},"AssetDetailsGet":{"title":"Asset Response Detailed Information","type":"object","allOf":[{"$ref":"#/components/schemas/AssetDetailsCreate"}],"properties":{"bytes":{"type":"number","description":"Size of the content associated with the asset in bytes."},"etag":{"type":"string","description":"The ETAG digest for the asset."}}},"MetadataGet":{"type":"object","allOf":[{"$ref":"#/components/schemas/MetadataUpdate"}],"properties":{"createdAt":{"description":"Date and time when the document was created.","type":"string"},"modifiedAt":{"description":"Date and time when the document was last modified.","type":"string"}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The AssetUpdateLink object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetUpdateLink":{"title":"Asset Update Link Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"url":{"type":"string","description":"Resource link."},"type":{"type":"string","enum":["LINK"],"description":"Asset type. This property is immutable."},"metadata":{"$ref":"#/components/schemas/MetadataUpdate"}},"required":["access","url","type"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```

## The AssetUpdateBlob object

```json
{"openapi":"3.0.0","info":{"title":"Media Service","version":"0.0.1"},"components":{"schemas":{"AssetUpdateBlob":{"title":"Asset Update Blob Payload","type":"object","allOf":[{"$ref":"#/components/schemas/Asset"}],"properties":{"type":{"type":"string","enum":["BLOB"],"description":"Asset type. This property is immutable."},"details":{"$ref":"#/components/schemas/AssetDetailsCreate"},"metadata":{"$ref":"#/components/schemas/MetadataUpdate"}},"required":["access","type"]},"Asset":{"title":"Asset","type":"object","properties":{"access":{"type":"string","enum":["PUBLIC","PRIVATE"],"description":"Access type of the asset. This property is immutable. \n- PUBLIC: Assets will be stored by a public storage provider and will be accessible at an external link.\n- PRIVATE: Assets will be stored by a private storage provider and will not be accessible at an external url. Assets of the `PRIVATE` type can only be accessed by calling the `media/{tenant}/assets/{assetId}/download` endpoint in the Media Service.\n"},"refIds":{"type":"array","description":"List of references.","items":{"$ref":"#/components/schemas/RefId"}}}},"RefId":{"type":"object","properties":{"type":{"type":"string","description":"Reference type. Can be one of the predefined types: `BRAND`, `CATEGORY`, `LABEL`, `PRODUCT`, `MODULE` or any custom schema type.\n"},"id":{"type":"string","description":"Reference Id."}}},"AssetDetailsCreate":{"title":"Asset Request Detailed Information","type":"object","properties":{"filename":{"type":"string","description":"Asset filename."},"mimeType":{"type":"string","description":"The MIME (media) type of the asset."}}},"MetadataUpdate":{"type":"object","properties":{"version":{"minimum":1,"type":"integer","description":"Version of the document."}},"required":["version"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.emporix.io/api-references-1/readme/api-reference-21/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
