---
openapi: 3.0.1
info:
  title: Core DAM API
  description: Core DAM APIs allows developers to retrieve details of the assets importantly
    to get the public content urls for different asset profiles.
  version: 1.0.0
servers:
- url: https://digitalassets.us.api.opentext.com
  description: United States
- url: https://digitalassets.au.api.opentext.com
  description: Australia
- url: https://digitalassets.ca.api.opentext.com
  description: Canada
- url: https://digitalassets.eu.api.opentext.com
  description: Europe
paths:
  "/v1/collections":
    get:
      tags:
        - Collections
      summary: Get collections
      description: API returns all the collections belongs to the logged in user
      operationId: getCollections
      parameters:
        - name: sort_by
          in: query
          description: 
            Sort by parameter are name, create date or update date and the order
            should be specified separated with space. The valid parameters
            are:<br/>name asc<br/>name desc<br/>update_time asc<br/>update_time
            desc<br/>create_time asc<br/>create_time desc<br/>
          required: false
          schema:
            type: string
            enum:
              - name asc
              - name desc
              - update_time asc
              - update_time desc
              - create_time asc
              - create_time desc
            default: name asc
        - name: offset
          in: query
          description: 
            Parameter that indicates the starting position of items for
            pagination. Must be a non-negative integer and a multiple of COUNT
            value.
          required: false
          schema:
            type: integer
            format: int32
            default: 0
        - name: count
          in: query
          description: Maximum number of items to retrieve.
          required: false
          schema:
            type: integer
            format: int32
            default: 25
        - name: exclude_readonly_shares
          in: query
          description: Flag to exclude all the readonly shared collections.
          required: false
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CollectionsModel"
              examples:
                Collections:
                  description: Retrieved collections successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
    post:
      tags:
        - Collections
      summary: Create collection
      description: Creates a new collection
      operationId: createCollection
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              description: Collection name and description
              properties:
                name:
                  type: string
                  description: Collection name
                description:
                  type: string
                  description: Collection description
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CollectionModel"
              examples:
                Create collection:
                  description: Created collection successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  "/v1/collections/{collection_id}/assets":
    get:
      tags:
        - Collections
      summary: Get collection assets
      description: 
        The API will return the assets associated to the given collection.
        Supports pagination and the assets will be returned based on associated
        time descending order
      operationId: getCollectionAssets
      parameters:
        - name: collection_id
          in: path
          description: Collection id
          required: true
          schema:
            type: string
        - name: offset
          in: query
          description: 
            Parameter that indicates the starting position of items for
            pagination. Must be a non-negative integer and a multiple of COUNT
            value.
          required: false
          schema:
            type: integer
            format: int32
            default: 0
        - name: count
          in: query
          description: Maximum number of items to retrieve.
          required: false
          schema:
            type: integer
            format: int32
            default: 25
        - name: group_by
          in: query
          description: 
            The group_by parameter is used to group and count assets within a
            collection. When set with a valid value, the API returns only the
            grouped counts and the total number of assets. Allowable values - 
            content_type
          required: false
          schema:
            type: string
            enum:
              - content_type
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/AssetCollectionModel"
              examples:
                Collection assets:
                  description: Retrieved collection assets successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
    post:
      tags:
        - Collections
      summary: Add assets to collection
      description: API to save the given asset as a collection item
      operationId: createCollectionAssets
      parameters:
        - name: collection_id
          in: path
          description: Collection id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: Specify the asset ids to be added to collection
              items:
                type: string
        required: true
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/CollectionAssetResultModel"
              examples:
                Added assets to collection:
                  description: Added assets to collection successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
    delete:
      tags:
        - Collections
      summary: Remove assets from collection
      description: 
        API to remove asset associations from the given collection. It will
        remove all the associations or given assets from the collection based on
        mode parameter. If mode is 'ALL', remove all the asset associations.
      operationId: deleteCollectionAssets
      parameters:
        - name: collection_id
          in: path
          description: Collection id
          required: true
          schema:
            type: string
        - name: mode
          in: query
          description: Deletion mode. Supported values are 'ALL' or 'SELECTED'.
          required: false
          schema:
            type: string
            default: SELECTED
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: 
                Specify array of asset ids to remove assets association from the
                collection. This parameter value will be ignored when deletion
                mode is 'ALL'.
              items:
                type: string
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                type: string
                description: The request has been completed successfully
              examples:
                Removed assets from collection:
                  description: Removed assets from collection successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  '/v1/assets/{asset_id}/usage':
    post:
      tags:
        - Assets
      summary: Register asset usage
      description: API to register asset usage for the given asset.
      operationId: registerAssetUsage
      parameters:
        - name: asset_id
          in: path
          description: Asset id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/AssetUsageData"
        required: true
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                type: string
                description: The request has been completed successfully
              examples:
                Register asset usage:
                  description: Registered asset usage successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  "/v1/assets/usage":
    post:
      tags:
        - Assets
      summary: Register assets usage
      description: API to register usage for all the given assets.
      operationId: registerAssetsUsage
      requestBody:
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/AssetUsageRequestModel"
        required: true
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/AssetUsageResponseModel"
              examples:
                Register assets usage:
                  description: Registered assets usage successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
  "/v1/profiles":
    get:
      tags:
      - Asset profiles
      summary: Retrieve asset profiles
      description: Retrieve list of asset profiles for the given tenant and subscription
      operationId: getTransformerProfiles
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ProfilesModel"
              examples:
                Asset profiles:
                  description: Retrieved asset profiles successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '404':
          description: No content was found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
        '500':
          description: An internal server error occurred, refer to the response for
            more information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Not Found:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  "/v1/folders/{folder_id}/children":
    get:
      tags:
      - Folders
      summary: Get children by folder id.
      description: Retrieve the children of the folder with a specified folder id
      operationId: retrieveChildrenByFolderId
      parameters:
      - name: type
        in: query
        description: "The API supports seven distinct filter types:<br/>any,folder,asset,workspace
          and along with the combination filter types like folder_asset,folder_workspace,asset_workspace.<br/>When
          the filter type is set to any,invoking the API fetches all the children
          present in the root folder which includes folders,assets,workspace.<br/>Similarly
          when the filter type is set to folder,API fetch only folders from the root
          folder.<br/>On the other hand, when we use the combination filter type say
          folder_asset,API fetch only folders&assets from the root folder. \nThe group_by
          parameter is to group and count the asset in a collection. When this parameter
          set in the request with valid value then API returns group counts and total
          assets count only"
        required: false
        schema:
          type: string
          default: ANY
          enum:
          - ANY
          - FOLDER
          - ASSET
          - WORKSPACE
          - FOLDER_ASSET
          - FOLDER_WORKSPACE
          - ASSET_WORKSPACE
      - name: sort_by
        in: query
        description: Sort by parameter are create time,updated time,name or category
          and the order should be specified separated with space.And can pass multiple
          sort parameters delimited by comma. The valid parameters are:<br/>create_time
          asc<br/>create_time desc<br/>name <br/>name desc<br/>category desc,name
          asc<br/>updated_time asc<br/>updated_time desc<br/>
        required: false
        schema:
          type: string
          default: category desc,name asc
      - name: folder_id
        in: path
        description: ID to retrieve Folder details
        required: true
        schema:
          type: string
      - name: offset
        in: query
        description: Parameter that indicates the starting position of items for pagination.
          Must be a non-negative integer and a multiple of COUNT value.
        required: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: count
        in: query
        description: Maximum number of items to retrieve.
        required: false
        schema:
          type: integer
          format: int32
          default: 25
      - name: load_default_ds_urls
        in: query
        description: Flag to load preview and thumbnail delivery service urls. Allowed
          values are 'true' or 'false'
        required: false
        schema:
          type: boolean
          default: false
      - name: load_profile_ds_urls
        in: query
        description: Flag to load the profile delivery service urls based on asset
          type. Allowed values are 'true' or 'false'
        required: false
        schema:
          type: boolean
          default: false
      - name: profile_ds_urls_to_return
        in: query
        description: List of profile names for which the profile delivery service
          URLs will be returned.
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMObjectCollectionModel"
              examples:
                Folder children:
                  description: Retrieved folder children successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '403':
          description: 'Access forbidden to the resource '
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
        '404':
          description: No content was found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
        '500':
          description: An internal server error occurred, refer to the response for
            more information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Not Found:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  "/v1/assets":
    get:
      tags:
      - Assets
      summary: Get assets
      description: The API returns assets based on filter parameter. If no filter
        parameter specified in the request, returns the assets located in root and
        its sub folders.
      operationId: retrieveAssets
      parameters:
      - name: load_type
        in: query
        description: The data will be loaded into asset based on the given load type.
          The allowed values are SLIM(asset details and renditions), FULL, NORENDITIONS(asset
          details and metadata). The default value of load_type is 'SLIM'.
        required: false
        schema:
          type: string
          default: SLIM
          enum:
          - FULL
          - NORENDITIONS
          - SLIM
      - name: load_default_ds_urls
        in: query
        description: Flag to load preview and thumbnail delivery service urls. Allowed
          values are 'true' or 'false'
        required: false
        schema:
          type: boolean
          default: false
      - name: Accept-Language
        in: header
        description: The locale value that the client prefers
        required: false
        schema:
          type: string
          default: en
      - name: load_profile_ds_urls
        in: query
        description: Flag to load the profile delivery service urls based on asset
          type. Allowed values are 'true' or 'false'
        required: false
        schema:
          type: boolean
          default: false
      - name: profile_ds_urls_to_return
        in: query
        description: List of profile names for which the profile delivery service
          URLs will be returned.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: filter
        in: query
        description: Filter the assets by name or folder path. The supported filter
          format is 'filter=name:<assetname>,path:<folderpath>'. Folder path value
          should provide absolute path from Enterprise
        required: false
        schema:
          type: string
      - name: sort_by
        in: query
        description: Sort by parameter are create time,updated time,name or category
          and the order should be specified separated with space.And can pass multiple
          sort parameters delimited by comma. The valid parameters are:<br/>create_time
          asc<br/>create_time desc<br/>name <br/>name desc<br/>category desc,name
          asc<br/>updated_time asc<br/>updated_time desc<br/>
        required: false
        schema:
          type: string
          default: create_time desc
      - name: offset
        in: query
        description: Parameter that indicates the starting position of items for pagination.
          Must be a non-negative integer and a multiple of COUNT value.
        required: false
        schema:
          type: integer
          format: int32
          default: 1
      - name: count
        in: query
        description: Maximum number of items to retrieve.
        required: false
        schema:
          type: integer
          format: int32
          default: 25
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/AssetCollectionModel"
              examples:
                Assets:
                  description: Retrieved assets successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: An internal server error occurred, refer to the response for
            more information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Not Found:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  "/v1/assets/{asset_id}":
    get:
      tags:
      - Assets
      summary: Get asset
      description: Get asset by id. The API returns asset data based on given load_type
        parameter.
      operationId: retrieveAsset
      parameters:
      - name: asset_id
        in: path
        description: Asset id
        required: true
        schema:
          type: string
      - name: load_type
        in: query
        description: The data will be loaded into asset based on the given load type.
          The allowed values are SLIM(asset details and renditions), FULL, NORENDITIONS(asset
          details and metadata). The default value of load_type is 'SLIM'.
        required: false
        schema:
          type: string
          default: SLIM
          enum:
          - FULL
          - NORENDITIONS
          - SLIM
      - name: load_default_ds_urls
        in: query
        description: Flag to load preview and thumbnail delivery service urls. Allowed
          values are 'true' or 'false'
        required: false
        schema:
          type: boolean
          default: false
      - name: context
        in: query
        description: Specify the context from where this action is initiated. Allowed
          values are 'FOLDER' and 'NONE'.
        required: false
        schema:
          type: string
          default: NONE
          enum:
          - FOLDER
          - NONE
      - name: context_id
        in: query
        description: 'Specify the context id and it is mandatory if the context parameter
          value is other than ''NONE''. For example: if you specify the context as
          ''FOLDER'' then pass the folder id from where the asset has been retrieved
          as the context id parameter value.'
        required: false
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: The locale value that the client prefers
        required: false
        schema:
          type: string
          default: en
      - name: load_profile_ds_urls
        in: query
        description: Flag to load the profile delivery service urls based on asset
          type. Allowed values are 'true' or 'false'
        required: false
        schema:
          type: boolean
          default: false
      - name: profile_ds_urls_to_return
        in: query
        description: List of profile names for which the profile delivery service
          URLs will be returned.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: custom_ds_url_options
        in: query
        description: "Specify the options separated by comma to generate the custom
          delivery service url. Allowed options are rl(rotate left), rr(rotate right),
          fh(flip horizontally), fv(flip vertically), cr(crop dimensions), op(output
          format), rt(rendition type), cs(color space) and dpi(density).\n The allowed
          values for options are - rl, rr, fh, fv - y,  op - jpg and png, cs - srgb,
          cmyk and gray, dpi - 72, 150 and 300, cp - widthxheightxtopxleft, rt - ORIGINAL,
          PREVIEW(default) and THUMBNAIL. The custom delivery service url will be
          generated in the order that the options are given in the parameter, the
          option and value must be combined with '_' character. Eg: custom_ds_url_options=rr_Y,fv_Y,crop_100x100x50x50,op_jpg,dpi_72,cs_gray "
        required: false
        schema:
          type: string
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/AssetModel"
              examples:
                Asset:
                  description: Retrieved asset successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '403':
          description: 'Access forbidden to the resource '
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
        '404':
          description: No content was found
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Not Found:
                  description: Asset not found
                  value:
                    httpResponseCode: 404
                    errorCode: 0
                    message: An error occurred while retrieving an asset
                    debugMessage: Cannot find the type instance object for type cms_file
                      with id 2f65cdce-16fe-495c-8135-a4a38df4d109
        '500':
          description: An internal server error occurred, refer to the response for
            more information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Not Found:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
  "/v1/assets/usage/form":
    get:
      tags:
        - Assets
      summary: Get asset usage form
      description: API to get asset usage form for tracking asset usage
      operationId: getAssetUsageForm
      parameters:
        - name: Accept-Language
          in: header
          description: The locale value that the client prefers
          required: false
          schema:
            type: string
            default: en
      responses:
        '200':
          description: The request has been completed successfully
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/FormModel"
              examples:
                Asset usage form:
                  description: Retrieve asset usage form successfully
        '401':
          description: Unauthorized access to the resource
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Unauthorized:
                  description: Unauthorized access
                  value:
                    httpResponseCode: 401
                    errorCode: 0
                    message: Invalid token or expired token
                    debugMessage: Invalid token or expired token
        '500':
          description: 
            An internal server error occurred, refer to the response for more
            information
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/DAMException"
              examples:
                Internal Server Error:
                  description: Internal server error
                  value:
                    httpResponseCode: 500
                    errorCode: 0
                    message: An unknown error occurred in DAM application
                    debugMessage: An unknown error occurred in DAM application
components:
  schemas:
    CollectionModel:
      type: object
      properties:
        id:
          type: string
          description: Collection id
          example: 7327d573-3b9d-4d36-9e5d-72f1657fc707
        name:
          type: string
          description: Name of the collection
          example: SampleCollection
        description:
          type: string
          description: Description of the collection
          example: sample collection
        createTime:
          type: string
          description: Collection created time
          format: date-time
        updateTime:
          type: string
          description: Collection updated time
          format: date-time
        category:
          type: string
          description: Category
          example: collection
        renditions:
          type: array
          description: Collection renditions
          items:
            "$ref": "#/components/schemas/RenditionModel"
        collectionShareDataModel:
          "$ref": "#/components/schemas/CollectionShareDataModel"
        _links:
          $ref: '#/components/schemas/Links'
        created_by:
          type: string
          description: Collection created user
      description: Collections
    CollectionShareDataModel:
      type: object
      properties:
        internalShareExpiry:
          type: string
          description: Internal share expiry
          format: date-time
          example: '2026-06-17T18:29:59Z'
        collectionSharedUsers:
          type: array
          description: Collection share users
          items:
            "$ref": "#/components/schemas/CollectionSharedUser"
        message:
          type: string
          description: Message
          example: Test Message
      description: Collection share data
    CollectionSharedUser:
      type: object
      properties:
        userId:
          type: string
          description: Collection shared user id
          example: testuser@innovate.com
        collection_share_role:
          type: string
          description: Collection shared role
          example: VIEWER
          enum:
            - MANAGER
            - CURATOR
            - VIEWER
      description: Collection share users
    CollectionsModel:
      type: object
      properties:
        collections:
          type: array
          description: Collections
          items:
            $ref: '#/components/schemas/CollectionModel'
        page:
          type: integer
          description: Page number
          format: int32
        itemsPerPage:
          type: integer
          description: Items per page
          format: int32
        total:
          type: integer
          description: Total number of collections
          format: int64
        _links:
          "$ref": "#/components/schemas/Links"
      description: Collections Model          
    CollectionAssetResultModel:
      description: Collection asset result model
      type: object
      properties:
        successfulAssetIds:
          type: array
          description: Successfully added asset ids
          items:
            type: string
        existingAssetIds:
          type: array
          description: Existing asset ids
          items:
            type: string     
        successfulAssetIdsCount:
          type: integer
          description: Successfully added asset ids count
          format: int64
        existingAssetIdsCount:
          type: integer
          description: Existing asset ids count
          format: int64
    FormModel:
      type: object
      properties:
        displayName:
          type: string
          description: Form display name
          example: Asset usage tracking
        name:
          type: string
          description: Form name
          example: ccm1_dam_asset_usage_tracking
        traits:
          type: array
          description: Categories mapped into form
          items:
            "$ref": "#/components/schemas/CategoryModel"
      description: Form model
    AssetUsageData:
      type: object
      properties:
        formDocumentType:
          type: string
          description: Form name
          example: ccm1_dam_asset_usage
        formData:
          type: object
          additionalProperties:
            type: object
            description: 
              Form data. A map should associate each attribute name with its
              respective value.
          description: 
            Form data. A map should associate each attribute name with its
            respective value.
        profiles:
          type: array
          description: Asset profile names.
          items:
            type: string
            description: Asset profile names.
      description: Asset usage data
    AssetUsageResponseModel:
      type: object
      properties:
        successfulAssetIds:
          type: array
          description: Successfully usage tracked asset ids
          items:
            type: string
            description: Successfully usage tracked asset ids
        ignoredAssetIds:
          type: array
          description: Assets are not valid for usage tracking
          items:
            type: string
            description: Assets are not valid for usage tracking
      description: Asset usage response model
    AssetUsageRequestModel:
      type: object
      properties:
        assetIds:
          type: array
          description: Asset ids
          items:
            type: string
            description: Asset ids
        assetUsageData:
          $ref: '#/components/schemas/AssetUsageData'
      description: Request payload that holds asset ids and usage data
    AssetProfileModel:
      type: object
      properties:
        id:
          type: integer
          description: Profile id
          format: int64
          example: 100
        _links:
          "$ref": "#/components/schemas/Links"
        profileName:
          type: string
          description: Profile name
          example: Web quality
        profileShortName:
          type: string
          description: Profile short name
          example: web-quality
        description:
          type: string
          description: Profile description
          example: Profile for sharing the content
        subService:
          type: string
          description: Service type
          example: IMAGE/VIDEO
        preCache:
          type: string
          description: Profile is cached or not
          example: Y
        commandLine:
          type: string
          description: Profile command
          example: "-colorspace RGB"
        tenantId:
          type: string
          description: Tenant id
          example: bd5ea422-ff72-44be-a860-0bb1aad2c905
        subscriptionId:
          type: string
          description: Subscription id
          example: 667fac75-df1e-4225-a07e-5119a0313d47
        lastModifiedDt:
          type: string
          description: Profile last modified date
        outputFormat:
          type: string
          description: Output format
          example: jpg/mp4
        forceUpdate:
          type: boolean
          description: Flag that indicate profile can support force update or not
      description: Video profiles
    Links:
      type: object
      description: Links for profiles
      additionalProperties:
        "$ref": "#/components/schemas/Link"
    ProfilesModel:
      type: object
      properties:
        defaultProfiles:
          type: array
          description: Default profiles
          items:
            "$ref": "#/components/schemas/RenditionProfileModel"
        imageProfiles:
          type: array
          description: Image profiles
          items:
            "$ref": "#/components/schemas/AssetProfileModel"
        videoProfiles:
          type: array
          description: Video profiles
          items:
            "$ref": "#/components/schemas/AssetProfileModel"
      description: Profile Model
    RenditionProfileModel:
      type: object
      properties:
        id:
          type: string
          enum:
          - ORIGINAL
          - PREVIEW
        prompt:
          type: string
          description: Rendition profile name
          example: Original
      description: Default profiles
    DAMException:
      type: object
      properties:
        httpResponseCode:
          type: integer
          description: Http response code
          format: int32
        errorCode:
          type: integer
          description: DAM error code
          format: int32
        message:
          type: string
          description: Exception message
        debugMessage:
          type: string
          description: Exception debug message
      description: DAM Exception
    AncestorModel:
      type: object
      properties:
        id:
          type: string
          description: Ancestor id
          example: 237e385b-71d8-4cff-acc7-18f503dc8d58
        name:
          type: string
          description: Ancestor name
          example: Digital asset library
      description: Ancestor list
    AssetModel:
      type: object
      properties:
        category:
          type: string
          description: Category that indicate it is file or folder
          example: file
        id:
          type: string
          description: Asset id
          example: b5de8ba9-d46a-4298-b648-41d425be787e
        name:
          type: string
          description: Asset name
          example: sample.jpg
        description:
          type: string
          description: Asset description
          example: Sample asset
        parentFolderId:
          type: string
          description: Parent folder id
          example: '016825e3-6633-4fa7-b037-edf21a372f63'
        createTime:
          type: string
          description: Asset created date
          format: date-time
        updateTime:
          type: string
          description: Asset updated date
          format: date-time
        deleted:
          type: boolean
          description: Flag that indicate asset is deleted or not
        hidden:
          type: boolean
          description: Flag that indicate asset is hidden or not
        versionNo:
          type: integer
          description: Version number
          format: int32
        mimeType:
          type: string
          description: Mime type of the asset
          example: image/jpeg
        contentType:
          type: string
          description: 'Asset content type. Ex: IMAGE, VIDEO etc..'
          example: IMAGE
        latest:
          type: boolean
          description: Flag that indicate asset is latest or not
        spotlighted:
          type: boolean
          description: Flag that indicate asset is spotlighted or not
        spotlightedToHome:
          type: boolean
          description: Flag that indicate asset is spotlighted to home page or not
        contentSize:
          type: integer
          description: Asset content size
          format: int64
        renditions:
          type: array
          description: Asset renditions
          items:
            "$ref": "#/components/schemas/RenditionModel"
        documentType:
          "$ref": "#/components/schemas/DocumentTypeModel"
        ancestorList:
          type: array
          description: Ancestor list
          items:
            "$ref": "#/components/schemas/AncestorModel"
        chronicleId:
          type: string
          description: Asset version id
          example: 2f65cdce-16fe-495c-8135-a4a38df4d103
        type:
          type: string
          description: Asset document type
          example: ccm1_dam_brand_assets
        actions:
          type: array
          description: Supported action on the asset for logged in user
          items:
            type: string
            description: Supported action on the asset for logged in user
        _links:
          "$ref": "#/components/schemas/Links"
        created_by:
          "$ref": "#/components/schemas/UserModel"
        updated_by:
          "$ref": "#/components/schemas/UserModel"
      description: Asset Model
    AttributeModel:
      type: object
      properties:
        name:
          type: string
          description: Attribute name
          example: dam_tags
        displayName:
          type: string
          description: Attribute display name
          example: Tags
        dataType:
          type: string
          description: Attribute data type
          example: string
        repeating:
          type: boolean
          description: Flag that indicate attribute support multi value or not
        size:
          type: integer
          description: Attribute length
          format: int32
        required:
          type: boolean
          description: Flag that indicate attribute is required or not
        datatypeDefinition:
          type: string
          description: Picklist data type definition
          example: 54141602-79b4-4be5-820b-1e675975ce2b
        value:
          type: object
          description: Attribute value
        picklist:
          type: boolean
          description: Flag that indicate attribute is mapped with picklist or not
        _links:
          "$ref": "#/components/schemas/Links"
      description: Attributes mapped into category
    CategoryModel:
      type: object
      properties:
        id:
          type: string
          description: Category id
          example: 63e6dd41-6050-4113-b9bd-336eea438f4a
        traitName:
          type: string
          description: Category name
          example: ccm1_dam_business
        displayName:
          type: string
          description: Category display name
          example: Business
        attributes:
          type: array
          description: Attributes mapped into category
          items:
            "$ref": "#/components/schemas/AttributeModel"
      description: Traits mapped into document type
    DAMObjectCollectionModel:
      type: object
      properties:
        damObjects:
          type: array
          description: Folder children
          items:
            "$ref": "#/components/schemas/DAMObjectModel"
        page:
          type: integer
          description: Page number
          format: int32
        itemsPerPage:
          type: integer
          description: Items per page
          format: int32
        total:
          type: integer
          description: Total number of children
          format: int64
        _links:
          "$ref": "#/components/schemas/Links"
      description: DAM Collection Model
    DAMObjectModel:
      required:
      - category
      type: object
      properties:
        category:
          type: string
          description: Category that indicate folder or file
      description: Folder children
      discriminator:
        propertyName: category
      allOf:
      - "$ref": "#/components/schemas/AssetModel"
      - "$ref": "#/components/schemas/FolderModel"
      - type: object
        properties:
          category:
            type: string
            description: Category that indicate it is file or folder
            example: file
          _links:
            "$ref": "#/components/schemas/Links"
    DocumentTypeModel:
      type: object
      properties:
        displayName:
          type: string
          description: Document type display name
          example: Brand assets
        name:
          type: string
          description: Name of the document type
          example: dam_brand_assets
        systemName:
          type: string
          description: Document type system name
          example: ccm1_dam_brand_assets
        category:
          type: string
          description: Document type category
          example: file/folder
        traits:
          type: array
          description: Traits mapped into document type
          items:
            "$ref": "#/components/schemas/CategoryModel"
      description: Document type model
    FolderModel:
      type: object
      allOf:
      - "$ref": "#/components/schemas/DAMObjectModel"
      - type: object
        properties:
          id:
            type: string
            description: Folder id
          createTime:
            type: string
            description: Folder created date
            format: date-time
          updateTime:
            type: string
            description: Folder updated date
            format: date-time
          name:
            type: string
            description: Name of the folder
          parentFolderId:
            type: string
            description: Parent folder id
          latest:
            type: boolean
            description: Flag that indicate folder is latest or not
          hidden:
            type: boolean
            description: Flag that indicate folder is hidden or not
          deleted:
            type: boolean
            description: Flag that indicate folder is deleted or not
          description:
            type: string
            description: Description of the folder
          ancestorList:
            type: array
            description: Ancestor list
            items:
              "$ref": "#/components/schemas/AncestorModel"
          childrenCount:
            type: integer
            description: Folder children count
            format: int32
          spotlighted:
            type: boolean
            description: Flag that indicate folder is spotlighted or not
          spotlightedToHome:
            type: boolean
            description: Flag that indicate folder is spotlighted to home or not
          renditions:
            type: array
            description: Folder renditions
            items:
              "$ref": "#/components/schemas/RenditionModel"
          actions:
            type: array
            description: Support list of action on folder for logged in user
            items:
              type: string
              description: Support list of action on folder for logged in user
          mappedDocumentTypes:
            uniqueItems: true
            type: array
            description: Document types mapped on the folder
            example:
            - ccm1_dam-_brand_assets
            items:
              type: string
              description: Document types mapped on the folder
              example: '["ccm1_dam-_brand_assets"]'
          created_by:
            "$ref": "#/components/schemas/UserModel"
          updated_by:
            "$ref": "#/components/schemas/UserModel"
    RenditionModel:
      type: object
      properties:
        width:
          type: integer
          description: Rendition width
          format: int32
        height:
          type: integer
          description: Rendition height
          format: int32
        blobId:
          type: string
          description: Rendition id
        mimeType:
          type: string
          description: Rendition mime type
          example: image/jpg
        contentSize:
          type: integer
          description: Rendition size
          format: int64
        name:
          type: string
          description: Rendition name
          example: preview
        renditionType:
          type: string
          description: Rendition type
          example: SECONDARY
        source:
          type: string
          description: Rendition source
          example: FILE_ID
        _links:
          "$ref": "#/components/schemas/Links"
      description: Asset renditions
    UserModel:
      type: object
      properties:
        id:
          type: string
          description: User id
          example: 1c03feb6-9138-4d80-840d-074d14705dcf
        firstName:
          type: string
          description: First name
          example: Simone
        lastName:
          type: string
          description: Last name
          example: BA
        name:
          type: string
          description: User name
          example: Simone BA
        status:
          type: string
          description: Status
        email:
          type: string
          description: User email
          example: simone@innovate.com
        userProfileId:
          type: string
          description: User profile id
          example: 532f8c9b-eb49-4bb9-8add-1ae491231b9e
        roles:
          type: array
          description: User roles
          items:
            type: string
            description: User roles
            enum:
            - ADMIN
            - CONSUMER
            - PRODUCER
        tenantAdmin:
          type: boolean
          description: Flag that indicate user is tenant admin or not
        given_name:
          type: string
          description: User given name
          writeOnly: true
        family_name:
          type: string
          description: User family name
          writeOnly: true
      description: User Model
    AssetCollectionModel:
      type: object
      properties:
        assets:
          type: array
          description: Assets
          items:
            "$ref": "#/components/schemas/AssetModel"
        page:
          type: integer
          description: Page number
          format: int32
        itemsPerPage:
          type: integer
          description: Items per page
          format: int32
        total:
          type: integer
          description: Total number of assets
          format: int64
        _links:
          "$ref": "#/components/schemas/Links"
      description: Asset Collection Model
    Link:
      type: object
      properties:
        href:
          type: string
          description: URL of the resource
        hreflang:
          type: string
          description: Language URL
        title:
          type: string
          description: Link title
        type:
          type: string
          description: Link description
        deprecation:
          type: string
          description: Link deprecation
        profile:
          type: string
          description: Link profile
        name:
          type: string
          description: Name of the link
        templated:
          type: boolean
          description: Flag that indicate link is templated or not