@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Akeneo PIM REST API
@base http://demo.akeneo.com
@version 1.0.0
@auth ApiKey Authorization in header
@endpoints 137
@hint download_for_search
@toc api(137)

@endpoint GET /api/rest/v1/products-uuid
@desc Get list of products
@optional {search: any # Filter products, for more details see the Filters section, scope: any # Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the Filter product values via channel section, locales: any # Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the Filter product values via locale section, attributes: any # Filter product values to only return those concerning the given attributes, for more details see the Filter on product values section, pagination_type: any # Pagination method type, see Pagination section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way, with_attribute_options: any # Return labels of attribute options in the response. See the `linked_data` format section for more details. (Only available since the 5.0 version), with_quality_scores: any # Return product quality scores in the response. (Only available since the 5.0 version), with_completenesses: any # Return product completenesses in the response. (Only available since the 6.0 version)}
@returns(200) Return products paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/products-uuid
@desc Create a new product
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/products-uuid
@desc Update/create several products
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/products-uuid/search
@desc Search list of products
@required {body: map}
@optional {pagination_type: any # Pagination method type, see Pagination section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return products paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/products-uuid/{uuid}
@desc Get a product
@required {uuid: any # Uuid of the resource}
@optional {with_attribute_options: any # Return labels of attribute options in the response. See the `linked_data` format section for more details. (Only available since the 5.0 version), with_quality_scores: any # Return product quality scores in the response. (Only available since the 5.0 version), with_completenesses: any # Return product completenesses in the response. (Only available since the 6.0 version)}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/products-uuid/{uuid}
@desc Update/create a product
@required {uuid: any # Uuid of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint DELETE /api/rest/v1/products-uuid/{uuid}
@desc Delete a product
@required {uuid: any # Uuid of the resource}
@returns(204) No content to return
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint POST /api/rest/v1/products-uuid/{uuid}/proposal
@desc Submit a draft for approval
@required {uuid: any # Uuid of the resource}
@returns(201) Submitted
@errors {401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/products-uuid/{uuid}/draft
@desc Get a draft
@required {uuid: any # Uuid of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/products
@desc Get list of products
@optional {search: any # Filter products, for more details see the Filters section, scope: any # Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the Filter product values via channel section, locales: any # Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the Filter product values via locale section, attributes: any # Filter product values to only return those concerning the given attributes, for more details see the Filter on product values section, pagination_type: any # Pagination method type, see Pagination section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way, with_attribute_options: any # Return labels of attribute options in the response. See the `linked_data` format section for more details. (Only available since the 5.0 version), with_quality_scores: any # Return product quality scores in the response. (Only available since the 5.0 version), with_completenesses: any # Return product completenesses in the response. (Only available since the 6.0 version)}
@returns(200) Return products paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/products
@desc Create a new product
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/products
@desc Update/create several products
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/products/{code}
@desc Get a product
@required {code: any # Code of the resource}
@optional {with_attribute_options: any # Return labels of attribute options in the response. See the `linked_data` format section for more details. (Only available since the 5.0 version), with_quality_scores: any # Return product quality scores in the response. (Only available since the 5.0 version), with_completenesses: any # Return product completenesses in the response. (Only available since the 6.0 version)}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/products/{code}
@desc Update/create a product
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint DELETE /api/rest/v1/products/{code}
@desc Delete a product
@required {code: any # Code of the resource}
@returns(204) No content to return
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint POST /api/rest/v1/products/{code}/proposal
@desc Submit a draft for approval
@required {code: any # Code of the resource}
@returns(201) Submitted
@errors {401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/products/{code}/draft
@desc Get a draft
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/product-models
@desc Get list of product models
@optional {search: any # Filter product models, for more details see the Filters section, scope: any # Filter product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the Filter product values via channel section, locales: any # Filter product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the Filter product values via locale section, attributes: any # Filter product values to only return those concerning the given attributes, for more details see the Filter on product values section and the Filter on product model properties section, pagination_type: any # Pagination method type, see Pagination section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way, with_quality_scores: any # Return product model quality scores in the response. (Only available since the 6.0 version)}
@returns(200) Return product models paginated
@errors {401: Authentication required, 406: Not Acceptable, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/product-models
@desc Create a new product model
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/product-models
@desc Update/create several product models
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/product-models/{code}
@desc Get a product model
@required {code: any # Code of the resource}
@optional {with_quality_scores: any # Return product model quality scores in the response. (Only available since the 6.0 version)}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/product-models/{code}
@desc Update/create a product model
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint DELETE /api/rest/v1/product-models/{code}
@desc Delete a product model
@required {code: any # Code of the resource}
@returns(204) No content to return
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint POST /api/rest/v1/product-models/{code}/proposal
@desc Submit a draft for approval
@required {code: any # Code of the resource}
@returns(201) Submitted
@errors {401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/product-models/{code}/draft
@desc Get a draft
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/published-products
@desc Get list of published products
@optional {search: any # Filter published products, for more details see the Filters section, scope: any # Filter published product values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the Filter on published product values section, locales: any # Filter published product values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the Filter on published product values section, attributes: any # Filter published product values to only return those concerning the given attributes, for more details see the Filter on product values section, pagination_type: any # Pagination method type, see Pagination section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return published products paginated
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 406: Not Acceptable, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/published-products/{code}
@desc Get a published product
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/media-files
@desc Get a list of product media files
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return media files paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/media-files
@desc Create a new product media file
@required {Content-type: any # Equal to 'multipart/form-data', no other value allowed}
@optional {body: any}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/media-files/{code}
@desc Get a product media file
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/media-files/{code}/download
@desc Download a product media file
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint POST /api/rest/v1/jobs/export/{code}
@desc Launch export job by code
@required {code: any # Job code}
@returns(200) OK
@errors {400: Bad request, 403: Access forbidden, 404: Resource not found, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/jobs/import/{code}
@desc Launch import job by code
@required {code: any # Job code}
@optional {body: any}
@returns(200) OK
@errors {400: Bad request, 403: Access forbidden, 404: Resource not found, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/families
@desc Get list of families
@optional {search: any # Filter families, for more details see the Filters section., page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return families paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/families
@desc Create a new family
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/families
@desc Update/create several families
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/families/{code}
@desc Get a family
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/families/{code}
@desc Update/create a family
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint DELETE /api/rest/v1/families/{code}
@desc Delete a family
@required {code: any # Code of the resource}
@returns(204) No content to return
@errors {403: Access forbidden, 404: Resource not found, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/families/{family_code}/variants
@desc Get list of family variants
@required {family_code: any # Code of the family}
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return family variants paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/families/{family_code}/variants
@desc Create a new family variant
@required {family_code: any # Code of the family}
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/families/{family_code}/variants
@desc Update/create several family variants
@required {family_code: any # Code of the family}
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/families/{family_code}/variants/{code}
@desc Get a family variant
@required {family_code: any # Code of the family, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/families/{family_code}/variants/{code}
@desc Update/create a family variant
@required {family_code: any # Code of the family, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/attributes
@desc Get list of attributes
@optional {search: any # Filter attributes, for more details see the Filters section., page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way, with_table_select_options: any # Return the options of 'select' column types (of a table attribute) in the response. (Only available since the 7.0 version)}
@returns(200) Return attributes paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/attributes
@desc Create a new attribute
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/attributes
@desc Update/create several attributes
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/attributes/{code}
@desc Get an attribute
@required {code: any # Code of the resource}
@optional {with_table_select_options: any # Return the options of 'select' column types (of a table attribute) in the response. (Only available since the 7.0 version)}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/attributes/{code}
@desc Update/create an attribute
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/attributes/{attribute_code}/options
@desc Get list of attribute options
@required {attribute_code: any # Code of the attribute}
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return attribute options paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/attributes/{attribute_code}/options
@desc Create a new attribute option
@required {attribute_code: any # Code of the attribute}
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/attributes/{attribute_code}/options
@desc Update/create several attribute options
@required {attribute_code: any # Code of the attribute}
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type, 429: Too many requests}

@endpoint GET /api/rest/v1/attributes/{attribute_code}/options/{code}
@desc Get an attribute option
@required {attribute_code: any # Code of the attribute, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/attributes/{attribute_code}/options/{code}
@desc Update/create an attribute option
@required {attribute_code: any # Code of the attribute, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity, 429: Too many requests}

@endpoint GET /api/rest/v1/attribute-groups
@desc Get list of attribute groups
@optional {search: any # Filter attribute groups, for more details see the Filters section., page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return attribute groups paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/attribute-groups
@desc Create a new attribute group
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/attribute-groups
@desc Update/create several attribute groups
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/attribute-groups/{code}
@desc Get an attribute group
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/attribute-groups/{code}
@desc Update/create an attribute group
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/association-types
@desc Get a list of association types
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return association types paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/association-types
@desc Create a new association type
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/association-types
@desc Update/create several association types
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/association-types/{code}
@desc Get an association type
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/association-types/{code}
@desc Update/create an association type
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/channels
@desc Get a list of channels
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return channels paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/channels
@desc Create a new channel
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/channels
@desc Update/create several channels
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/channels/{code}
@desc Get a channel
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/channels/{code}
@desc Update/create a channel
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/locales
@desc Get a list of locales
@optional {search: any # Filter locales, for more details see the Filters section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return locales paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint GET /api/rest/v1/locales/{code}
@desc Get a locale
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/categories
@desc Get list of categories
@optional {search: any # Filter categories, for more details see the Filters section., page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way, with_position: any # Return information about category position into its category tree (only available since the 7.0 version)}
@returns(200) Return categories paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/categories
@desc Create a new category
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/categories
@desc Update/create several categories
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/categories/{code}
@desc Get a category
@required {code: any # Code of the resource}
@optional {with_position: any # Return information about category position into its category tree (only available since the 7.0 version)}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/categories/{code}
@desc Update/create a category
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/category-media-files
@desc Create a category media file
@required {Content-type: any # Equal to 'multipart/form-data'.}
@optional {body: any}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/category-media-files/{file_path}/download
@desc Download a category media file
@required {file_path: any # Path of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint GET /api/rest/v1/currencies
@desc Get a list of currencies
@optional {search: any # Filter currencies, for more details see the Filters section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Return currencies paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint GET /api/rest/v1/currencies/{code}
@desc Get a currency
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/measure-families
@desc Get list of measure families (deprecated as of v5.0)
@returns(200) Return measure families paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint GET /api/rest/v1/measure-families/{code}
@desc Get a measure family (deprecated as of v5.0)
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint GET /api/rest/v1/measurement-families
@desc Get list of measurement families
@returns(200) Return the measurement families
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/measurement-families
@desc Update/create several measurement families
@optional {body: [map]}
@returns(200) OK
@errors {401: Authentication required, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/reference-entities
@desc Get list of reference entities
@optional {search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section}
@returns(200) Return reference entities paginated
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint GET /api/rest/v1/reference-entities/{code}
@desc Get a reference entity
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/reference-entities/{code}
@desc Update/create a reference entity
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/reference-entities/{reference_entity_code}/attributes
@desc Get the list of attributes of a given reference entity
@required {reference_entity_code: any # Code of the reference entity}
@returns(200) Return the attributes of the given reference entity
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint GET /api/rest/v1/reference-entities/{reference_entity_code}/attributes/{code}
@desc Get an attribute of a given reference entity
@required {reference_entity_code: any # Code of the reference entity, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/reference-entities/{reference_entity_code}/attributes/{code}
@desc Update/create an attribute of a given reference entity
@required {reference_entity_code: any # Code of the reference entity, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/reference-entities/{reference_entity_code}/attributes/{attribute_code}/options
@desc Get a list of attribute options of a given attribute for a given reference entity
@required {reference_entity_code: any # Code of the reference entity, attribute_code: any # Code of the attribute}
@returns(200) Return the options of the given attributes of the given reference entity
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint GET /api/rest/v1/reference-entities/{reference_entity_code}/attributes/{attribute_code}/options/{code}
@desc Get an attribute option for a given attribute of a given reference entity
@required {reference_entity_code: any # Code of the reference entity, attribute_code: any # Code of the attribute, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/reference-entities/{reference_entity_code}/attributes/{attribute_code}/options/{code}
@desc Update/create a reference entity attribute option
@required {reference_entity_code: any # Code of the reference entity, attribute_code: any # Code of the attribute, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/reference-entities/{reference_entity_code}/records
@desc Get the list of the records of a reference entity
@required {reference_entity_code: any # Code of the reference entity}
@optional {search: any # Filter records of the reference entity, for more details see the Filters section, channel: any # Filter attribute values to return scopable attributes for the given channel as well as the non localizable/non scopable attributes, for more details see the Filter attribute values by channel section, locales: any # Filter attribute values to return localizable attributes for the given locales as well as the non localizable/non scopable attributes, for more details see the Filter attribute values by locale section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section}
@returns(200) Return the records of the given reference entity paginated
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/reference-entities/{reference_entity_code}/records
@desc Update/create several reference entity records
@required {reference_entity_code: any # Code of the reference entity, body: [map]}
@returns(200) OK
@errors {401: Authentication required, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/reference-entities/{reference_entity_code}/records/{code}
@desc Get a record of a given reference entity
@required {reference_entity_code: any # Code of the reference entity, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/reference-entities/{reference_entity_code}/records/{code}
@desc Update/create a record of a given reference entity
@required {reference_entity_code: any # Code of the reference entity, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/reference-entities-media-files
@desc Create a new media file for a reference entity or a record
@required {Content-type: any # Equal to 'multipart/form-data', no other value allowed}
@optional {body: any}
@returns(201) Created
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/reference-entities-media-files/{code}
@desc Download the media file associated to a reference entity or a record
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found}

@endpoint GET /api/rest/v1/asset-families
@desc Get list of asset families
@optional {search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section}
@returns(200) Return asset families paginated
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint GET /api/rest/v1/asset-families/{code}
@desc Get an asset family
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-families/{code}
@desc Update/create an asset family
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/asset-families/{asset_family_code}/attributes
@desc Get the list of attributes of a given asset family
@required {asset_family_code: any # Code of the asset family}
@returns(200) Return the attributes of the given asset family
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint GET /api/rest/v1/asset-families/{asset_family_code}/attributes/{code}
@desc Get an attribute of a given asset family
@required {asset_family_code: any # Code of the asset family, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-families/{asset_family_code}/attributes/{code}
@desc Update/create an attribute of a given asset family
@required {asset_family_code: any # Code of the asset family, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/asset-families/{asset_family_code}/attributes/{attribute_code}/options
@desc Get a list of attribute options of a given attribute for a given asset family
@required {asset_family_code: any # Code of the asset family, attribute_code: any # Code of the attribute}
@returns(200) Return the options of the given attribute of the given asset family
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint GET /api/rest/v1/asset-families/{asset_family_code}/attributes/{attribute_code}/options/{code}
@desc Get an attribute option for a given attribute of a given asset family
@required {asset_family_code: any # Code of the asset family, attribute_code: any # Code of the attribute, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-families/{asset_family_code}/attributes/{attribute_code}/options/{code}
@desc Update/create an asset attribute option for a given asset family
@required {asset_family_code: any # Code of the asset family, attribute_code: any # Code of the attribute, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint POST /api/rest/v1/asset-media-files
@desc Create a new media file for an asset
@required {Content-type: any # Equal to 'multipart/form-data', no other value allowed}
@optional {body: any}
@returns(201) Created
@errors {401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/asset-media-files/{code}
@desc Download the media file associated to an asset
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found}

@endpoint GET /api/rest/v1/asset-families/{asset_family_code}/assets
@desc Get the list of the assets of a given asset family
@required {asset_family_code: any # Code of the asset family}
@optional {search: any # Filter assets, for more details see the Asset filters section, channel: any # Filter asset values to return scopable asset attributes for the given channel as well as the non localizable/non scopable asset attributes, for more details see the Filter asset values by channel section, locales: any # Filter asset values to return localizable attributes for the given locales as well as the non localizable/non scopable asset attributes, for more details see the Filter asset values by locale section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section}
@returns(200) Return the assets of the given asset family paginated
@errors {401: Authentication required, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-families/{asset_family_code}/assets
@desc Update/create several assets
@required {asset_family_code: any # Code of the asset family, body: [map]}
@returns(200) OK
@errors {400: Bad request, 401: Authentication required, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/asset-families/{asset_family_code}/assets/{code}
@desc Get an asset of a given asset family
@required {asset_family_code: any # Code of the asset family, code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-families/{asset_family_code}/assets/{code}
@desc Update/create an asset
@required {asset_family_code: any # Code of the asset family, code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint DELETE /api/rest/v1/asset-families/{asset_family_code}/assets/{code}
@desc Delete an asset
@required {asset_family_code: any # Code of the asset family, code: any # Code of the resource}
@returns(204) No content to return
@errors {401: Authentication required, 404: Resource not found}

@endpoint GET /api/rest/v1/assets
@desc Get list of PAM assets
@optional {pagination_type: any # Pagination method type, see Pagination section, page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, search_after: any # Cursor when using the `search_after` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Returns PAM assets paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/assets
@desc Create a new PAM asset
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/assets
@desc Update/create several PAM assets
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/assets/{code}
@desc Get a PAM asset
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/assets/{code}
@desc Update/create a PAM asset
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/assets/{asset_code}/reference-files/{locale_code}
@desc Get a reference file
@required {asset_code: any # Code of the asset, locale_code: any # Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint POST /api/rest/v1/assets/{asset_code}/reference-files/{locale_code}
@desc Upload a new reference file
@required {asset_code: any # Code of the asset, locale_code: any # Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable, Content-type: any # Equal to 'multipart/form-data', no other value allowed}
@optional {body: any}
@returns(201) Uploaded
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 404: Resource not found, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/assets/{asset_code}/reference-files/{locale_code}/download
@desc Download a reference file
@required {asset_code: any # Code of the asset, locale_code: any # Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint GET /api/rest/v1/assets/{asset_code}/variation-files/{channel_code}/{locale_code}
@desc Get a variation file
@required {asset_code: any # Code of the asset, channel_code: any # Code of the channel, locale_code: any # Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint POST /api/rest/v1/assets/{asset_code}/variation-files/{channel_code}/{locale_code}
@desc Upload a new variation file
@required {asset_code: any # Code of the asset, channel_code: any # Code of the channel, locale_code: any # Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable, Content-type: any # Equal to 'multipart/form-data', no other value allowed}
@optional {body: any}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 404: Resource not found, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/assets/{asset_code}/variation-files/{channel_code}/{locale_code}/download
@desc Download a variation file
@required {asset_code: any # Code of the asset, channel_code: any # Code of the channel, locale_code: any # Code of the locale if the asset is localizable or equal to `no-locale` if the asset is not localizable}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found}

@endpoint GET /api/rest/v1/asset-categories
@desc Get list of PAM asset categories
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Returns PAM asset categories paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint POST /api/rest/v1/asset-categories
@desc Create a new PAM asset category
@optional {body: map}
@returns(201) Created
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint PATCH /api/rest/v1/asset-categories
@desc Update/create several PAM asset categories
@optional {body: map}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 413: Request Entity Too Large, 415: Unsupported Media type}

@endpoint GET /api/rest/v1/asset-categories/{code}
@desc Get a PAM asset category
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-categories/{code}
@desc Update/create a PAM asset category
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/asset-tags
@desc Get list of PAM asset tags
@optional {page: any # Number of the page to retrieve when using the `page` pagination method type. Should never be set manually, see Pagination section, limit: any # Number of results by page, see Pagination section, with_count: any # Return the count of items in the response. Be carefull with that, on a big catalog, it can decrease performance in a significative way}
@returns(200) Returns PAM asset tags paginated
@errors {401: Authentication required, 403: Access forbidden, 406: Not Acceptable}

@endpoint GET /api/rest/v1/asset-tags/{code}
@desc Get a PAM asset tag
@required {code: any # Code of the resource}
@returns(200) OK
@errors {401: Authentication required, 403: Access forbidden, 404: Resource not found, 406: Not Acceptable}

@endpoint PATCH /api/rest/v1/asset-tags/{code}
@desc Update/create a PAM asset tag
@required {code: any # Code of the resource, body: map}
@returns(201) Created
@returns(204) No content to return
@errors {400: Bad request, 401: Authentication required, 403: Access forbidden, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1
@desc Get list of all endpoints
@returns(200) Return the list of all available endpoints
@errors {406: Not Acceptable}

@endpoint POST /api/oauth/v1/token
@desc Get authentication token
@required {Content-type: any # Equal to 'application/json' or 'application/x-www-form-urlencoded', no other value allowed, Authorization: any # Equal to 'Basic xx', where 'xx' is the base 64 encoding of the client id and secret. Find out how to generate them in the Client ID/secret generation section.}
@optional {body: map}
@returns(200) Return an authentication token
@errors {400: Bad request, 415: Unsupported Media type, 422: Unprocessable entity}

@endpoint GET /api/rest/v1/system-information
@desc Get system information
@returns(200) Return the version and the edition of the PIM.
@errors {406: Not Acceptable}

@end
